From 080bfa298105f240f1683025704badf445a97340 Mon Sep 17 00:00:00 2001 From: jnasbyupgrade Date: Tue, 21 Jul 2026 18:08:04 -0500 Subject: [PATCH 1/2] ci: bump actions/checkout to v5 and add all-checks-passed gate - actions/checkout@v4 -> v5 (v4 triggers a Node 20 deprecation warning). - Add an all-checks-passed aggregation job so branch protection can use one stable required check instead of the matrix-dependent per-version names. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci.yml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6babfc0..74de31b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,6 +12,23 @@ jobs: - name: Start PostgreSQL ${{ matrix.pg }} run: pg-start ${{ matrix.pg }} - name: Check out the repo - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Test on PostgreSQL ${{ matrix.pg }} run: pg-build-test + + # A single stable check name for use as a required status check in branch + # protection. Matrix jobs produce names like "🐘 PostgreSQL 14" that change + # with the matrix; this aggregates them into one. It passes if every needed + # job succeeded or was skipped (e.g. a docs-only push with paths-ignore) and + # fails if any failed or were cancelled. + all-checks-passed: + needs: [test] + if: always() + runs-on: ubuntu-latest + steps: + - name: Check all jobs passed or were skipped + run: | + if [[ "${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }}" == "true" ]]; then + echo "One or more jobs failed or were cancelled" + exit 1 + fi From 785396423bbeca8c16163e5f84e88b436b081230 Mon Sep 17 00:00:00 2001 From: jnasbyupgrade Date: Sat, 25 Jul 2026 17:13:41 -0500 Subject: [PATCH 2/2] ci: scope push trigger to master to avoid double-runs on: [push, pull_request] double-triggers CI on every commit to a PR branch (once as push, once as pull_request) for the same SHA. Scope push to master so PR branches run only via pull_request; master runs post-merge via push. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 74de31b..aad0d23 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,5 +1,13 @@ name: CI -on: [push, pull_request] +# Scope push to master only. With a bare `on: [push, pull_request]`, a commit to +# a branch that has an open PR triggers CI twice (once for push, once for +# pull_request) for the same SHA -- wasteful, and a flaky run can show red next +# to an identical green one. PR branches now run only via pull_request; master +# (post-merge) runs via push. +on: + push: + branches: [master] + pull_request: jobs: test: strategy: