Add GitHub Actions CI/CD and release packaging infrastructure#1
Merged
Conversation
Complete design documents for automated binary distribution: - spec.md: 7 user stories, 31 functional requirements, success criteria - plan.md: technical context, constitution checks, project structure - tasks.md: 71 implementation tasks organized by user story - research.md: GitHub Actions, WiX v5, cross-platform build patterns - contracts/: workflow and installer contracts - data-model.md: artifact naming, build matrix, release entities Targets pglogical 2.5.0 with PG 13-18 support across Windows 10/11, Linux (Ubuntu 20.04+, RHEL 8+), and macOS (13 Ventura - 26 Tahoe).
Add CI/CD infrastructure for automated builds and releases: - CI workflow for PR validation across PG 13-18 on Linux, Windows, macOS - Release workflow triggered by v* tags with artifact packaging - WiX v5 MSI installer with PostgreSQL auto-detection - Unix install script supporting pg_config and PGDIR options - Platform-specific README documentation Updates spec files to use README.md instead of README.txt.
…dows - Add libkrb5-dev to Linux apt-get for gssapi/gssapi.h header - Replace Chocolatey with EDB prebuilt binaries for faster Windows setup - Update pg_config path resolution for EDB binary layout
- Add sys/stat.h include for stat() function declaration - Revert Windows from EDB binaries to Chocolatey (EDB URLs return 403) - Add libkrb5-dev for GSSAPI headers on Linux
PostgreSQL 13 PGDG packages have backported the cmdtype parameter, making it a 3-argument function (estate, slot, cmdtype) instead of the original 2-argument version.
willibrandon
force-pushed
the
002-github-releases
branch
20 times, most recently
from
January 6, 2026 06:44
baf8b5c to
67dc269
Compare
…d/, not build/Release/)
- Add .clangd config to suppress warnings and disable inlay hints - Add .gitignore entries for LLVM bitcode, compile_commands.json, .cache - Use NO_DEFAULT_PATH in CMake find_library/find_program to avoid picking up wrong PostgreSQL installation - Fix signed/unsigned comparison warning in pglogical_dependency.c
Windows process startup and IPC are slower than Unix, causing regression tests to time out. This reduces polling intervals on Windows only: - supervisor latch: 180s -> 30s - drop_subscription wait: 1000ms -> 200ms - manager MIN_SLEEP: 5000ms -> 1000ms - slot_confirm_lsn poll: 1000ms -> 200ms - sync_worker_cleanup: 1000ms -> 200ms - wait_for_sync_status: 60s -> 10s - wait_for_worker_startup: 1000ms -> 200ms
- Distinguish worker slot exists vs no slot for accurate subscription status - Fix CI artifact paths to capture regression.diffs from source root - Show regression diffs directly in job summary for easier debugging
On Windows, pg_usleep has ~15ms timer granularity which can cause the apply_delay to fall slightly short of the requested duration. This caused the apply_delay regression test to fail intermittently. Add a 100ms buffer on Windows and guard against negative sleep values that could occur when processing delays exceed the target time.
…rate state This reverts the sync status lookup that incorrectly reported "replicating" when a worker slot existed but the worker wasn't actually connected. Also untrack .clangd file and add it to .gitignore.
Three fixes for race conditions when extension is dropped and recreated: 1. Notify supervisor immediately when manager exits cleanly, not just on crash. Previously supervisor waited up to 30s before restarting. 2. Retry extension check on manager startup (5 attempts, 200ms apart) to handle window between DROP EXTENSION and CREATE EXTENSION. 3. Return false instead of exiting when no local node found, letting the main loop wait and retry for create_node() to complete. Also adds 500ms delay on Windows after sync completes to ensure streaming connection is established before checking pg_replication_slots. Includes stress test scripts to detect flaky tests (20/20 passes).
willibrandon
force-pushed
the
002-github-releases
branch
2 times, most recently
from
January 8, 2026 06:19
3055429 to
c596432
Compare
- Remove deprecated PostgreSQL 13 and 14 from build matrix - Remove Intel Mac (macos-15-intel) builds - Apple Silicon only now - Switch ARM64 runner from macos-14 to macos-26 - Fix artifact upload to use regression_output/ directory
willibrandon
force-pushed
the
002-github-releases
branch
from
January 8, 2026 06:56
5fc36f8 to
a99602f
Compare
…o avoid race condition
WiX v5 resolves source paths relative to where 'wix build' is run, not relative to the .wxs file location. Updated paths from "..\..\build\Release" to "build\Release" to resolve from repo root.
1. Use absolute paths for WiX file harvesting - relative paths with "." prefix weren't matching SQL files correctly in WiX v5 2. Add MSI_VERSION variable for numeric-only version (strips -rc* suffix) to satisfy MSI version requirements (major.minor.patch only) 3. Add MSI verification step that checks file size and attempts install 4. Update Package Name to show full version including prerelease suffix
Make MSI verification step strict - any installation failure now fails the release workflow instead of just logging warnings.
willibrandon
force-pushed
the
002-github-releases
branch
from
January 8, 2026 08:59
cb85721 to
a9ec514
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds automated CI/CD infrastructure for building and releasing pglogical across all supported platforms.
CI Workflow (
ci.yml)Release Workflow (
release.yml)v*tags (e.g.,v2.5.0)Packaging
packaging/windows/pglogical.wxs- WiX v5 MSI installerpackaging/unix/install.sh- Installation script supportingpg_config,PG_CONFIG, andPGDIRPlatform Support
Test Plan
v2.5.0-rc16tag