From 53e5f6b2bea331d4ebf273fd4b85f7a9afc88ffd Mon Sep 17 00:00:00 2001 From: Kyle Sexton <153232337+kyle-sexton@users.noreply.github.com> Date: Wed, 11 Nov 2026 23:46:31 -0500 Subject: [PATCH] ci: show the gate as CI Status and mirror it as ci-status The ci-status job displays as `CI Status`, and a new report-ci-status job reports its conclusion under the old name `ci-status`, the context the ci-gate org ruleset requires today. aggregate-results moves to the ci-workflows commit with the alias-jobs input and names the mirror, so contract-only runs still read as contract-only. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01VQb9Q2ceZLXhTR4d1vkTCe --- .github/workflows/pr-require-checks.yml | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr-require-checks.yml b/.github/workflows/pr-require-checks.yml index 041edf3..30b1dae 100644 --- a/.github/workflows/pr-require-checks.yml +++ b/.github/workflows/pr-require-checks.yml @@ -106,6 +106,7 @@ jobs: config: lychee.toml ci-status: + name: CI Status needs: [validate-marketplace, lychee] if: ${{ !cancelled() }} runs-on: ubuntu-24.04 @@ -135,8 +136,11 @@ jobs: # aggregation: the job still fails on the contract step's exit code, and # the `ci-lanes` status is on the SHA for the next contract-only run. if: ${{ !cancelled() }} - uses: melodic-software/ci-workflows/.github/actions/pr-require-checks/aggregate-results@594987abe8657a40bccc13d301f1f0d5cccb5348 # v0.39.8 + uses: melodic-software/ci-workflows/.github/actions/pr-require-checks/aggregate-results@ac4d8780de793b20e60a66890e767df579c80d83 # ac4d878 2026-11-11 with: + # report-ci-status mirrors this gate under `ci-status` and runs on + # contract-only events too; the run-shape reads must ignore it. + alias-jobs: ci-status # A contract-only run never waits: while a full run on the SHA is in # flight it fails with "superseded by full run ", and that run's # newer ci-status decides the gate. Once the full run records @@ -150,3 +154,18 @@ jobs: # lane was already red here. treat-skipped-as: fail token: ${{ github.token }} + + report-ci-status: + name: ci-status + needs: [ci-status] + if: ${{ always() }} + runs-on: ubuntu-24.04 + timeout-minutes: 3 + permissions: {} + steps: + - name: Report the conclusion of `CI Status` + env: + RESULT: ${{ needs.ci-status.result }} + run: | + echo "CI Status: $RESULT" + [ "$RESULT" = success ]