GitHub Actions - 如何在作业级别使用环境变量?

msg*_*msg 7 github-actions

我想在工作级别使用环境变量。有办法做到吗?

env:
  stageEnv: UAT

jobs:
  name: Upload Build
  if: ${{ env.stageEnv == 'UAT' }}
  steps:
    ....
Run Code Online (Sandbox Code Playgroud)

我收到无法识别的命名值:'env'错误。尝试了 $stageEnv 和 ${{ env.stageEnv }}

注意:当我在“步骤”内访问时它可以工作,但希望可以在“作业”级别访问它。

Bak*_*alf 1

恐怕不是,但你可以这样做:

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
Run Code Online (Sandbox Code Playgroud)

并在另一项工作中使用它:

  upload:
    name: Upload build
    needs: build
    if: ${{ needs.build.outputs.stageEnv == 'UAT' }}
Run Code Online (Sandbox Code Playgroud)

注意这只是一个例子,我个人更喜欢环境变量大写和输出变量小写