From cfc59bb2762c3aa9a48a17ba67bbfd5c0dcc7aaf Mon Sep 17 00:00:00 2001 From: Gary Hsu Date: Mon, 4 May 2026 16:49:16 -0700 Subject: [PATCH 1/7] CI: cache FetchContent populated dir with actions/cache Prototype: redirect CMake's FETCHCONTENT_BASE_DIR to a stable workspace-relative path (.fc-cache) and have actions/cache restore / save it across runs. Pass FETCHCONTENT_UPDATES_DISCONNECTED=ON so warm-cache runs don't validate sources against remotes. Cache key is per-OS plus a hash of every CMakeLists.txt, so any GIT_TAG bump, new dep, or patch change invalidates the cache while unrelated repo changes don't. Applied to all reusable build workflows except build-android.yml (Android goes through gradle which calls cmake indirectly; will be a follow-up). Goal of this PR: measure cache-hit configure-step savings vs the master baseline. Master configure step is ~140-190s across Win32 / UWP / macOS / iOS today; warm-cache target is ~20-40s. Worst observed master configure step was 16+ minutes on a contended Windows runner (UWP_x64 timed out at 30 min job limit), which a hot cache should eliminate. [Created by Copilot on behalf of @bghgary] Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/build-ios.yml | 9 +++++++++ .github/workflows/build-linux.yml | 9 +++++++++ .github/workflows/build-macos.yml | 9 +++++++++ .github/workflows/build-uwp.yml | 9 +++++++++ .github/workflows/build-win32-shader.yml | 9 +++++++++ .github/workflows/build-win32.yml | 9 +++++++++ 6 files changed, 54 insertions(+) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 5d1e0fcf9..1a4987df9 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -22,6 +22,13 @@ jobs: steps: - uses: actions/checkout@v5 + - name: Cache FetchContent deps + uses: actions/cache@v4 + with: + path: ${{ github.workspace }}/.fc-cache + key: fc-${{ runner.os }}-${{ hashFiles('**/CMakeLists.txt') }} + restore-keys: | + fc-${{ runner.os }}- - name: Select Xcode ${{ inputs.xcode-version }} run: sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-version }}.app/Contents/Developer @@ -29,6 +36,8 @@ jobs: - name: Generate iOS solution run: | cmake -G Xcode -B build/iOS \ + -D FETCHCONTENT_BASE_DIR=${{ github.workspace }}/.fc-cache \ + -D FETCHCONTENT_UPDATES_DISCONNECTED=ON \ -D IOS=ON \ -D DEPLOYMENT_TARGET=${{ inputs.deployment-target }} \ -D BABYLON_DEBUG_TRACE=ON \ diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 4a9eaff07..5245825c7 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -31,6 +31,13 @@ jobs: steps: - uses: actions/checkout@v5 + - name: Cache FetchContent deps + uses: actions/cache@v4 + with: + path: ${{ github.workspace }}/.fc-cache + key: fc-${{ runner.os }}-${{ hashFiles('**/CMakeLists.txt') }} + restore-keys: | + fc-${{ runner.os }}- - name: Install packages run: | @@ -40,6 +47,8 @@ jobs: - name: Build X11 run: | cmake -G Ninja -B build/Linux \ + -D FETCHCONTENT_BASE_DIR=${{ github.workspace }}/.fc-cache \ + -D FETCHCONTENT_UPDATES_DISCONNECTED=ON \ -D JAVASCRIPTCORE_LIBRARY=/usr/lib/x86_64-linux-gnu/libjavascriptcoregtk-4.1.so \ -D NAPI_JAVASCRIPT_ENGINE=${{ inputs.js-engine }} \ -D CMAKE_BUILD_TYPE=RelWithDebInfo \ diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index b60bfc970..41465d6f8 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -31,6 +31,13 @@ jobs: steps: - uses: actions/checkout@v5 + - name: Cache FetchContent deps + uses: actions/cache@v4 + with: + path: ${{ github.workspace }}/.fc-cache + key: fc-${{ runner.os }}-${{ hashFiles('**/CMakeLists.txt') }} + restore-keys: | + fc-${{ runner.os }}- - name: Select Xcode ${{ inputs.xcode-version }} run: sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-version }}.app/Contents/Developer @@ -38,6 +45,8 @@ jobs: - name: Generate macOS solution run: | cmake -G "${{ inputs.generator }}" -B build/macOS \ + -D FETCHCONTENT_BASE_DIR=${{ github.workspace }}/.fc-cache \ + -D FETCHCONTENT_UPDATES_DISCONNECTED=ON \ -D BABYLON_DEBUG_TRACE=ON \ -D ENABLE_SANITIZERS=${{ inputs.enable-sanitizers && 'ON' || 'OFF' }} \ -D BABYLON_NATIVE_TESTS_USE_NOOP_METAL_DEVICE=ON diff --git a/.github/workflows/build-uwp.yml b/.github/workflows/build-uwp.yml index 12ccc68d5..b47ae2648 100644 --- a/.github/workflows/build-uwp.yml +++ b/.github/workflows/build-uwp.yml @@ -18,6 +18,13 @@ jobs: steps: - uses: actions/checkout@v5 + - name: Cache FetchContent deps + uses: actions/cache@v4 + with: + path: ${{ github.workspace }}/.fc-cache + key: fc-${{ runner.os }}-${{ hashFiles('**/CMakeLists.txt') }} + restore-keys: | + fc-${{ runner.os }}- - name: Set NAPI variables id: napi @@ -36,6 +43,8 @@ jobs: run: | cmake -G "Visual Studio 17 2022" ^ -B build/UWP_${{ inputs.platform }}${{ steps.napi.outputs.suffix }} ^ + -D FETCHCONTENT_BASE_DIR=${{ github.workspace }}/.fc-cache ^ + -D FETCHCONTENT_UPDATES_DISCONNECTED=ON ^ -D CMAKE_SYSTEM_NAME=WindowsStore ^ -D CMAKE_SYSTEM_VERSION=10.0 ^ ${{ steps.napi.outputs.define }} ^ diff --git a/.github/workflows/build-win32-shader.yml b/.github/workflows/build-win32-shader.yml index 3b83ddee7..fe4e85a90 100644 --- a/.github/workflows/build-win32-shader.yml +++ b/.github/workflows/build-win32-shader.yml @@ -15,6 +15,13 @@ jobs: steps: - uses: actions/checkout@v5 + - name: Cache FetchContent deps + uses: actions/cache@v4 + with: + path: ${{ github.workspace }}/.fc-cache + key: fc-${{ runner.os }}-${{ hashFiles('**/CMakeLists.txt') }} + restore-keys: | + fc-${{ runner.os }}- - name: Generate solution shell: cmd @@ -22,6 +29,8 @@ jobs: cmake -G "Visual Studio 17 2022" ^ -B build/Win32_${{ inputs.platform }}_PrecompiledShaderTest ^ -A ${{ inputs.platform }} ^ + -D FETCHCONTENT_BASE_DIR=${{ github.workspace }}/.fc-cache ^ + -D FETCHCONTENT_UPDATES_DISCONNECTED=ON ^ -D BX_CONFIG_DEBUG=ON ^ -D GRAPHICS_API=D3D11 ^ -D BGFX_CONFIG_MAX_FRAME_BUFFERS=256 ^ diff --git a/.github/workflows/build-win32.yml b/.github/workflows/build-win32.yml index d0ec9f573..7091ef6b7 100644 --- a/.github/workflows/build-win32.yml +++ b/.github/workflows/build-win32.yml @@ -26,6 +26,13 @@ jobs: steps: - uses: actions/checkout@v5 + - name: Cache FetchContent deps + uses: actions/cache@v4 + with: + path: ${{ github.workspace }}/.fc-cache + key: fc-${{ runner.os }}-${{ hashFiles('**/CMakeLists.txt') }} + restore-keys: | + fc-${{ runner.os }}- - name: Set variables id: vars @@ -51,6 +58,8 @@ jobs: cmake -G "Visual Studio 17 2022" ^ -B build/${{ steps.vars.outputs.solution_name }} ^ -A ${{ inputs.platform }} ^ + -D FETCHCONTENT_BASE_DIR=${{ github.workspace }}/.fc-cache ^ + -D FETCHCONTENT_UPDATES_DISCONNECTED=ON ^ ${{ steps.vars.outputs.js_define }} ^ -D BX_CONFIG_DEBUG=ON ^ -D GRAPHICS_API=${{ inputs.graphics-api }} ^ From d00fd8414b1f9b19cad97fdfb1b90955db704ae9 Mon Sep 17 00:00:00 2001 From: Gary Hsu Date: Mon, 4 May 2026 17:01:14 -0700 Subject: [PATCH 2/7] CI: differentiate FetchContent cache keys per workflow + platform The first run produced 4 macOS / iOS failures with: CMake Error: Error: generator : Xcode Either remove the CMakeCache.txt file and CMakeFiles directory or choose a different binary directory. Cause: parallel macOS-runner jobs (MacOS / build with Xcode generator, MacOS_Ninja / build with Ninja generator, iOS_iOS180 with Xcode + IOS=ON) all shared the same cache key `fc-macOS-`. The first job to complete saved a cache containing `-subbuild/CMakeCache.txt` recording its generator; parallel/subsequent jobs restored that cache and CMake refused to reuse a subbuild dir produced under a different generator. Fix: scope cache keys per workflow purpose so jobs whose subbuild state would differ get separate caches. Workflow-level prefixes: fc-linux- fc-macos-- fc-ios- fc-uwp-- fc-win32-- fc-win32shader-- This keeps cross-job sharing within a workflow + platform + generator combination, which is the largest legal sharing scope: e.g. all Win32_x64_* jobs share one cache, but Win32_arm64 gets its own. [Created by Copilot on behalf of @bghgary] Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/build-ios.yml | 4 ++-- .github/workflows/build-linux.yml | 4 ++-- .github/workflows/build-macos.yml | 4 ++-- .github/workflows/build-uwp.yml | 4 ++-- .github/workflows/build-win32-shader.yml | 4 ++-- .github/workflows/build-win32.yml | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 1a4987df9..008c8eb8f 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -26,9 +26,9 @@ jobs: uses: actions/cache@v4 with: path: ${{ github.workspace }}/.fc-cache - key: fc-${{ runner.os }}-${{ hashFiles('**/CMakeLists.txt') }} + key: fc-ios-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | - fc-${{ runner.os }}- + fc-ios- - name: Select Xcode ${{ inputs.xcode-version }} run: sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-version }}.app/Contents/Developer diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 5245825c7..a913969f7 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -35,9 +35,9 @@ jobs: uses: actions/cache@v4 with: path: ${{ github.workspace }}/.fc-cache - key: fc-${{ runner.os }}-${{ hashFiles('**/CMakeLists.txt') }} + key: fc-linux-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | - fc-${{ runner.os }}- + fc-linux- - name: Install packages run: | diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 41465d6f8..6adeddadc 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -35,9 +35,9 @@ jobs: uses: actions/cache@v4 with: path: ${{ github.workspace }}/.fc-cache - key: fc-${{ runner.os }}-${{ hashFiles('**/CMakeLists.txt') }} + key: fc-macos-${{ inputs.generator }}-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | - fc-${{ runner.os }}- + fc-macos-${{ inputs.generator }}- - name: Select Xcode ${{ inputs.xcode-version }} run: sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-version }}.app/Contents/Developer diff --git a/.github/workflows/build-uwp.yml b/.github/workflows/build-uwp.yml index b47ae2648..ad8ba5d93 100644 --- a/.github/workflows/build-uwp.yml +++ b/.github/workflows/build-uwp.yml @@ -22,9 +22,9 @@ jobs: uses: actions/cache@v4 with: path: ${{ github.workspace }}/.fc-cache - key: fc-${{ runner.os }}-${{ hashFiles('**/CMakeLists.txt') }} + key: fc-uwp-${{ inputs.platform }}-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | - fc-${{ runner.os }}- + fc-uwp-${{ inputs.platform }}- - name: Set NAPI variables id: napi diff --git a/.github/workflows/build-win32-shader.yml b/.github/workflows/build-win32-shader.yml index fe4e85a90..6624e68c3 100644 --- a/.github/workflows/build-win32-shader.yml +++ b/.github/workflows/build-win32-shader.yml @@ -19,9 +19,9 @@ jobs: uses: actions/cache@v4 with: path: ${{ github.workspace }}/.fc-cache - key: fc-${{ runner.os }}-${{ hashFiles('**/CMakeLists.txt') }} + key: fc-win32shader-${{ inputs.platform }}-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | - fc-${{ runner.os }}- + fc-win32shader-${{ inputs.platform }}- - name: Generate solution shell: cmd diff --git a/.github/workflows/build-win32.yml b/.github/workflows/build-win32.yml index 7091ef6b7..fd55984bb 100644 --- a/.github/workflows/build-win32.yml +++ b/.github/workflows/build-win32.yml @@ -30,9 +30,9 @@ jobs: uses: actions/cache@v4 with: path: ${{ github.workspace }}/.fc-cache - key: fc-${{ runner.os }}-${{ hashFiles('**/CMakeLists.txt') }} + key: fc-win32-${{ inputs.platform }}-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | - fc-${{ runner.os }}- + fc-win32-${{ inputs.platform }}- - name: Set variables id: vars From 55d032175177dd7b76184d619c1c8b4ff1b7e090 Mon Sep 17 00:00:00 2001 From: Gary Hsu Date: Mon, 4 May 2026 17:22:20 -0700 Subject: [PATCH 3/7] ci: trigger warm-cache run (empty commit, cache should be hot) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> From 31410878cf7a1bd9695e3b2eb5829eb886c06447 Mon Sep 17 00:00:00 2001 From: Gary Hsu Date: Mon, 4 May 2026 17:30:43 -0700 Subject: [PATCH 4/7] CI: exclude *-build dirs from FetchContent cache Cold-cache run was 28/28 green; warm-cache run on the same SHAs got 3 failures with 'precompiled header file is from a different version of the compiler' (C1853) on Windows. Cause: the cache included -build/ subdirs which contain compilation artifacts (PCH, .obj, .lib) that aren't safe to share across runner instances. Only the source-clone (-src) and download-orchestration (-subbuild) directories are safe to cache. Use actions/cache path negation (!path) to exclude *-build subdirs while still caching the rest of FETCHCONTENT_BASE_DIR. [Created by Copilot on behalf of @bghgary] Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/build-ios.yml | 5 ++++- .github/workflows/build-linux.yml | 5 ++++- .github/workflows/build-macos.yml | 5 ++++- .github/workflows/build-uwp.yml | 5 ++++- .github/workflows/build-win32-shader.yml | 5 ++++- .github/workflows/build-win32.yml | 5 ++++- 6 files changed, 24 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index 008c8eb8f..f4b673cfc 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -25,7 +25,10 @@ jobs: - name: Cache FetchContent deps uses: actions/cache@v4 with: - path: ${{ github.workspace }}/.fc-cache + path: | + ${{ github.workspace }}/.fc-cache + !${{ github.workspace }}/.fc-cache/*-build + !${{ github.workspace }}/.fc-cache/*-build/** key: fc-ios-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | fc-ios- diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index a913969f7..6193442a1 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -34,7 +34,10 @@ jobs: - name: Cache FetchContent deps uses: actions/cache@v4 with: - path: ${{ github.workspace }}/.fc-cache + path: | + ${{ github.workspace }}/.fc-cache + !${{ github.workspace }}/.fc-cache/*-build + !${{ github.workspace }}/.fc-cache/*-build/** key: fc-linux-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | fc-linux- diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 6adeddadc..3a5cfbb5f 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -34,7 +34,10 @@ jobs: - name: Cache FetchContent deps uses: actions/cache@v4 with: - path: ${{ github.workspace }}/.fc-cache + path: | + ${{ github.workspace }}/.fc-cache + !${{ github.workspace }}/.fc-cache/*-build + !${{ github.workspace }}/.fc-cache/*-build/** key: fc-macos-${{ inputs.generator }}-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | fc-macos-${{ inputs.generator }}- diff --git a/.github/workflows/build-uwp.yml b/.github/workflows/build-uwp.yml index ad8ba5d93..21957c590 100644 --- a/.github/workflows/build-uwp.yml +++ b/.github/workflows/build-uwp.yml @@ -21,7 +21,10 @@ jobs: - name: Cache FetchContent deps uses: actions/cache@v4 with: - path: ${{ github.workspace }}/.fc-cache + path: | + ${{ github.workspace }}/.fc-cache + !${{ github.workspace }}/.fc-cache/*-build + !${{ github.workspace }}/.fc-cache/*-build/** key: fc-uwp-${{ inputs.platform }}-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | fc-uwp-${{ inputs.platform }}- diff --git a/.github/workflows/build-win32-shader.yml b/.github/workflows/build-win32-shader.yml index 6624e68c3..3abee6f35 100644 --- a/.github/workflows/build-win32-shader.yml +++ b/.github/workflows/build-win32-shader.yml @@ -18,7 +18,10 @@ jobs: - name: Cache FetchContent deps uses: actions/cache@v4 with: - path: ${{ github.workspace }}/.fc-cache + path: | + ${{ github.workspace }}/.fc-cache + !${{ github.workspace }}/.fc-cache/*-build + !${{ github.workspace }}/.fc-cache/*-build/** key: fc-win32shader-${{ inputs.platform }}-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | fc-win32shader-${{ inputs.platform }}- diff --git a/.github/workflows/build-win32.yml b/.github/workflows/build-win32.yml index fd55984bb..d0fc64127 100644 --- a/.github/workflows/build-win32.yml +++ b/.github/workflows/build-win32.yml @@ -29,7 +29,10 @@ jobs: - name: Cache FetchContent deps uses: actions/cache@v4 with: - path: ${{ github.workspace }}/.fc-cache + path: | + ${{ github.workspace }}/.fc-cache + !${{ github.workspace }}/.fc-cache/*-build + !${{ github.workspace }}/.fc-cache/*-build/** key: fc-win32-${{ inputs.platform }}-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | fc-win32-${{ inputs.platform }}- From cc1a0a92eef167069f47428ff2ce77edfd5ce87e Mon Sep 17 00:00:00 2001 From: Gary Hsu Date: Mon, 4 May 2026 17:51:36 -0700 Subject: [PATCH 5/7] ci: trigger warm-cache run (cache should be hot from previous run) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> From 9b78ba5f76776cb9d896c09c74d2adee0b05024d Mon Sep 17 00:00:00 2001 From: Gary Hsu Date: Mon, 4 May 2026 17:57:50 -0700 Subject: [PATCH 6/7] CI: bump FetchContent cache key prefix to v2 to invalidate stale caches First warm-cache run hit the same C1853 PCH error: actions/cache restore happens BEFORE the path negation rules apply at save time, so the old (broken) cache from the pre-exclude commit was restored despite the new exclude rules. Bump 'fc-' prefix to 'fc-v2-' so existing cache entries don't match and a fresh population happens with the exclude rules in effect from the start. [Created by Copilot on behalf of @bghgary] Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/build-ios.yml | 4 ++-- .github/workflows/build-linux.yml | 4 ++-- .github/workflows/build-macos.yml | 4 ++-- .github/workflows/build-uwp.yml | 4 ++-- .github/workflows/build-win32-shader.yml | 4 ++-- .github/workflows/build-win32.yml | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-ios.yml b/.github/workflows/build-ios.yml index f4b673cfc..10cfb5669 100644 --- a/.github/workflows/build-ios.yml +++ b/.github/workflows/build-ios.yml @@ -29,9 +29,9 @@ jobs: ${{ github.workspace }}/.fc-cache !${{ github.workspace }}/.fc-cache/*-build !${{ github.workspace }}/.fc-cache/*-build/** - key: fc-ios-${{ hashFiles('**/CMakeLists.txt') }} + key: fc-v2-ios-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | - fc-ios- + fc-v2-ios- - name: Select Xcode ${{ inputs.xcode-version }} run: sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-version }}.app/Contents/Developer diff --git a/.github/workflows/build-linux.yml b/.github/workflows/build-linux.yml index 6193442a1..bcef37508 100644 --- a/.github/workflows/build-linux.yml +++ b/.github/workflows/build-linux.yml @@ -38,9 +38,9 @@ jobs: ${{ github.workspace }}/.fc-cache !${{ github.workspace }}/.fc-cache/*-build !${{ github.workspace }}/.fc-cache/*-build/** - key: fc-linux-${{ hashFiles('**/CMakeLists.txt') }} + key: fc-v2-linux-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | - fc-linux- + fc-v2-linux- - name: Install packages run: | diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml index 3a5cfbb5f..c2e311d52 100644 --- a/.github/workflows/build-macos.yml +++ b/.github/workflows/build-macos.yml @@ -38,9 +38,9 @@ jobs: ${{ github.workspace }}/.fc-cache !${{ github.workspace }}/.fc-cache/*-build !${{ github.workspace }}/.fc-cache/*-build/** - key: fc-macos-${{ inputs.generator }}-${{ hashFiles('**/CMakeLists.txt') }} + key: fc-v2-macos-${{ inputs.generator }}-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | - fc-macos-${{ inputs.generator }}- + fc-v2-macos-${{ inputs.generator }}- - name: Select Xcode ${{ inputs.xcode-version }} run: sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-version }}.app/Contents/Developer diff --git a/.github/workflows/build-uwp.yml b/.github/workflows/build-uwp.yml index 21957c590..aa3c3481b 100644 --- a/.github/workflows/build-uwp.yml +++ b/.github/workflows/build-uwp.yml @@ -25,9 +25,9 @@ jobs: ${{ github.workspace }}/.fc-cache !${{ github.workspace }}/.fc-cache/*-build !${{ github.workspace }}/.fc-cache/*-build/** - key: fc-uwp-${{ inputs.platform }}-${{ hashFiles('**/CMakeLists.txt') }} + key: fc-v2-uwp-${{ inputs.platform }}-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | - fc-uwp-${{ inputs.platform }}- + fc-v2-uwp-${{ inputs.platform }}- - name: Set NAPI variables id: napi diff --git a/.github/workflows/build-win32-shader.yml b/.github/workflows/build-win32-shader.yml index 3abee6f35..3f8e24356 100644 --- a/.github/workflows/build-win32-shader.yml +++ b/.github/workflows/build-win32-shader.yml @@ -22,9 +22,9 @@ jobs: ${{ github.workspace }}/.fc-cache !${{ github.workspace }}/.fc-cache/*-build !${{ github.workspace }}/.fc-cache/*-build/** - key: fc-win32shader-${{ inputs.platform }}-${{ hashFiles('**/CMakeLists.txt') }} + key: fc-v2-win32shader-${{ inputs.platform }}-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | - fc-win32shader-${{ inputs.platform }}- + fc-v2-win32shader-${{ inputs.platform }}- - name: Generate solution shell: cmd diff --git a/.github/workflows/build-win32.yml b/.github/workflows/build-win32.yml index d0fc64127..64d9145fd 100644 --- a/.github/workflows/build-win32.yml +++ b/.github/workflows/build-win32.yml @@ -33,9 +33,9 @@ jobs: ${{ github.workspace }}/.fc-cache !${{ github.workspace }}/.fc-cache/*-build !${{ github.workspace }}/.fc-cache/*-build/** - key: fc-win32-${{ inputs.platform }}-${{ hashFiles('**/CMakeLists.txt') }} + key: fc-v2-win32-${{ inputs.platform }}-${{ hashFiles('**/CMakeLists.txt') }} restore-keys: | - fc-win32-${{ inputs.platform }}- + fc-v2-win32-${{ inputs.platform }}- - name: Set variables id: vars From 41efc730d5670c3b715256817e81978cefa03fb6 Mon Sep 17 00:00:00 2001 From: Gary Hsu Date: Mon, 4 May 2026 18:16:39 -0700 Subject: [PATCH 7/7] ci: warm-cache run with v2 keys Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>