Skip to content

Upgrade GitHub Actions workflow#157

Open
fdcastel wants to merge 1 commit intopostgresql-interfaces:mainfrom
fdcastel:issue-156
Open

Upgrade GitHub Actions workflow#157
fdcastel wants to merge 1 commit intopostgresql-interfaces:mainfrom
fdcastel:issue-156

Conversation

@fdcastel
Copy link
Contributor

@fdcastel fdcastel commented Mar 5, 2026

Closes #156


Key improvements:

  1. No full PostgreSQL build from source - x64 uses prebuilt EDB binaries (PG 17.9 binary archive, ~1 min download vs ~15 min build)
  2. x86 libpq only - Builds ONLY the libpq client library from source via meson compile ... libpq:shared_library. The test server is always x64; x86 libpq is only needed to compile/link the x86 ODBC driver. No SSL needed since CI tests use localhost.
  3. Eliminated dependencies: Win32/Win64 OpenSSL and pkgconfiglite are no longer needed (winflexbison is still required by PG's meson build system)
  4. Parallel matrix - standard and mimalloc run simultaneously
  5. Separate release job - only runs on version tags

Results (first run, no caches):

  • standard: 8m28s
  • mimalloc: 11m47s
  • Total wall-clock: ~12 min (vs ~25+ min sequential in the old workflow)

Subsequent cached runs will be even faster since the x86 libpq, x64 binaries, and all tools are cached.

- Use prebuilt PostgreSQL x64 binaries instead of building from source
- Build only the x86 libpq client library from source (NOT the full server)
  No official prebuilt x86 PostgreSQL binaries exist since PG 11.
  The test server is always x64; x86 libpq is only needed to compile
  and link the x86 ODBC driver.
  SSL is not required for the x86 client lib (CI tests use localhost).
- Eliminate Win32/Win64 OpenSSL, pkgconfiglite dependencies
  (winflexbison is still required by the PostgreSQL meson build system)
- Run standard and mimalloc builds in parallel using matrix strategy
- Separate release job that runs only on version tags

Closes postgresql-interfaces#156
@davecramer
Copy link
Contributor

I believe we do require openssl to release a version.

@davecramer
Copy link
Contributor

The reason we pull from git is to get the latest. 17.9 is not the latest. We can cache the build though

@fdcastel
Copy link
Contributor Author

fdcastel commented Mar 6, 2026

Sorry Dave. I have to admit I didn’t pay much attention to the release process. I focused mainly on the builds in this initial PR to get some early feedback.

I’ll review how the current release process works and come back with a revised PR.

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.

Upgrade GitHub Actions workflow

2 participants