Skip to content

Phase 3.5: CI hygiene - docs-only gate, all-checks-passed, single-source PG list - #30

Open
jnasbyupgrade wants to merge 1 commit into
phase3-load-modefrom
phase3.5-ci-hygiene
Open

Phase 3.5: CI hygiene - docs-only gate, all-checks-passed, single-source PG list#30
jnasbyupgrade wants to merge 1 commit into
phase3-load-modefrom
phase3.5-ci-hygiene

Conversation

@jnasbyupgrade

Copy link
Copy Markdown
Contributor

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_upgrade` matrix) is when the docs-only skip starts actually paying for itself.

What changed

  • `changes` job: computes the real per-push diff (handles both branch pushes and PR synchronize events, fails safe to "not docs-only" on any ambiguity) and exposes `docs_only`; `test`/`extension-update-test`/`pg-tle-test` all gate on it. Always triggers itself unconditionally (no workflow-level `paths-ignore`, which would leave a required `all-checks-passed` check stuck Pending on doc-only pushes).
  • Same job derives the supported-PostgreSQL-major list from a single `NEWEST`/`FLOOR` pair, consumed by both `test` and `extension-update-test` via `fromJSON` - 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 own `needs` list can't silently omit a newly-added job.

No functional test changes - CI-only.

…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>
@coderabbitai

coderabbitai Bot commented Aug 1, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 13df56de-3afd-4b0e-a152-67b838d0a36e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant