Increase Windows buildcache size limit to 1.5 GiB

A full Windows build writes ~550 MB of buildcache entries, so the shared 500 MB limit was exceeded before the build finished. buildcache then evicted entries the same build still needed, and the cache never converged: rebuilding an unchanged tree against a cache written by that very tree hit only 44%, leaving the Windows leg at ~70 minutes while Linux, whose objects are half the size, finished in 83 seconds.

Move the limit into the matrix so Windows gets 1.5 GiB and Linux keeps 500 MB.
This commit is contained in:
Magne Sjaastad
2026-09-03 14:32:50 +02:00
parent 6a7301e004
commit e8f02fd7b0
+9 -2
View File
@@ -32,6 +32,7 @@ jobs:
enable-asserts: false,
vcpkg-bootstrap: bootstrap-vcpkg.bat,
vcpkg-triplet: x64-windows-release,
buildcache-max-size: 1610612736,
qt-version: 6.10.1,
ri-unit-test-path: "ApplicationLibCode/UnitTests/ResInsight-tests",
}
@@ -47,6 +48,7 @@ jobs:
enable-asserts: false,
vcpkg-bootstrap: bootstrap-vcpkg.sh,
vcpkg-triplet: x64-linux-release,
buildcache-max-size: 524288000,
qt-version: 6.7.0,
ri-unit-test-path: "ApplicationLibCode/UnitTests/ResInsight-tests",
}
@@ -62,6 +64,7 @@ jobs:
enable-asserts: true,
vcpkg-bootstrap: bootstrap-vcpkg.sh,
vcpkg-triplet: x64-linux-release,
buildcache-max-size: 524288000,
qt-version: 6.7.0,
ri-unit-test-path: "ApplicationLibCode/UnitTests/ResInsight-tests",
}
@@ -69,8 +72,12 @@ jobs:
BUILD_TYPE: Release
BUILDCACHE_DIR: ${{ github.workspace }}/buildcache_dir
BUILDCACHE_ACCURACY: SLOPPY
# 500 MB, in bytes
BUILDCACHE_MAX_CACHE_SIZE: 524288000
# Per-configuration size limit, in bytes. The cache must hold a full
# build with room to spare; at the limit buildcache evicts entries the
# same build still needs and the hit ratio collapses. MSVC objects are
# roughly twice the size of the gcc/clang ones, so Windows gets 1.5 GiB
# while Linux stays at 500 MB.
BUILDCACHE_MAX_CACHE_SIZE: ${{ matrix.config.buildcache-max-size }}
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
# Supply-chain hardening: never install Python packages published within
# the last week, to avoid pulling freshly published (potentially