我可以从另一个工作流程中触发一个新的工作流程吗?
在第一个工作流程推送了一个新版本之后,我正在尝试运行一个工作流程,但似乎忽略了它。
答案 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"]
或main
)as the docs state:
注意:此事件仅在工作流文件 位于默认分支上。