Orchestration for building CPython into split Debian packages (python3.13, libpython3.13-stdlib, python3.13-dev, …) and publishing to a self-hosted APT repository.
Fork of deadsnakes/runbooks, adapted for Debian (trixie, unstable) and Dockershelf hosting.
Clone this repo as a sibling of the py3.* packaging repos:
deadsnakes-pipeline/
├── python-pipeline/ # this repo
├── py3.10/
├── py3.11/
├── …
└── py3.14/
cd python-pipeline
cp config.env.example config.env
make bootstrap
make build-tools-image # gbp, dch, dpkg-parsechangelog
make build-builder-images
make materialize PY=3.13 DIST=trixie
make build PY=3.13
make publish DIST=trixiemake materialize PY=3.13 DIST=trixie
make build PY=3.13Output .deb files land in dist/.
make generate-dockerfiles
make build-builder-imagesBuilder images are tagged dockershelf-python-builder/<suite> (e.g. dockershelf-python-builder/trixie).
Copy config.env.example to config.env. Droplet APT hosting: debian-repo-setup/README.md. GitHub + DNS wiring: docs/deploy-setup.md.
| Local path (sibling) | Remote |
|---|---|
../py3.10/ … ../py3.14/ |
https://github.com/Dockershelf/py3.XX |
make bootstrap clones any missing py3.* repos into the workspace parent directory.
Step-by-step guides for maintainers:
Full reference: docs/operations.md
GitHub Actions build GHCR builder images, run meta-gbp update / build / smoke test, and publish to the APT droplet. Setup: docs/ci.md.