- Shell 79.7%
- Dockerfile 20.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
We always want to build by running the prepare script, even when nothing in the source tree has changed, so that the build process picks up the latest Debian packages at build time. Docker's cache has no insight into that and no finer-grained control. |
||
| .forgejo/default_merge_message | ||
| prep | ||
| .dockerignore | ||
| Dockerfile | ||
| README.md | ||
Pilcrow build image for Forgejo Actions
This repo contains the definition for the Docker container used in Pilcrow's automated testing pipeline. To save some build time, the resulting container comes with the project's build dependencies pre-installed:
- NodeJS and NPM, required for Pilcrow's asset build and for common Forejo Actions actions.
- Clippy (in the default Rust release), for lints.
- Nightly, as of the container's build date.
- Rustfmt (in the Nightly release), for formatting checks.
- The
sqlx-clitools, forcargo sqlx …commands.
The underlying image is rust's stable version.
Building
To build a scratch image:
docker build --tag forge.grimoire.ca/pilcrow/builder:latest .
Releasing
-
Create a release in Forgejo. The conventional tag name is
YYYY-MM-DD-N, whereYYYY-MM-DDis the current year, month, and day (eg.2026-05-12), andNis incremented starting from1if there are multiple releases on the same day.The setting "Use the title and content of release as tag message." must be enabled, to create an annotated tag for the release. The following
git describesteps assume that the release tag is annotated. -
Fetch tags:
git fetch --all -
Build the container:
git checkout YYYY-MM-DD-N docker builder prune docker build \ --pull \ --no-cache \ --platform linux/amd64 \ --tag forge.grimoire.ca/pilcrow/builder:$(git describe) \ . -
Publish the container:
docker push \ --platform linux/amd64 \ forge.grimoire.ca/pilcrow/builder:$(git describe) -
(Optional) check out your working branch again:
git checkout -