[英]How do I set a github branch protection rule based on the success or failure of an entire github actions workflow?
我正在尝试根据 github 操作工作流的成功或失败设置 github 分支保护规则。
您可以在此处查看工作流程:
https://github.com/apostrophecms/apostrophe/blob/main/.github/workflows/main.yml
工作流通过了,我什至有一个工作徽章,但我无法设置一个分支保护规则,要求它作为状态检查通过。
我可以根据矩阵中的任何一个单独构建设置分支保护规则,但我不想单独设置所有这些并在我的矩阵规则更改时跟踪它们。
正如您从屏幕截图中看到的,我无法选择作业的名称“build”(尽管我可以选择任何子构建),而且我也无法选择“tests”,作业的名称整个工作流程(如果我使用大写字母 t,它不会改变)。
我错过了什么? 谢谢你的帮助!
屏幕截图一:我可以选择一个子构建,但不能选择整个构建作业。
屏幕截图二:我根本无法选择整个“测试”工作流程的名称。
在这种情况下,您只有一个带有矩阵的作业。 这意味着您将以 9 种可能性结束(3 个节点选项 × 3 个 MongoDB 选项)。 其中每一项都被视为单独的状态检查,并且可以单独强制启用或禁用。 这样您就可以添加新选项,而无需预先强制执行。
如果您希望这些工作中的每一个都通过,那么您需要选择 9 个工作中的每一个并根据需要标记它们。
有一个技巧可以在工作流中添加一个步骤,以将矩阵中的所有作业收集到一张支票:
tests:
runs-on: ubuntu-latest
needs: build
if: always()
steps:
- name: All tests ok
if: ${{ !(contains(needs.*.result, 'failure')) }}
run: exit 0
- name: Some tests failed
if: ${{ contains(needs.*.result, 'failure') }}
run: exit 1
if: always()
必须收集失败的任务,否则 PR 永远不会得到适当的状态检查。 此外,这是您支付的额外步骤(如果您使用付费计划)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.