Store RHEL8 image layer cache in GHCR instead of the Actions cache

The nightly image build has failed since 2026-07-23 with "failed to
solve: not_found" while exporting the BuildKit layer cache, because the
repository's GitHub Actions cache is at the 10 GB limit and entries are
evicted as fast as they are written (0% cache hit rate on restore).

Use a registry cache (ci-rhel8:buildcache in GHCR) instead, which has no
size cap, and exclude the buildcache tag from the daily image cleanup.

Make the cache effective across nightly rebuilds: key the vcpkg stage on
its actual inputs (vcpkg.json, the vcpkg configuration and the vcpkg
tool) with a direct manifest install instead of copying the entire build
context, and exclude .git from the Docker build context since its
internals differ between checkouts of the same commit and invalidated
'COPY . /src' on every run. Nightly builds now reuse the compiled vcpkg
ports from the layer cache and only recompile the ResInsight warmup
stage.
This commit is contained in:
Magne Sjaastad committed 2026-07-27 15:38:46 +02:00
1 parent 87518f2f2f
commit 4b4bf29dfc
4 files changed
+38 -25

No files matched your search

+8
View File
@@ -3,6 +3,14 @@
# Docker contexts -- this file is the canonical list of paths excluded from
# `COPY . /src` (used by .github/docker/Dockerfile.rhel8).
# Git metadata. The in-image build does not need it (the CMake submodule init
# is guarded by EXISTS .git, and the submodule working trees are already in
# the context), and its internals (index, packfiles, reflogs) differ between
# checkouts of the same commit, which would invalidate the BuildKit layer
# cache for `COPY . /src` on every nightly image build.
.git
**/.git
# Local CMake build outputs (host-side; can be tens of GB).
build/
build_*/