[SCM] PostGIS branch master updated. 3.7.0beta1-154-gf0c84f8c6e
git at osgeo.org
git at osgeo.org
Fri Jul 31 23:00:09 PDT 2026
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "PostGIS".
The branch, master has been updated
via f0c84f8c6e7f5010805f0eab79b6676c6c63d009 (commit)
via a87aabc5815f2f7f929591a837319f88c3cd2963 (commit)
from 499ed9e4223344ceed80102fd9e29fc0b31e03a5 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit f0c84f8c6e7f5010805f0eab79b6676c6c63d009
Merge: 499ed9e422 a87aabc581
Author: Darafei Praliaskouski <komzpa at gmail.com>
Date: Fri Jul 31 23:00:08 2026 -0700
Merge pull request 'Move Woodpecker garden out of push QA' (!638) from Komzpa/postgis:ci/woodie-garden-real-verdict-20260731 into master
Woodpecker's previous garden row did not reach garden. Three sampled master pipelines showed the same pattern: pipeline 6319 had qa-expensive/garden fail with exit 124 after 5477 seconds, pipeline 6275 failed with exit 124 after 5515 seconds, and pipeline 6243 failed with exit 124 after 5659 seconds. Because the step was marked `failure: ignore`, that timeout could still be presented as a green workflow.
I measured the full Woodpecker garden command in `repo.osgeo.org/postgis/build-test:debian13` on geocint. With the existing debug/coverage flags, `CFLAGS="-g -O0 -mtune=generic -fno-omit-frame-pointer --coverage"`, `LDFLAGS="--coverage"`, and `--enable-debug`, `make garden` timed out after 18000 seconds while still generating `postgis_gardentest_37.sql` with `xsltproc`. With an optimized non-coverage build, `CFLAGS="-g -O2 -mtune=generic -fno-omit-frame-pointer"` and `LDFLAGS="-Wl,-Bsymbolic-functions -Wl,-z,relro"`, `make garden` also timed out after 18000 seconds at the same first XSLT generation step. In both cases it did not reach the database garden cases before Woodpecker's five-hour deadline.
This change removes garden from the push and tag `qa-expensive` workflow so master pushes no longer spend a slot on a check that cannot finish and then report a false signal. Coverage remains in `qa-expensive`. Garden moves to a dedicated `.woodpecker/garden.yml` workflow for `manual` and `cron` events, using the optimized non-coverage build and a 270-minute command timeout so the step fails red before the server's 300-minute deadline if generation still cannot finish. The intended cron is `garden-weekly`, Saturday 03:00 UTC: frequent enough to keep the limitation visible, but not every push while the generator cannot get to a verdict.
Rejected alternative one was keeping `failure: ignore`, because it preserves the false green. Rejected alternative two was only raising the 90-minute timeout on master pushes, because both measured configurations still timed out at 18000 seconds before the first garden SQL file existed. Rejected alternative three was claiming a scheduled full garden pass, because the current full target cannot produce one inside Woodpecker's deadline; the dedicated workflow is an honest bounded red signal until the generator is fixed or garden is structurally split.
The dedicated workflow also runs on pull_request only when `.woodpecker/garden.yml` or `.woodpecker/qa-expensive.yml` changes, so this PR can prove the new Woodpecker garden workflow without adding normal garden load to unrelated PRs.
Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/638
commit a87aabc5815f2f7f929591a837319f88c3cd2963
Author: Darafei Praliaskouski <me at komzpa.net>
Date: Sat Aug 1 09:13:01 2026 +0400
Move Woodpecker garden out of push QA
diff --git a/.woodpecker/garden.yml b/.woodpecker/garden.yml
new file mode 100644
index 0000000000..7f725b57aa
--- /dev/null
+++ b/.woodpecker/garden.yml
@@ -0,0 +1,53 @@
+# Dedicated Woodpecker garden workflow.
+# Garden currently exceeds the five-hour Woodpecker deadline before generating
+# its SQL, so keep it out of push fan-out and run it only by cron or manually.
+
+labels:
+ platform: linux/amd64
+when:
+ - event: pull_request
+ path:
+ include:
+ - .woodpecker/garden.yml
+ - .woodpecker/qa-expensive.yml
+ - event: manual
+ - event: cron
+variables:
+ test-image: &test-image repo.osgeo.org/postgis/build-test:debian13
+ steps-env: &steps-env
+ - export PGVER=18
+ - export PATH=/usr/lib/postgresql/$${PGVER}/bin:$${PATH}
+ - export POSTGIS_REGRESS_DB_OWNER=postgis_reg_unprivileged_user
+ - export SRCDIR=$${CI_WORKSPACE}
+ - export BUILDDIR=$${SRCDIR}/build/garden-pg$${PGVER}
+ - export QA_REGRESS_HOOKS="--after-create-db-script $${CI_WORKSPACE}/regress/hooks/configure-pgextwlist.sql"
+ - pg_config --version
+ steps-start-postgresql: &steps-start-postgresql
+ - . ci/start-postgresql.sh
+ - psql -c 'select version()' template1
+
+clone:
+ git:
+ image: woodpeckerci/plugin-git
+ settings:
+ depth: 50
+ partial: false
+
+steps:
+ garden:
+ image: *test-image
+ pull: true
+ commands:
+ - <<: *steps-env
+ - <<: *steps-start-postgresql
+ - mkdir -p "$${BUILDDIR}"
+ - cd "$${BUILDDIR}"
+ - apt-get update
+ - apt-get install -y --no-install-recommends proj-bin
+ - rm -rf /var/lib/apt/lists/*
+ - projsync --system-directory --file au_icsm_GDA94_GDA2020_conformal_and_distortion.tif
+ - $${SRCDIR}/configure
+ CFLAGS="-g -O2 -mtune=generic -fno-omit-frame-pointer"
+ LDFLAGS="-Wl,-Bsymbolic-functions -Wl,-z,relro"
+ - make -j1
+ - timeout 270m make garden
diff --git a/.woodpecker/qa-expensive.yml b/.woodpecker/qa-expensive.yml
index d4f9dbb2f9..011e6e40dc 100644
--- a/.woodpecker/qa-expensive.yml
+++ b/.woodpecker/qa-expensive.yml
@@ -35,10 +35,8 @@ steps:
coverage:
image: *test-image
depends_on: autogen
- when:
- - matrix:
- QA_MODE: coverage
commands:
+ - export QA_MODE=coverage
- <<: *steps-env
- <<: *steps-start-postgresql
- mkdir -p "$${BUILDDIR}"
@@ -55,34 +53,5 @@ steps:
- lcov --capture --directory "$${BUILDDIR}" --output-file "$${BUILDDIR}/coverage.info" --ignore-errors source
- lcov --list "$${BUILDDIR}/coverage.info"
- garden:
- image: *test-image
- depends_on: autogen
- # Current master exposes a long-running generated
- # ST_LargestEmptyCircle case; keep the signal visible but bounded.
- failure: ignore
- when:
- - matrix:
- QA_MODE: garden
- commands:
- - <<: *steps-env
- - <<: *steps-start-postgresql
- - mkdir -p "$${BUILDDIR}"
- - cd "$${BUILDDIR}"
- - apt-get update
- - apt-get install -y --no-install-recommends proj-bin
- - rm -rf /var/lib/apt/lists/*
- - projsync --system-directory --file au_icsm_GDA94_GDA2020_conformal_and_distortion.tif
- - $${SRCDIR}/configure
- CFLAGS="-g -O0 -mtune=generic -fno-omit-frame-pointer --coverage"
- LDFLAGS="--coverage"
- --enable-debug
- - make -j1
- - timeout 90m make garden
-
-# Coverage and garden are much more expensive than the sanitizer and
-# string-literal smoke modes, so keep them off pull-request fan-out.
-matrix:
- include:
- - QA_MODE: coverage
- - QA_MODE: garden
+# Coverage is much more expensive than the sanitizer and string-literal smoke
+# modes, so keep it off pull-request fan-out.
-----------------------------------------------------------------------
Summary of changes:
.woodpecker/garden.yml | 53 ++++++++++++++++++++++++++++++++++++++++++++
.woodpecker/qa-expensive.yml | 37 +++----------------------------
2 files changed, 56 insertions(+), 34 deletions(-)
create mode 100644 .woodpecker/garden.yml
hooks/post-receive
--
PostGIS
More information about the postgis-tickets
mailing list