动作经常被要求的功能是一种基于完成另一个工作流程的完成触发一个工作流程的方法。例如,您可能需要获取CI工作流的结果并进行进一步的分析。有人告诉我如何使用新事件新的WorkFlow_RUN事件使您可以在请求或完成一个或多个工作流程时触发新的工作流程。由WorkFlow_Run事件触发的运行始终将默认分支用于存储库,并可以访问读/写令牌以及秘密。作为一个
示例,作为维护者,您可以设置一个工作流程,该工作流程采用拉动请求工作流产生的工件,进行一些分析,然后将注释回到拉请请求中。 此事件也可作为Webhook提供,并且可以使用所有存储库。 这是从
github的博客引用的。
workflow_run
实施示例
on:
workflow_run:
workflows: ["Run Tests"]
branches: [main]
types:
- completed
- requested
如果有人可以教我如何实现这一榜样,我会很高兴。
要获得示例工作(即要让一个工作流等待另一个工作流程完成),您需要两个文件。两个文件都活在存储库的
.github/workflows
文件夹中。
第一个文件将照常设置。该文件将由
on
---
name: Preflight
on:
- pull_request
- push
jobs:
preflight-job:
name: Preflight Step
runs-on: ubuntu-latest
steps:
- run: env
on
:
workflow_run
this of the of the github动作手册中的示例。
您可以在动作页面上看到 在我的示例repo
中,公平工作流将首先运行。完成后,将触发测试工作流程:
,您可以看到,“测试”工作流程不会出现Branch
。 这是因为(引用手册):这意味着“测试”工作流将在默认分支(通常是
workflows
或Preflight
)的代码上运行/运行。
为此有解决方法...
Contexts进行。
---
name: Test
on:
workflow_run:
workflows:
- Preflight
types:
- completed
jobs:
test-job:
name: Test Step
runs-on: ubuntu-latest
steps:
- run: env
上下文包含有关触发工作流程的事件的信息。这包括该事件最初从/for触发的分支:main
.。
可以使用GitHub提供的
master
动作来检查动作中的原始分支。
要做到这一点,YAML将是:
github