CI: docs-only gate, all-checks-passed, single-source PG list - #30
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
85db47d to
e1705e9
Compare
a683eb9 to
aa11fe3
Compare
6a9f1ec to
6932d1e
Compare
6932d1e to
f6d5813
Compare
f6d5813 to
9eb43e4
Compare
9eb43e4 to
f2415db
Compare
844e840 to
602e042
Compare
dccc188 to
5f7bc82
Compare
5f7bc82 to
9dc636e
Compare
9dc636e to
36606c5
Compare
36606c5 to
9e2a165
Compare
d8c4273 to
caaa285
Compare
…rce PG list Independent of the U&U testing work itself, but best done now that multiple CI jobs exist and before the next phase adds the most expensive one (a real pg_upgrade job): - `changes` job: computes the actual per-push diff and skips test/ extension-update-test/pg-tle-test entirely on doc-only pushes, always triggering itself (no workflow-level paths-ignore, which would leave all-checks-passed stuck Pending on doc-only pushes in branch protection). - Derives the supported-PostgreSQL-major list from ONE set of constants (NEWEST/FLOOR) in that same job, consumed by both the `test` and `extension-update-test` matrices via fromJSON - they can't silently drift onto different lists, and a new major is a one-line change. - `all-checks-passed`: single stable required-status-check name, with a self-check that its own needs list can't silently omit a newly-added job. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The org-wide Actions runner queue backs up easily; a draft PR being actively iterated on doesn't need the full PG matrix or the heavy pg-tle-test job re-run on every push. Add a newest_pg scalar output (single source alongside supported_pg) and reduce the test job's matrix to just that value on a draft PR, while skipping pg-tle-test (and any later heavy job following the same needs:[changes]/if: docs_only pattern) outright. Non-draft PRs and push events (e.g. post-merge on master) are unaffected.
caaa285 to
f7c8395
Compare
|
Closing/reopening to force a fresh CI dispatch - the current head commit never got a workflow run triggered at all (checked via the Actions API, not just slow queueing). |
|
I'll analyze this and get back to you. |
|
Claude finished @jnasbyupgrade's task in 3m 33s —— View job Claude's Review
SummaryThis is a well-reasoned, heavily-commented CI change, and it's already been exercised end-to-end: run 31130839307 on the current head commit is green, including I traced through the trickier parts by hand and didn't find a correctness bug:
Two minor, non-blocking observations:
No functional/application code changed (CI-only, as stated), so no test suite implications beyond the workflow itself. |

Stacked on #29 (phase 3: load-mode switching). General CI infrastructure, independent of U&U testing itself - split out as its own step rather than folded into whichever phase happened to add a new job, per the "one step at a time" approach for this whole series. Landing it here (before the next phase adds the most expensive job, a real
pg_upgradematrix) is when the docs-only skip starts actually paying for itself.What changed
changesjob: computes the real per-push diff (handles both branch pushes and PR synchronize events, fails safe to "not docs-only" on any ambiguity) and exposesdocs_only;test(which covers both the fresh-install matrix and, in the same job, the in-place update path - there's no separateextension-update-testjob) andpg-tle-testboth gate on it. Always triggers itself unconditionally (no workflow-levelpaths-ignore, which would leave a requiredall-checks-passedcheck stuck Pending on doc-only pushes).NEWEST/FLOORpair, consumed by bothtestandpg-tle-testviafromJSON- they read the same list and can't silently drift apart; a new major is now a one-line change instead of an edit in both matrices.all-checks-passed: one stable required-status-check name (matrix jobs produce names like "🐘 PostgreSQL 14 (schema none)" that change with the matrix), with a self-check that its ownneedslist can't silently omit a newly-added job.No functional test changes - CI-only.