내 프로젝트 중 하나에 대한 CI로 GitHub Actions를 설정 하고 있으며 전체 빌드 프로세스는 기본적으로 환경 변수에 의해 구동되는 PowerShell 스크립트입니다.
이는 공급 업체 종속을 최소화하고 거의 동일한 프로세스로 로컬에서 빌드를 실행할 수 있도록하기위한 것입니다.
이제 내 빌드 스크립트는 몇 가지 항목을 결정하고 환경 변수에 넣습니다. 특히 MH_IS_PROD_BUILD
True 또는 False 인 변수가 있으며 어떤 nuget 패키지 저장소로 푸시할지 결정합니다.
그러나 쉘을 실행하는 단계가 완료되면 새로운 환경에서 추가 단계가 실행되기 때문에 환경 변수가 더 이상 존재하지 않습니다.
내가 하고 싶은 것은 다음과 같은 것입니다 (축약).
steps:
- name: Run build script
id: pwshbuild
shell: pwsh
run: |
cd scripts
./build.ps1
# The above sets $Env:MH_IS_PROD_BUILD to either True or False
- name: Push Publish to GPR (Dev Package)
if: steps.pwshbuild.outputs.MH_IS_PROD_BUILD == 'False'
shell: pwsh
run: |
# omitted: determine $nupkgPath
nuget push $nupkgPath -Source "GPR" -SkipDuplicate
- name: Push Publish to Nuget.org (Release Package)
if: steps.pwshbuild.outputs.MH_IS_PROD_BUILD == 'True'
shell: pwsh
run: |
# omitted: determine $nupkgPath
nuget push $nupkgPath -Source "NugetOrg" -SkipDuplicate
것으로 보인다 출력은 내가 필요로했던 것과이지만, 그 사용자 지정 작업의 생성을 요구하는 것?
물론 위의 내용은 작동하지 않습니다 (따라서 질문). 그래서 나는 가장 좋은 방법이 무엇인지 궁금합니다.
Powershell의 출력을 콘솔에 에코하여 설정할 수 있다고 생각합니다. Powershell에는에 대한 별칭 매핑 에코가 Write-Output
있습니다.
jobs:
windows-test:
runs-on: windows-latest
steps:
- uses: actions/checkout@v1
- name: Set outputs
id: vars
shell: pwsh
run: echo "::set-output name=production::true"
- name: Check outputs
shell: pwsh
run: echo ${{ steps.vars.outputs.production }}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다