从另一个工作流程触发新的工作流程?

时间:2020-02-26 16:24:54

标签: github-actions

我可以从另一个工作流程中触发一个新的工作流程吗?

在第一个工作流程推送了一个新版本之后,我正在尝试运行一个工作流程,但似乎忽略了它。

2 个答案:

答案 0 :(得分:1)

找到答案here

工作流程运行中的操作无法触发新的工作流程运行。例如,如果某个操作使用存储库的GITHUB_TOKEN推送代码,则即使存储库包含配置为在发生推送事件时运行的工作流,新的工作流也不会运行。

编辑: 上面的引用可能令人困惑。当我在授予repo权限(而不是存储库的GITHUB_TOKEN)权限的情况下向结帐操作中添加Personal Access Token (PAT)时,以下命令会触发其他工作流程:

        - name: Checkout Repo
          uses: actions/checkout@v2
          with:
              token: ${{ secrets.PAT_TOKEN }}

(在我的情况下,在此签出后运行semnatic-release,这会创建带有新标签的新版本-确实触发了另一个仅在创建标签后才运行的工作流程)

答案 1 :(得分:1)

As described here,您可以使用 workflow_run event 触发另一个工作流。

例如,我们可以考虑这样的两个工作流定义(唯一的先决条件是,它们都驻留在同一个存储库中 - 但我敢肯定,其他存储库也有一个事件):

list pre appending

release.yml

name: CI release on: [push] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Release artifact run: ...

do-something-different.yml

这里的一个关键点是第一个 yaml 文件的 name: Do anything after the release of the first workflow on: workflow_run: workflows: ["CI release"] types: - completed jobs: notify: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Do something run: ... 定义必须与第二个 yaml 文件中的 name: CI release 定义完全匹配。还有一点是这种方法需要在默认分支上完成(主要是workflow_run: workflows: ["CI release"]mainas the docs state

<块引用>

注意:此事件仅在工作流文件 位于默认分支上。