- Dockerfile 71%
- Makefile 29%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo | ||
| .dockerignore | ||
| .editorconfig | ||
| CHANGELOG.md | ||
| cz.toml | ||
| Dockerfile | ||
| LICENSE | ||
| Makefile | ||
| README.md | ||
general-ci-image
General-purpose CI container image for ModernLeft repos, published to the
Forgejo container registry as code.modernleft.org/modernleft/general-ci.
Contents
Single-stage image (see Dockerfile for the authoritative versions):
- Node (
node:24-slimbase) — required in every job container by the Forgejo runner, which executes JS actions with the container's own node uvwith a uv-managed Python, installed per-user for the non-rootappuser- uv cache mount point at
/opt/uv-cache(UV_CACHE_DIR,UV_LINK_MODE=copy) matching the shareduv_cacherunner volume
Consumers
CI workflows in ModernLeft repos run inside this image, pinned by version tag. Publishing a new version does not move consumers until they update their pins.
Release flow
Releases follow the standard type-based model, documented at
docs.modernleft.org/development/releases.
.forgejo/workflows/build-version.yaml test-builds the image on every push
to main and runs the bump; the tag push triggers
.forgejo/workflows/publish.yaml, which publishes the version tag and
latest. .forgejo/workflows/pr-bump-preview.yaml comments on PRs with the
release a merge would cut.
Local build
make build # docker build -> general-ci:local
make run # interactive shell in the local image