postgresql-interfaces/psqlodbc GitHub issues and pull requests (mirror)  
help / color / mirror / Atom feed
[postgresql-interfaces/psqlodbc] PR #157: Upgrade GitHub Actions workflow
6+ messages / 2 participants
[nested] [flat]

* [postgresql-interfaces/psqlodbc] PR #157: Upgrade GitHub Actions workflow
@ 2026-03-05 22:28 "fdcastel (@fdcastel)" <[email protected]>
  0 siblings, 0 replies; 6+ messages in thread

From: fdcastel (@fdcastel) @ 2026-03-05 22:28 UTC (permalink / raw)
  To: postgresql-interfaces/psqlodbc <[email protected]>

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.

^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: [postgresql-interfaces/psqlodbc] PR #157: Upgrade GitHub Actions workflow
@ 2026-03-06 12:25 ` "davecramer (@davecramer)" <[email protected]>
  4 siblings, 0 replies; 6+ messages in thread

From: davecramer (@davecramer) @ 2026-03-06 12:25 UTC (permalink / raw)
  To: postgresql-interfaces/psqlodbc <[email protected]>

I believe we do require openssl to release a version.

^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: [postgresql-interfaces/psqlodbc] PR #157: Upgrade GitHub Actions workflow
@ 2026-03-06 12:26 ` "davecramer (@davecramer)" <[email protected]>
  4 siblings, 0 replies; 6+ messages in thread

From: davecramer (@davecramer) @ 2026-03-06 12:26 UTC (permalink / raw)
  To: postgresql-interfaces/psqlodbc <[email protected]>

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

^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: [postgresql-interfaces/psqlodbc] PR #157: Upgrade GitHub Actions workflow
@ 2026-03-06 13:03 ` "fdcastel (@fdcastel)" <[email protected]>
  4 siblings, 0 replies; 6+ messages in thread

From: fdcastel (@fdcastel) @ 2026-03-06 13:03 UTC (permalink / raw)
  To: postgresql-interfaces/psqlodbc <[email protected]>

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.

^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: [postgresql-interfaces/psqlodbc] PR #157: Upgrade GitHub Actions workflow
@ 2026-03-14 11:28 ` "fdcastel (@fdcastel)" <[email protected]>
  4 siblings, 0 replies; 6+ messages in thread

From: fdcastel (@fdcastel) @ 2026-03-14 11:28 UTC (permalink / raw)
  To: postgresql-interfaces/psqlodbc <[email protected]>

@davecramer I've updated the PR to address both of your concerns.

Please feel free to share any additional questions or suggestions.

-----
**What changed:**

1. **OpenSSL restored** — Both x64 and x86 builds now include OpenSSL (currently 3.3.6, matching `main`). The SSL DLLs are placed into `d:\postgresql\bin` and `d:\postgresql86\bin` so the installers pick them up correctly.

2. **PostgreSQL built from source** (`REL_18_STABLE`) — No more prebuilt binaries. The full x64 server is built with `ninja` + `ninja install` (same as before), and pkgconfiglite is back for OpenSSL detection.

3. **Rebased on latest `main`** — Includes the release 17.00.0008 changes and the OpenSSL 3.3.6 CVE fix.

**What's kept from the original PR:**

- **Parallel matrix** — standard and mimalloc run simultaneously
- **Separate release job** — only runs on `REL-*` tags, uses `upload-artifact`/`download-artifact`
- **Minimal x86 libpq build** — only builds the client library (with SSL now), not the full server. Much faster than a full x86 build.

**What's new:**

- **Dedicated `build-postgres` job** — Builds PostgreSQL x64 (full) and x86 (libpq only) once, caches the result. Both matrix jobs then restore from cache using `actions/cache/restore`. This avoids wasteful duplicate PG builds and speeds up cache-miss debugging runs.

- **`workflow_dispatch` trigger** — Allows manual workflow runs from the Actions tab (useful for debugging).

**Workflow structure:**

```
build-postgres          →  build-and-test (standard)   →  release
(PG x64 full + x86 libpq)    build-and-test (mimalloc)      (only on REL-* tags)
```

**Timing (cached run on my fork):**

| Job | Duration |
|-----|----------|
| build-postgres | 10s (cache hit) |
| build-and-test (standard) | ~7m |
| build-and-test (mimalloc) | ~8m |
| **Total wall-clock** | **~9 min** |

On a cold run (no cache), `build-postgres` will take longer to build PG from source, but the result is cached for all subsequent runs. The `WORKFLOW_VERSION_POSTGRESQL` env var can be bumped to invalidate the cache when needed.


^ permalink  raw  reply  [nested|flat] 6+ messages in thread

* Re: [postgresql-interfaces/psqlodbc] PR #157: Upgrade GitHub Actions workflow
@ 2026-03-18 20:13 ` "davecramer (@davecramer)" <[email protected]>
  4 siblings, 0 replies; 6+ messages in thread

From: davecramer (@davecramer) @ 2026-03-18 20:13 UTC (permalink / raw)
  To: postgresql-interfaces/psqlodbc <[email protected]>

Just confirmed that the release still works, thanks so much for this

^ permalink  raw  reply  [nested|flat] 6+ messages in thread


end of thread, other threads:[~2026-03-18 20:13 UTC | newest]

Thread overview: 6+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2026-03-05 22:28 [postgresql-interfaces/psqlodbc] PR #157: Upgrade GitHub Actions workflow "fdcastel (@fdcastel)" <[email protected]>
2026-03-06 12:25 ` "davecramer (@davecramer)" <[email protected]>
2026-03-06 12:26 ` "davecramer (@davecramer)" <[email protected]>
2026-03-06 13:03 ` "fdcastel (@fdcastel)" <[email protected]>
2026-03-14 11:28 ` "fdcastel (@fdcastel)" <[email protected]>
2026-03-18 20:13 ` "davecramer (@davecramer)" <[email protected]>

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox