如何排队多个GitHub Action工作流程运行?

5
我一直在使用 GitHub Actions 工作流程,但总是收到以下取消消息: Canceling since a higher priority waiting request for 'your-project' exists 查看 GitHub Actions 文档后,我发现:
When a concurrent job or workflow is queued, if another job or workflow using the same 
concurrency group in the repository is in progress, the queued job or workflow will be
pending. Any previously pending job or workflow in the concurrency group will be canceled. 

这意味着只允许一个待处理的工作流运行。有没有办法在不使用某种外部排队机制的情况下排队多个工作流?

1个回答

0
截至2023年11月17日,答案是否定的。
GitHub Actions的并发功能为给定的“group”创建了两个插槽:
- 一个正在运行的工作流 - 一个待处理的工作流
“cancel-in-progress”输入控制这两个插槽的行为。
如果“cancel-in-progress: false”:
1. 触发工作流,开始并占用运行中的工作流插槽。 2. 第二次触发工作流,并占用待处理插槽。 3. 第三次触发工作流,并立即取消。
工作流运行编号3将显示消息“由于存在等待请求'YOUR_GROUP_NAME'的更高优先级,正在取消”。
此行为旨在确保在当前运行的操作完成后运行“最新状态”。
如果“cancel-in-progress: true”:
  1. 工作流程被触发,开始运行,并占用运行中的工作流程插槽。
  2. 工作流程第二次被触发,并占用挂起插槽,同时取消第一个工作流程。
  3. 工作流程第三次被触发,立即取消第二个工作流程,并占用挂起插槽,同时取消第一个工作流程。

这种行为旨在快速停止不再重要的运行作业,例如当分支添加新更改并需要构建时,可以停止拉取请求构建。

如何保留队列中的构建作业?

目前(2023-11-17)无法通过工作流程实现此功能,只能使用一些变通方法,例如使用带有特殊标签的单个运行器,或者使用一个阻止工作流程继续进行直到其他工作流程完成的步骤。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接