标签: github-actions-reusable-workflows

如何访问可重用工作流程中的参考

语境

公共存储库中的可重用工作流程可以通过附加引用来调用,该引用可以是 SHA、发布标签或分支名称,例如: {owner}/{repo}/.github/workflows/{filename}@{ref}

Github文档指出:

当调用者工作流触发可重用工作流时,github 上下文始终与调用者工作流关联。

问题

由于 github 上下文始终与调用者工作流关联,因此可重用工作流无法访问引用,例如 tag v1.0.0。但是,当可重用工作流需要签出存储库以便使用复合操作时,了解引用非常重要。

例子

假设调用者工作流正在分支内执行,并调用可重用工作流的main引用:v1.0.0.

name: Caller workflow
on:
  workflow_dispatch:

jobs:
  caller:
    uses: owner/public-repo/.github/workflows/reusable-workflow.yml@v1.0.0

Run Code Online (Sandbox Code Playgroud)

以下是使用复合操作的可重用工作流程:

name: reusable workflows
on:
  workflow_call:

jobs:
  first-job:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3.1.0
        with:
          repository: owner/public-repo
          ref: ${{ github.ref_name }}

      - name: composite action
        uses: ./actions/my-composite-action
Run Code Online (Sandbox Code Playgroud)

在上面的代码片段中,${{ github.ref_name }}main而不是v1.0.0因为 github 上下文始终与调用者工作流程相关联。因此,复合动作代码是基于main而不是基于v1.0.0. 然而,打电话的人想要v1.0.0。因此我的问题是:可重用工作流程如何能够访问调用者给出的引用?

github-actions github-actions-reusable-workflows

6
推荐指数
0
解决办法
1256
查看次数