Measured here (Isabelle2025-2, one thread): HOL-Library from scratch takes ~11 minutes and peaks at ~5.3 GiB -- what nightly 174 was killed doing; the StarForth session on a built HOL-Library takes under a minute and ~2.2 GiB. The image builds HOL-Library once into Isabelle's own heaps, so every job finds it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GE3SDvQn5EoxdGufk84zz2
20 lines
1.2 KiB
Docker
20 lines
1.2 KiB
Docker
# The CI runner image (#120): gitea/runner-images' Ubuntu 24.04 with Node -- which
|
|
# actions/checkout and upload-artifact run on -- plus everything the jobs install at their start:
|
|
# what `make ARCH=amd64,aarch64,riscv64 init INIT_DOCS=0` installs (taken from the Makefile
|
|
# itself, not copied, so the two cannot drift), Maven and a JRE for the publish steps, and
|
|
# Isabelle's HOL-Library already built, for the proofs.
|
|
#
|
|
# Built by .gitea/workflows/runner-image.yml, from a context of the Makefile, boards/ and this file.
|
|
FROM gitea/runner-images:ubuntu-24.04-v26.11.03
|
|
COPY Makefile /opt/starship-init/Makefile
|
|
COPY boards /opt/starship-init/boards
|
|
WORKDIR /opt/starship-init
|
|
RUN make --no-print-directory ARCH=amd64,aarch64,riscv64 init INIT_DOCS=0 \
|
|
&& DEBIAN_FRONTEND=noninteractive apt-get install -y -qq maven default-jre-headless \
|
|
&& rm -rf /var/lib/apt/lists/* /opt/starship-init/build/cache/downloads
|
|
# HOL-Library, built once here, into Isabelle's own heaps (system_heaps), so the nightly's proofs
|
|
# build only the StarForth session: ~2.2 GiB and under a minute, where HOL-Library from scratch
|
|
# takes ~5.3 GiB and ~11 minutes -- more than the runner had (nightly 174, killed).
|
|
RUN isabelle build -b -o system_heaps -o threads=1 HOL-Library
|
|
WORKDIR /
|