Skip to content

Raise the PostgreSQL floor to 12 and add GitHub Actions CI with update testing - #4

Merged
jnasbyupgrade merged 8 commits into
masterfrom
ci-workflow
Oct 26, 2026
Merged

jnasbyupgrade merged 8 commits into
masterfrom
ci-workflow

Conversation

@jnasbyupgrade

@jnasbyupgrade jnasbyupgrade commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Raises the supported PostgreSQL floor to 12 and replaces Travis with GitHub Actions CI. On every supported major, CI tests both a fresh install and the update from 0.2.0.

The floor is 12 because extension_drop pulls in cat_tools, and cat_tools 0.3.0 and newer declare PostgreSQL 12 as their minimum (on 9.6, creating it fails with syntax error at or near "ROUTINE"). This PR raises the PostgreSQL build prereq in META.in.json to 12.0.0, adds a HISTORY.asc entry, and removes the test/deps.sql setup code that only ran before PostgreSQL 10.

Update testing

make test-update (make test TEST_LOAD_SOURCE=update) runs the same suite against the same expected output. Instead of installing the current version, pg_temp._create() in test/deps.sql installs 0.2.0 and runs ALTER EXTENSION "trunklet-format" UPDATE. It creates extension_drop first, as updating from 0.2.0 requires. The mode reaches the tests as a placeholder GUC (trunklet_format.test_load_mode) through PGOPTIONS, and _create() fails if the GUC is missing or holds an unknown value. With the function replacement removed from sql/trunklet-format--0.2.0--stable.sql, make test-update fails.

CI

.github/workflows/ci.yml has three jobs:

  • A changes job that skips the test matrix on docs-only pushes and derives the PostgreSQL major list from NEWEST and FLOOR.
  • A per-major job in the pgxn/pgxn-tools container that runs make verify-results, then make verify-results TEST_LOAD_SOURCE=update.
  • A single all-checks-passed job for branch protection.

Run 40407837451 passes on PostgreSQL 12 through 18, with both test steps green on each major.

Also removes the Travis configuration (.travis.yml, pg-travis-test.sh), which tested only PostgreSQL 9.5 and 9.6, along with test comments that referred to Travis or to PostgreSQL 10. The DETAIL checks in test/sql/base.sql that were disabled because they did not work on Travis are re-enabled as pgTAP assertions.

🤖 Generated with Claude Code

@coderabbitai

coderabbitai Bot commented Oct 25, 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
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 564226cf-93cb-40af-a06b-527ff168275e

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
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@jnasbyupgrade
jnasbyupgrade added this pull request to stack #5 October 25, 2026 19:13
@jnasbyupgrade
jnasbyupgrade marked this pull request as draft October 25, 2026 19:16
@jnasbyupgrade jnasbyupgrade changed the title Replace Travis with GitHub Actions CI CI: Replace Travis with GitHub Actions CI Oct 25, 2026
@jnasbyupgrade
jnasbyupgrade removed this pull request from stack #5 October 25, 2026 19:47
@jnasbyupgrade
jnasbyupgrade added this pull request to stack #7 October 25, 2026 19:47
@jnasbyupgrade
jnasbyupgrade removed this pull request from stack #7 October 25, 2026 20:10
@jnasbyupgrade
jnasbyupgrade added this pull request to stack #9 October 25, 2026 20:10
@jnasbyupgrade jnasbyupgrade changed the title CI: Replace Travis with GitHub Actions CI Raise the PostgreSQL floor to 12 and add GitHub Actions CI with update testing Oct 25, 2026
Base automatically changed from pgxntool-update to master October 26, 2026 21:17
jnasbyupgrade and others added 6 commits October 26, 2026 16:17
Adds `.github/workflows/ci.yml`: a changes job that skips the test
matrix on docs-only pushes and derives the supported PostgreSQL major
list from one pair of constants, a per-major test job in the
`pgxn/pgxn-tools` container that runs `make verify-results`, and a
single `all-checks-passed` job for branch protection. Removes the
Travis configuration (`.travis.yml`, `pg-travis-test.sh`), which tested
only PostgreSQL 9.5 and 9.6.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Matches the final trunklet CI workflow: supported range is PostgreSQL 9.5
through 18, with 9.6 and 9.5 listed explicitly because `seq` can't
express them.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
extension_drop installs cat_tools >= 0.2.1, which now resolves to
cat_tools 0.3.0; that release requires PostgreSQL 12 and fails to install
on older majors. Set the PostgreSQL build prereq to 12.0.0, make the CI
matrix a plain range from NEWEST down to FLOOR=12, and drop the test
setup code that only ran before PostgreSQL 10.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`make test-update` (TEST_LOAD_SOURCE=update) runs the same suite with
the same expected output, but pg_temp._create() installs 0.2.0 and
runs ALTER EXTENSION UPDATE instead of installing the current version.
It creates extension_drop first, since 0.2.0 did not require it. CI
runs it as a second step in each test job.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jnasbyupgrade
jnasbyupgrade marked this pull request as ready for review October 26, 2026 21:18
Comment thread test/sql/base.sql Outdated
) specifier_test
;
-- This is meant to ensure the DETAIL is correct, but it doesn't work on travis :(
-- Disabled check that the DETAIL is correct

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Uh... can we actually test this now?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude here: flagged for review.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude here: re-enabled both DETAIL checks as pgTAP assertions in a9f969f. A pg_temp helper captures the exception DETAIL and is() compares it to parameter "<name>" at template position <N> for all three templates; they all pass.

jnasbyupgrade and others added 2 commits October 26, 2026 16:32
Replace the commented-out psql-based DETAIL checks in base.sql with a
pg_temp helper that captures PG_EXCEPTION_DETAIL, asserted with is().

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@jnasbyupgrade
jnasbyupgrade merged commit 9474269 into master Oct 26, 2026
10 checks passed
@jnasbyupgrade
jnasbyupgrade deleted the ci-workflow branch October 26, 2026 22:39
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