在GitHub Actions中实现Azure DevOps的##vso[task.setVariable]等价功能
在GitHub Workflows中实现运行时设置流水线变量的方法
在GitHub Workflows里,无需自定义Action,就能实现类似Azure DevOps中##vso[task.setVariable]的运行时变量传递需求,常用两种方式:
1. 设置同作业内全局环境变量
通过将变量写入$GITHUB_ENV文件,后续所有步骤都能以环境变量的形式访问该值,适合需要在多个步骤中复用的变量。
示例代码:
jobs: demo-job: runs-on: ubuntu-latest steps: - name: 运行时设置环境变量 run: echo "CUSTOM_VAR=github-workflows-demo" >> $GITHUB_ENV - name: 使用环境变量 run: echo "获取到的变量值: ${{ env.CUSTOM_VAR }}"
2. 步骤间通过输出传递变量
如果仅需要在特定步骤间传递变量,可通过$GITHUB_OUTPUT写入步骤输出,后续步骤通过步骤ID引用该输出值。
示例代码:
jobs: demo-job: runs-on: ubuntu-latest steps: - name: 设置步骤输出变量 id: set-output-step run: echo "STEP_VAR=step-to-step-value" >> $GITHUB_OUTPUT - name: 使用步骤输出变量 run: echo "获取到的步骤输出值: ${{ steps.set-output-step.outputs.STEP_VAR }}"
两种方式的差异
$GITHUB_ENV:变量会注入到后续所有步骤的环境中,作用范围是当前作业的全局$GITHUB_OUTPUT:变量仅属于当前步骤的输出,需通过步骤ID精准引用,适合单步骤结果传递场景
内容的提问来源于stack exchange,提问作者ScottishTapWater
相关产品推荐
相关产品推荐

