我想在作业级别上使用环境变量,有办法实现吗?
env:
stageEnv: UAT
jobs:
name: Upload Build
if: ${{ env.stageEnv == 'UAT' }}
steps:
....
我遇到了“未识别的命名值:'env'”错误。尝试使用 $stageEnv 和 ${{ env.stageEnv }}。
注意:当我在 'steps' 中访问时可以运行,但是我希望能够在 'jobs' 级别访问。
我想在作业级别上使用环境变量,有办法实现吗?
env:
stageEnv: UAT
jobs:
name: Upload Build
if: ${{ env.stageEnv == 'UAT' }}
steps:
....
我遇到了“未识别的命名值:'env'”错误。尝试使用 $stageEnv 和 ${{ env.stageEnv }}。
注意:当我在 'steps' 中访问时可以运行,但是我希望能够在 'jobs' 级别访问。
很抱歉,但您可以这样做:
env:
stageEnv: UAT
jobs:
build:
name: Build
runs-on: ubuntu-latest
outputs:
stageEnv: ${{ steps.init.outputs.stageEnv }}
steps:
- name: Make environment variables global
id: init
run: |
echo "stageEnv=${{ env.stageEnv }}" >> $GITHUB_OUTPUT
并在另一份工作中使用它:
upload:
name: Upload build
needs: build
if: ${{ needs.build.outputs.stageEnv == 'UAT' }}
请注意,这只是一个例子,我个人更喜欢将环境变量大写,输出变量小写。