如何在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
相关产品推荐
相关产品推荐

