@@ -39,19 +39,19 @@ jobs:
3939
4040 steps :
4141 - name : Checkout Code
42- uses : actions/checkout@v4
42+ uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
4343
4444 - name : Cache VC6 Installation
4545 if : startsWith(inputs.preset, 'vc6')
4646 id : cache-vc6
47- uses : actions/cache@v4
47+ uses : actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
4848 with :
4949 path : C:\VC6
5050 key : vc6-permanent-cache-v2
5151
5252 - name : Cache CMake Dependencies
5353 id : cache-cmake-deps
54- uses : actions/cache@v4
54+ uses : actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
5555 with :
5656 path : build\${{ inputs.preset }}\_deps
5757 key : cmake-deps-${{ inputs.preset }}-${{ hashFiles('CMakePresets.json','cmake/**/*.cmake','**/CMakeLists.txt') }}
@@ -101,7 +101,7 @@ jobs:
101101
102102 - name : Set Up VC2022 Environment
103103 if : startsWith(inputs.preset, 'win32')
104- uses : ilammy/msvc-dev-cmd@v1
104+ uses : ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
105105 with :
106106 arch : x86
107107
@@ -112,34 +112,27 @@ jobs:
112112 run : |
113113 $baseline = (Get-Content vcpkg.json | ConvertFrom-Json)."builtin-baseline"
114114
115- $msvc = $env:VCToolsVersion
116- if (-not $msvc) { $msvc = "unknown" }
117-
118- # Reduce churn: keep major.minor (e.g. 14.44)
119- $msvcMajorMinor = ($msvc -split '\.')[0..1] -join '.'
120-
121115 $triplet = "x86-windows"
122116 if ("${{ inputs.preset }}" -like "x64*") { $triplet = "x64-windows" }
123117
124118 "baseline=$baseline" >> $env:GITHUB_OUTPUT
125- "msvc=$msvcMajorMinor" >> $env:GITHUB_OUTPUT
126119 "triplet=$triplet" >> $env:GITHUB_OUTPUT
127120
128- Write-Host "vcpkg cache key parts: baseline=$baseline, msvc=$msvcMajorMinor, triplet=$triplet"
121+ Write-Host "vcpkg cache key parts: baseline=$baseline, triplet=$triplet"
129122
130123 - name : Restore vcpkg binary cache
131124 if : startsWith(inputs.preset, 'win32')
132125 id : vcpkg_cache
133- uses : actions/cache/restore@v4
126+ uses : actions/cache/restore@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
134127 with :
135128 path : ${{ github.workspace }}\vcpkg-bincache
136- key : vcpkg-bincache-v2 -${{ runner.os }}-msvc ${{ steps.vcpkg_key.outputs.msvc }}-baseline ${{ steps.vcpkg_key.outputs.baseline }}-${{ steps.vcpkg_key.outputs.triplet }}
129+ key : vcpkg-bincache-v3 -${{ runner.os }}-baseline ${{ steps.vcpkg_key.outputs.baseline }}-${{ steps.vcpkg_key.outputs.triplet }}-${{ hashFiles('triplets/*.cmake') }}
137130 restore-keys : |
138- vcpkg-bincache-v2 -${{ runner.os }}-msvc${{ steps.vcpkg_key.outputs.msvc }}-baseline${{ steps.vcpkg_key.outputs.baseline }}-
139- vcpkg-bincache-v2 -${{ runner.os }}-
131+ vcpkg-bincache-v3 -${{ runner.os }}-baseline${{ steps.vcpkg_key.outputs.baseline }}-
132+ vcpkg-bincache-v3 -${{ runner.os }}-
140133
141134 - name : Setup vcpkg
142- uses : lukka/run-vcpkg@v11
135+ uses : lukka/run-vcpkg@5e0cab206a5ea620130caf672fce3e4a6b5666a1 # v11.5
143136 with :
144137 runVcpkgInstall : false
145138 doNotCache : true
@@ -157,6 +150,8 @@ jobs:
157150
158151 "VCPKG_DEFAULT_BINARY_CACHE=$cacheDir" >> $env:GITHUB_ENV
159152 "VCPKG_BINARY_SOURCES=$env:VCPKG_BINARY_SOURCES" >> $env:GITHUB_ENV
153+ "VCPKG_OVERLAY_TRIPLETS=${{ github.workspace }}\triplets" >> $env:GITHUB_ENV
154+ "VCPKG_INSTALL_OPTIONS=--x-abi-tools-use-exact-versions" >> $env:GITHUB_ENV
160155
161156 - name : Configure ${{ inputs.game }} with CMake Using ${{ inputs.preset }}${{ inputs.tools && '+t' || '' }}${{ inputs.extras && '+e' || '' }} Preset
162157 shell : pwsh
@@ -183,10 +178,10 @@ jobs:
183178 - name : Save vcpkg binary cache
184179 # Only one job should save to avoid "Unable to reserve cache" conflicts.
185180 if : ${{ startsWith(inputs.preset, 'win32') && steps.vcpkg_cache.outputs.cache-hit != 'true' && inputs.game == 'Generals' && inputs.preset == 'win32-vcpkg-debug' }}
186- uses : actions/cache/save@v4
181+ uses : actions/cache/save@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
187182 with :
188183 path : ${{ github.workspace }}\vcpkg-bincache
189- key : vcpkg-bincache-v2 -${{ runner.os }}-msvc ${{ steps.vcpkg_key.outputs.msvc }}-baseline ${{ steps.vcpkg_key.outputs.baseline }}-${{ steps.vcpkg_key.outputs.triplet }}
184+ key : vcpkg-bincache-v3 -${{ runner.os }}-baseline ${{ steps.vcpkg_key.outputs.baseline }}-${{ steps.vcpkg_key.outputs.triplet }}-${{ hashFiles('triplets/*.cmake') }}
190185
191186 - name : Collect ${{ inputs.game }} ${{ inputs.preset }}${{ inputs.tools && '+t' || '' }}${{ inputs.extras && '+e' || '' }} Artifact
192187 shell : pwsh
@@ -206,7 +201,7 @@ jobs:
206201 $files | Move-Item -Destination $artifactsDir -Verbose -Force
207202
208203 - name : Upload ${{ inputs.game }} ${{ inputs.preset }}${{ inputs.tools && '+t' || '' }}${{ inputs.extras && '+e' || '' }} Artifact
209- uses : actions/upload-artifact@v4
204+ uses : actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
210205 with :
211206 name : ${{ inputs.game }}-${{ inputs.preset }}${{ inputs.tools && '+t' || '' }}${{ inputs.extras && '+e' || '' }}
212207 path : build\${{ inputs.preset }}\${{ inputs.game }}\artifacts
0 commit comments