jon*_*ckt 12
如此处所述,您可以使用该workflow_run
事件触发另一个工作流。
例如,我们可以想到这样的两个工作流程定义(唯一的先决条件是,两者都驻留在同一个存储库中 - 但我确信,其他存储库也有一个事件):
release.yml
name: CI release
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Release artifact
run: ...
Run Code Online (Sandbox Code Playgroud)
do-something-different.yml
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: ...
Run Code Online (Sandbox Code Playgroud)
这里的关键点是name: CI release
第一个 yaml 文件的定义必须workflow_run: workflows: ["CI release"]
与第二个 yaml 文件中的定义完全匹配。main
另一点是,这种方法需要在默认分支(主要是or master
)上完成,如文档所述:
注意:仅当工作流文件位于默认分支上时,此事件才会触发工作流运行。
在这里找到答案:
工作流运行中的操作无法触发新的工作流运行。例如,如果操作使用存储库的 GITHUB_TOKEN 推送代码,则即使存储库包含配置为在推送事件发生时运行的工作流,新工作流也不会运行。
编辑:上面的引用可能会令人困惑。当我将个人访问令牌 (PAT)添加到授予权限(而不是存储库的 GITHUB_TOKEN)的签出操作repo
时,以下命令会触发其他工作流程:
- name: Checkout Repo
uses: actions/checkout@v2
with:
token: ${{ secrets.PAT_TOKEN }}
Run Code Online (Sandbox Code Playgroud)
(就我而言,在此结账后运行 semnatic-release 会创建一个带有新标签的新版本 - 确实会触发另一个工作流程,该工作流程仅在创建标签时运行)
归档时间: |
|
查看次数: |
13949 次 |
最近记录: |