You need to enable JavaScript to run this app. 如何在GitHub Actions的actions/checkout@v2的ref参数中引用环境变量
优惠活动
大模型
产品
解决方案
定价
更多

如何在GitHub Actions的actions/checkout@v2的ref参数中引用环境变量

问题原因

你没办法直接在actions/checkout@v2的ref参数里用$NEW_BRANCH_NAME这种shell环境变量,是因为GitHub Actions的action输入参数(也就是with下的配置)在运行时只会解析${{ }}格式的GitHub表达式,不会直接读取shell上下文的环境变量,所以直接写环境变量名是识别不到的,这个需求是可以实现的,不需要等待GitHub新增特性。

实现方案

可以通过跨Job传递输出参数的方式实现,操作步骤如下:

第一步:配置创建分支的Job,输出分支名

专门写一个创建并推送新分支的Job,把生成的分支名设置为该Job的输出参数:

Create-new-Branch:
  runs-on: [ self-hosted ]
  outputs:
    branch_name: ${{ steps.create-branch.outputs.BRANCH_NAME}}
  steps:
    - name: Checkout master
      uses: actions/checkout@v2
      with:
        repository: org/repo
        token: ${{secrets.GIT_TOKEN}}
        ref: master
    - name: create and push branch
      id: create-branch
      run: |
        export TEST="new-branch-name-`date '+%F'`"
        git checkout -b $TEST origin/master
        git push -u origin $TEST
        echo "::set-output name=BRANCH_NAME::$TEST"

第二步:后续Job引用前序Job的输出参数

在需要拉取新分支的后续Job中,先声明依赖创建分支的Job,再直接引用该Job的输出作为ref参数的值即可:

Job-Name:
  needs: Create-new-Branch
  runs-on: [self-hosted]
  steps:
    - name: Checkout to branch
      uses: actions/checkout@v2
      with:
        repository: org/repo
        token: ${{secrets.GIT_TOKEN}}
        ref: ${{needs.Create-new-Branch.outputs.branch_name}} # 此处传入新分支名

内容的提问来源于stack exchange,提问作者ShaiB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 21:06:06