如何根据整个 github actions 工作流程的成功或失败设置 github 分支保护规则?

Tom*_*ell 3 github github-actions

我正在尝试根据 github 操作工作流程的成功或失败设置 github 分支保护规则。

您可以在此处查看工作流程:

https://github.com/apostropecms/apostrope/blob/main/.github/workflows/main.yml

工作流程通过了,我什至有一个工作徽章,但我无法设置要求其通过状态检查的分支保护规则。

可以根据矩阵中的任何一个单独构建设置分支保护规则,但我不想单独设置所有这些规则并在矩阵规则更改时跟踪它们。

正如您从屏幕截图中看到的,我无法选择“构建”,即作业的名称(尽管我可以选择任何子构建),而且我也无法选择“测试”,即作业的名称。整个工作流程(如果我使用大写 t,它不会改变)。

我缺少什么?感谢您的帮助!

屏幕截图一:我可以选择一个子构建,但不能选择整个构建作业。

我可以选择一个子构建,但不能选择整个构建作业

屏幕截图二:我根本无法选择整个“测试”工作流程的名称。

我根本无法选择整个“测试”工作流程的名称

小智 8

有一个技巧可以在工作流程中添加一个步骤,以将矩阵中的所有作业收集到一个检查中:

  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
Run Code Online (Sandbox Code Playgroud)

if: always()有义务收集失败的任务,否则 PR 将永远无法得到正确的状态检查。此外,这是您需要支付的额外步骤(如果您使用付费计划)。