CI: add pre-baked ci-base image (producer) [Phase 1a] #637
Reference in New Issue
Block a user
Delete Branch "chore/ci-base-image"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Producer half of the Woodpecker CI cache work (Phase 1a)
This is the producer of a two-PR split. It adds only the image recipe:
Dockerfile.ci(new).woodpecker/ci-image.yml(new)Why split (bootstrap problem)
ci.yml/publish.ymlare being switched to pullgit.mosaicstack.dev/mosaicstack/stack/ci-base:latest. Butci-image.ymlcan only build+push that image on a main push/manual event (kanikofrom_secretis blocked on PR events). A single combined PR could never go green — its own CI would try to pull an image that does not exist yet. So we land the producer first, prime the image on main, then land the consumer.Nothing in this PR references the
ci-baseimage. Its own pipeline still runs onnode:22-alpine, so this PR's CI is green on its own.After merge
ci-base:latestvia a manualci-imagepipeline trigger on main (orchestrator does this).ci.yml/publish.ymlto the baked image.Review fixes applied to
Dockerfile.cibashinto theapk addtoolchain — thesanitizationstep inci.ymlotherwise does a per-runapk add bash.pnpm fetch—fetchonly populates the tarball store; nativenode-gypbuilds still happen atpnpm install. Comments reworded: store/tarballs are fetched at build time, native compile still runs at install (which is why the toolchain stays baked). Commands unchanged.Refs #634. Board report:
jarvis-brain/docs/reports/woodpecker-ci-cache-board-2026-06-22.md.No self-merge — needs review.