Я настраиваю GitHub Actions в качестве CI для одного из моих проектов , и весь процесс сборки в основном представляет собой скрипт PowerShell, управляемый переменными среды.
Это обачтобы минимизировать блокировку вендора и убедиться, что я могу запустить сборку локально с почти таким же процессом.
Теперь мой скрипт сборки определяет некоторые вещи и помещает их в переменные среды - в частности, у меня есть *Переменная 1007 *, которая имеет значение 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? (предпочтительно)
- Нужно ли создавать собственное действие для инкапсуляции моего вызова build.ps1, чтобы я мог возвращать вещи через выходные данные?