如何使用github操作`workflow_run“事件?

问题描述 投票:0回答:1
动作经常被要求的功能是一种基于完成另一个工作流程的完成触发一个工作流程的方法。例如,您可能需要获取CI工作流的结果并进行进一步的分析。

新的WorkFlow_RUN事件使您可以在请求或完成一个或多个工作流程时触发新的工作流程。由WorkFlow_Run事件触发的运行始终将默认分支用于存储库,并可以访问读/写令牌以及秘密。作为一个

示例

,作为维护者,您可以设置一个工作流程,该工作流程采用拉动请求工作流产生的工件,进行一些分析,然后将注释回到拉请请求中。 此事件也可作为Webhook提供,并且可以使用所有存储库。 这是从

github的博客引用的。
有人告诉我如何使用新事件

workflow_run实施示例

?该文档仅提供一个非常简单的示例:

on: workflow_run: workflows: ["Run Tests"] branches: [main] types: - completed - requested 如果有人可以教我如何实现这一榜样,我会很高兴。

	

要获得示例工作(即要让一个工作流等待另一个工作流程完成),您需要两个文件。两个文件都活在存储库的
.github/workflows
文件夹中。

第一个文件将照常设置。该文件将由

on
github continuous-integration github-actions
1个回答
65
投票

--- 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
。
这是因为(引用手册):


当工作流文件在默认分支上时,此事件只会触发工作流程。

这意味着“测试”工作流将在默认分支(通常是

workflowsPreflight)的代码上运行/运行。 为此有解决方法...

每种操作都采用一组

ContextsScreenshot of workflows screen进行。

--- 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

动作来检查动作中的原始分支。 Screenshot of caveat in the manual要做到这一点,YAML将是:

github

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.