From 7d4ec2054811e256c88d61612137657bb7edb8f5 Mon Sep 17 00:00:00 2001 From: Yasunobu <42543015+P4suta@users.noreply.github.com> Date: Sat, 26 Sep 2026 02:33:44 +0900 Subject: [PATCH 1/2] ci: add the required aggregate job Branch protection requires one check, `required`, in every repository; it passes only when the jobs it needs succeeded or were skipped. --- .github/workflows/ci.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a6266e4..487a501 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -359,3 +359,21 @@ jobs: docker buildx build --build-context builder=release/binaries \ --load -t ocomment:ci-prebuilt . docker run --rm ocomment:ci-prebuilt --version + + # The one status check branch protection requires, + # named the same in every P4suta repository. + # It passes only when every job it needs succeeded or was skipped. + required: + name: required + if: always() + needs: [rust, msrv, reference, dogfood, host-smoke, action-smoke, vscode, docker] + runs-on: ubuntu-latest + timeout-minutes: 5 + permissions: {} + steps: + - name: Fail unless every needed job succeeded or was skipped + env: + RESULTS: ${{ toJSON(needs.*.result) }} + run: | + echo "${RESULTS}" + jq -e 'all(.[]; IN("success", "skipped"))' <<< "${RESULTS}" From e605b046ae87edc1146803494c0d0437fcd20c7c Mon Sep 17 00:00:00 2001 From: Yasunobu <42543015+P4suta@users.noreply.github.com> Date: Sat, 26 Sep 2026 21:48:14 +0900 Subject: [PATCH 2/2] ci: keep the required job comment-free --- .github/workflows/ci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 487a501..97d284e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -360,9 +360,6 @@ jobs: --load -t ocomment:ci-prebuilt . docker run --rm ocomment:ci-prebuilt --version - # The one status check branch protection requires, - # named the same in every P4suta repository. - # It passes only when every job it needs succeeded or was skipped. required: name: required if: always()