我只想在特定工作流程完成后才触发工作流程...有人知道怎么做吗?
某些上下文:
Tests
和另一个工作流程Build-feature
。Tests
工作流程上分支到feature
。feature
,那么我想运行工作流Tests
,只有成功了,我才想运行Build-feature
工作流。还有check_suite
个事件,它会触发工作流:https://help.github.com/en/actions/automating-your-workflow-with-github-actions/events-that-trigger-workflows#check-suite-event-check_suite
我尝试了这个示例:
on:
check_suite:
types: [rerequested, completed]
但是我的工作流程永远不会触发,为什么有什么主意?或关于如何实现上述目标的任何其他想法?。
答案 0 :(得分:1)
更新后的答案:
事实证明,您可以使用on: status
事件来实现这一点,但是您需要使用非the one from the Github Actions的令牌来手动触发状态。
您需要添加以下内容,以便在工作流完成后触发状态事件:
- name: Trigger status event
run: >-
curl -L -X POST
-H "Content-Type: application/json"
-H "Authorization: token ${{ secrets.GITHUB_PAT}}"
-d '{
"state": "success",
"target_url": "https://you-can-add-a.url/",
"description": "All tests passed", "context": "your-custom/status-event"
}'
"https://api.github.com/repos/${GITHUB_REPOSITORY}/statuses/${GITHUB_SHA}"
在其他工作流程中,您可以添加一个if
条件,以防万一您有多个可以触发工作流程的状态事件,如下所示:
on: status
...
jobs:
...
if: github.event.context == 'your-custom/status-event'
就是这样...这就是链接工作流的方式。
旧答案:
好吧,在github.community论坛上询问后,我得到了答案。
从“动作”应用引发的事件不会触发工作流。当前存在此限制,以防止执行循环工作流程。
相关链接:
编辑:
check
事件也是如此。
答案 1 :(得分:0)