[英]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.