Skip to content

fix: build PostGIS independently so trunk breakage can't block the pipeline - #161

Open
gbartolini wants to merge 1 commit into
mainfrom
dev/separate-postgis-build
Open

gbartolini wants to merge 1 commit into
mainfrom
dev/separate-postgis-build

Conversation

@gbartolini

Copy link
Copy Markdown
Contributor

Summary

PostGIS periodically fails to build against PostgreSQL trunk. Since it was built in the same docker buildx bake invocation as minimal/standard, a PostGIS-only failure took the whole build-pg job down with it -- blocking image publishing and, transitively, E2E testing (interim mitigation in #159 disabled PostGIS entirely; this is the long-term fix tracked in #158).

  • docker-bake.hcl: move postgis out of the "default" matrix into its own standalone target. A plain docker buildx bake (or bake --push) still only builds minimal/standard; docker buildx bake postgis builds it explicitly.
  • reusable-build.yml: generalize the old minimal_tags/standard_tags inputs into a single targets input (one "<bake target>:<tags>" entry per line) so the workflow can build an arbitrary set of targets, and pass the parsed target names through to docker/bake-action's targets input (it only builds bake's default group otherwise). Add a best_effort input that sets continue-on-error on this workflow's own build/merge jobs -- GitHub Actions doesn't allow continue-on-error directly on a job that calls a reusable workflow via uses:, so the tolerance has to live inside the reusable workflow itself.
  • build.yml, build-commitfest.yml, continuous-delivery.yml: add a build-postgis job, parallel to and independent of build-pg, calling reusable-build.yml with targets: postgis:... and best_effort: true. Nothing depends on build-postgis, so a PostGIS failure no longer affects minimal/standard publishing or E2E.
  • README.md: document building the postgis target explicitly.

Closes #158

Test plan

  • docker buildx bake --print locally: default group resolves to minimal/standard only.
  • docker buildx bake postgis --print locally: resolves postgis correctly, including with --set postgis.tags=... overrides matching what CI generates.
  • actionlint run locally against all changed workflows: no syntax/expression errors (verified the continue-on-error-on-reusable-call restriction and worked around it).
  • All workflow YAML parses.
  • CI run on this PR builds minimal/standard/postgis (amd64 validation only, since this is a pull_request run) successfully.

🤖 Generated with Claude Code

…peline

PostGIS periodically fails to build against PostgreSQL trunk. Since it was
built in the same `docker buildx bake` invocation as minimal/standard (see
#158), a PostGIS-only failure took the whole build-pg job down with it --
blocking minimal/standard image publishing and, transitively, E2E testing,
since call-reusable-e2e needs build-pg.

- docker-bake.hcl: move `postgis` out of the "default" matrix into its own
  standalone target, so a plain `docker buildx bake` (or `bake --push`)
  still only builds minimal/standard, while `docker buildx bake postgis`
  builds it explicitly.
- reusable-build.yml: generalize the `minimal_tags`/`standard_tags` inputs
  into a single `targets` input (one "<bake target>:<tags>" entry per
  line), so the same reusable workflow can build an arbitrary set of
  targets. Also pass the parsed target names to `docker/bake-action`'s
  `targets` input, since it only builds bake's "default" group otherwise.
  Add a `best_effort` input that sets `continue-on-error` on this
  workflow's own build/merge jobs -- GitHub Actions doesn't allow
  `continue-on-error` directly on a job that calls a reusable workflow via
  `uses:`, so the tolerance has to live inside the reusable workflow itself.
- build.yml, build-commitfest.yml, continuous-delivery.yml: add a
  `build-postgis` job, parallel to (and independent of) `build-pg`, that
  calls reusable-build.yml with `targets: postgis:...` and
  `best_effort: true`. Nothing depends on `build-postgis`, so a PostGIS
  failure no longer affects minimal/standard or E2E.
- README.md: document building the `postgis` target explicitly.

Closes #158

Assisted-by: Claude

Signed-off-by: Gabriele Bartolini <gabriele.bartolini@enterprisedb.com>
@gbartolini
gbartolini requested a review from a team as a code owner September 19, 2026 07:46
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.

Separate PostGIS build from the main pipeline

1 participant