CI Images and Runners
PostGIS CI uses two container image families and several runner fleets. Keep the dependency details in the image repositories and host setup repositories; this page is the navigation map.
| Image family | Published at | Owner | Consumers |
|---|---|---|---|
postgis/postgis-build-env:* |
Docker Hub | https://github.com/postgis/postgis-build-env | GitHub Actions Linux matrix in .github/workflows/ci.yml |
repo.osgeo.org/postgis/build-test:* |
OSGeo container registry | https://gitea.osgeo.org/postgis/postgis-docker | Woodpecker workflows under .woodpecker/ |
postgis/postgis-build-env has one Dockerfile and build.py. The script
builds and pushes the tag matrix used by the GitHub Actions Linux workflow. Its
README points at the Debbie Jenkins job that runs the regular image build.
postgis/postgis-docker owns the Woodpecker build-test images. The
build-test/Containerfile.* files and build-test/Makefile define the image
set, and the repository README documents logging in and pushing to the OSGeo
registry. At the time this page was written, this repository had build
instructions and a Debbie helper script, but no checked-in GitHub Actions,
Woodpecker, GitLab CI, or Jenkinsfile workflow of its own.
An image pull can fail before any PostGIS test starts. Treat registry timeouts, manifest failures, and authentication failures as infrastructure failures until the failing step has successfully entered a PostGIS build or test command. A Docker Hub registry timeout has made the GitHub Actions Linux matrix red before without identifying a source defect.
| Runner surface | Owner | What it covers |
|---|---|---|
| Woodie agents | https://gitea.osgeo.org/sac/woodpecker-agent-config, branch woodie-3 |
OSGeo Woodpecker agent startup scripts and deployment notes |
| Jenkins buildbot hosts | https://gitea.osgeo.org/postgis/postgis-buildbots | Linux, Debian, FreeBSD, Raspberry Pi, and Windows worker setup notes |
| In-tree Jenkins scripts | ci/debbie/, ci/winnie/, ci/bessie/, ci/berrie* |
Commands run by PostGIS Jenkins jobs and worker labels |
Woodpecker pull-request jobs run on Woodie agents. Agent capacity, Docker
socket access, binfmt_misc handlers, DNS, and registry access are runner
properties, not PostGIS source properties. If a workflow adds an emulated or
cross-architecture job, verify the runner preflight in the Woodie agent fleet
before treating the failure as a test failure.
Jenkins worker setup lives outside this repository in
postgis/postgis-buildbots. That repository still contains historical setup
notes as well as active worker notes, so use the maintained inventory in
utils/docs/ci_status/config.json and the live Jenkins job labels before
reviving an old platform. Current 32-bit coverage is the Berrie Raspberry Pi
worker, which is 32-bit ARM. The old bessie32 FreeBSD worker is not part of
the maintained CI inventory; do not rebuild 32-bit FreeBSD coverage from the old badge table
without fresh maintainer approval and a live worker readback.
Use the owning workflow or worker label for architecture claims:
- GitHub Actions Linux runs in Docker on GitHub-hosted Linux.
- GitHub Actions FreeBSD and macOS are owned by their workflow files and only cover the branches where those files exist.
- Woodpecker jobs currently declare
platform: linux/amd64unless the workflow says otherwise. - Jenkins
berrieis the maintained 32-bit ARM surface, andberrie64is the Raspberry Pi 64-bit surface. - Jenkins
bessieis the maintained FreeBSD surface;bessie32is retired from the maintained inventory.
When changing architecture coverage, update the owning workflow or worker job,
then update CI inventory standards and
utils/docs/ci_status/config.json.