Docker image definitions for Pilcrow's testing workflow
  • Shell 79.7%
  • Dockerfile 20.3%
Find a file
Owen Jacobson 863dd93f31 Install cargo-deb.
The builder image could be used to build debian packages. Preinstalling this tool makes it feasible to do so on the same basis as most other build tasks - it's faster if it's already there, but it works even if it's not.
2026-06-09 00:03:12 -04:00
.forgejo/default_merge_message Created project for Pilcrow's CI builder image. 2026-05-12 13:13:44 -04:00
prep Install cargo-deb. 2026-06-09 00:03:12 -04:00
.dockerignore Exclude Forgejo project config from Docker context. 2026-05-12 14:42:02 -04:00
Dockerfile Move image prep steps into a script bundle. 2026-05-12 13:58:13 -04:00
README.md Add missed steps to release instructions: 2026-06-07 11:38:38 -04:00

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-cli tools, for cargo 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, where YYYY-MM-DD is the current year, month, and day (eg. 2026-05-12), and N is incremented starting from 1 if 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 describe steps 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 \
        --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 -