如何复用当前工作分支中定义的GitHub Actions可重用工作流
解决方法
方案一:同仓库场景直接使用相对路径
如果要调用的可重用工作流和当前 workflow 属于同一个代码仓库,无需填写仓库前缀和 ref,直接用相对路径引用即可:
jobs: call-workflow-1: uses: ./.github/workflows/workflow-1.yml
该写法会默认使用当前 workflow 运行所在的分支/提交对应的工作流文件,天然适配所有分支的开发、测试场景。
方案二:跨仓库场景通过前置 job 传递 ref
如果要调用其他仓库的可重用工作流,可以新增一个前置 job 先输出需要的分支名/版本号,再在调用工作流的 job 中引用该输出:
jobs: get-target-ref: runs-on: ubuntu-latest outputs: ref: ${{ github.ref_name }} steps: - run: echo "ref=${{ github.ref_name }}" >> $GITHUB_OUTPUT call-workflow-1: needs: get-target-ref uses: octo-org/another-repo/.github/workflows/workflow-1.yml@${{ needs.get-target-ref.outputs.ref }}
GitHub Actions 允许在 uses 属性中引用前置 job 的输出值,该写法可以正常生效。
方案三:临时开发场景手动替换
如果只是临时在特性分支开发调试,可以先写死默认分支名(比如@main),开发阶段手动修改为当前分支名,测试通过后再改回正式的标签/默认分支即可,适合改动频率低的场景。
内容的提问来源于stack exchange,提问作者Joshua
相关产品推荐
相关产品推荐

