CI: add retries and package caching across all platforms

- Add retry loops to all package manager commands (apt, apk, pacman,
pkg).
- Implement daily package caching to minimize external server hits.
- Enable Docker layer caching in CI using buildx and GHA backend.
  - Sync CI Docker build steps with the build-with-docker.sh logic.
  - We don't, or more accurately, can't actually use
`build-with-docker.sh` anymore in CI. Maybe we should move it to
scripts/tools/ to keep the root directory clean.
- add ramdisk for BSD, shave 30/60 seconds.
- change BDSs to cross-platform-actions/action for a cleaner ci and skip
SLOW_TESTS for BSDs: this shaves a few seconds
- set global CACHE_INVALIDATION_SEED
This commit is contained in:
Manuel Barrio Linares
2026-02-10 22:08:56 -03:00
committed by Christoffer Lerno
parent 2237d3b836
commit 18ab18958b
3 changed files with 201 additions and 63 deletions

View File

@@ -207,7 +207,12 @@ run_wasm_compile() {
run_unit_tests() {
echo "--- Running Unit Tests ---"
cd "$ROOT_DIR/test"
"$C3C_BIN" compile-test unit -O1 -D SLOW_TESTS
UNIT_TEST_ARGS="-O1"
if [[ "$OS_MODE" != "bsd" ]]; then
UNIT_TEST_ARGS="$UNIT_TEST_ARGS -D SLOW_TESTS"
fi
"$C3C_BIN" compile-test unit $UNIT_TEST_ARGS
echo "--- Running Test Suite Runner ---"
"$C3C_BIN" compile-run -O1 src/test_suite_runner.c3 -- "$C3C_BIN" test_suite/ --no-terminal