From ba0ebee1cd5e9856d38dff92509d0985da6d3a7c Mon Sep 17 00:00:00 2001 From: John McCall Date: Thu, 6 Aug 2026 12:44:25 -0400 Subject: [PATCH 1/2] [CHORE](ci) Add all-Python-checks gate, resolve Build job-name collision check-python-code.yaml's check matrix produces one status per cell with no aggregator, so a required-status-check rule has to track six names and misses any new Python version until updated. test-schema.yaml and schema-pr-preview.yml both name their job Build, ambiguous once test-schema.yaml gets a pull_request trigger and needs pinning itself. Adds an all-python-checks-pass job to check-python-code.yaml (needs: [check], if: always()) using lowlydba/are-we-good to roll the matrix's per-cell results into one pass/fail. Renames schema-pr-preview.yml's build job from Build to Build preview, leaving test-schema.yaml's Build as the stable name #646 already plans to pin. Fixes #647 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: John McCall --- .github/workflows/check-python-code.yaml | 15 +++++++++++++++ .github/workflows/schema-pr-preview.yml | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/check-python-code.yaml b/.github/workflows/check-python-code.yaml index f2de60dc6..5948c3826 100644 --- a/.github/workflows/check-python-code.yaml +++ b/.github/workflows/check-python-code.yaml @@ -92,3 +92,18 @@ jobs: - name: Run make check run: make check + + # Single stable check-run name for the whole matrix, so a required-status- + # check rule never has to track individual Python-version cells. Add or + # drop a cell above and this job's name still covers it. + all-python-checks-pass: + name: All Python checks pass + needs: [check] + if: always() + runs-on: ubuntu-slim + permissions: {} + + steps: + - uses: lowlydba/are-we-good@f506ed6324f55ec5e4ff5d92204a72c7f1c2b4f8 # v1.0.5 + with: + jobs: ${{ toJSON(needs) }} diff --git a/.github/workflows/schema-pr-preview.yml b/.github/workflows/schema-pr-preview.yml index 3feea9e86..27ddca841 100644 --- a/.github/workflows/schema-pr-preview.yml +++ b/.github/workflows/schema-pr-preview.yml @@ -23,7 +23,7 @@ jobs: run: | echo "::warning title=Staging deploy not supported for fork PRs::Staging previews are only available for PRs from branches within this repository, not forks. Please open your PR from a branch in OvertureMaps/schema instead." build: - name: Build + name: Build preview if: github.event.pull_request.head.repo.full_name == github.repository runs-on: ubuntu-latest needs: check-fork From 2146252be0309bd5c9e8539c1cd934b62b552be1 Mon Sep 17 00:00:00 2001 From: John McCall Date: Thu, 6 Aug 2026 12:48:23 -0400 Subject: [PATCH 2/2] [CHORE](ci) Add pull_request trigger to test-schema.yaml push never fires for fork PRs, so a required-status-check rule depending on test-schema.yaml would deadlock every fork PR. Adds a pull_request trigger alongside push, and switches the concurrency group's PR fallback to github.event.pull_request.number so per-PR runs don't collide. Cherry-picked from #638's test-schema.yaml hunk, that PR's scope is the unrelated Phase 3 publish workflows and won't merge soon, this piece can't wait on it since it's needed to verify the Build job actually triggers and reports on a fork PR per #647's acceptance criteria. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: John McCall --- .github/workflows/test-schema.yaml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test-schema.yaml b/.github/workflows/test-schema.yaml index 5cdb2e3de..802607f41 100644 --- a/.github/workflows/test-schema.yaml +++ b/.github/workflows/test-schema.yaml @@ -9,12 +9,19 @@ on: - 'schema/**' - 'examples/**' - 'counterexamples/**' + pull_request: + paths: + - 'schema/**' + - 'examples/**' + - 'counterexamples/**' permissions: contents: read concurrency: - group: ${{ github.workflow }}-${{ github.ref }} + # push never fires for fork PRs, so pull_request is the only trigger a + # required check can rely on from external contributors. + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: