fix: build PostGIS independently so trunk breakage can't block the pipeline - #161
Open
gbartolini wants to merge 1 commit into
Open
gbartolini wants to merge 1 commit into
gbartolini wants to merge 1 commit into
Conversation
…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 <[email protected]>
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
PostGIS periodically fails to build against PostgreSQL trunk. Since it was built in the same
docker buildx bakeinvocation asminimal/standard, a PostGIS-only failure took the wholebuild-pgjob 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: movepostgisout of the"default"matrix into its own standalone target. A plaindocker buildx bake(orbake --push) still only builds minimal/standard;docker buildx bake postgisbuilds it explicitly.reusable-build.yml: generalize the oldminimal_tags/standard_tagsinputs into a singletargetsinput (one"<bake target>:<tags>"entry per line) so the workflow can build an arbitrary set of targets, and pass the parsed target names through todocker/bake-action'stargetsinput (it only builds bake'sdefaultgroup otherwise). Add abest_effortinput that setscontinue-on-erroron this workflow's ownbuild/mergejobs -- GitHub Actions doesn't allowcontinue-on-errordirectly on a job that calls a reusable workflow viauses:, so the tolerance has to live inside the reusable workflow itself.build.yml,build-commitfest.yml,continuous-delivery.yml: add abuild-postgisjob, parallel to and independent ofbuild-pg, callingreusable-build.ymlwithtargets: postgis:...andbest_effort: true. Nothing depends onbuild-postgis, so a PostGIS failure no longer affects minimal/standard publishing or E2E.README.md: document building thepostgistarget explicitly.Closes #158
Test plan
docker buildx bake --printlocally: default group resolves tominimal/standardonly.docker buildx bake postgis --printlocally: resolvespostgiscorrectly, including with--set postgis.tags=...overrides matching what CI generates.actionlintrun locally against all changed workflows: no syntax/expression errors (verified thecontinue-on-error-on-reusable-call restriction and worked around it).pull_requestrun) successfully.🤖 Generated with Claude Code