|
60 | 60 | - os: windows-latest |
61 | 61 | ccache: sccache |
62 | 62 | vulkan-install: | |
63 | | - Invoke-WebRequest -Uri "https://sdk.lunarg.com/sdk/download/latest/windows/vulkan-sdk.exe" -OutFile "$env:TEMP\vulkan-sdk.exe" |
64 | | - Start-Process -FilePath "$env:TEMP\vulkan-sdk.exe" -ArgumentList "--accept-licenses --default-answer --confirm-command install --components VulkanRT,VulkanSDK64,VulkanDXC,VulkanTools" -Wait -NoNewWindow |
| 63 | + if (Test-Path "C:\VulkanSDK") { |
| 64 | + Write-Host "Using cached Vulkan SDK" |
| 65 | + } else { |
| 66 | + Write-Host "Downloading Vulkan SDK..." |
| 67 | + choco install -y aria2 |
| 68 | + aria2c --split=16 --max-connection-per-server=16 --min-split-size=1M --dir="$env:TEMP" --out="vulkan-sdk.exe" "https://sdk.lunarg.com/sdk/download/latest/windows/vulkan-sdk.exe" |
| 69 | +
|
| 70 | + Write-Host "Installing minimal Vulkan SDK components..." |
| 71 | + Start-Process -FilePath "$env:TEMP\vulkan-sdk.exe" -ArgumentList "--accept-licenses --default-answer --confirm-command install --components VulkanRT,VulkanSDK64,VulkanDXC,VulkanTools" -Wait -NoNewWindow |
| 72 | + } |
65 | 73 |
|
66 | 74 | $vulkanPath = Get-ChildItem "C:\VulkanSDK" | Sort-Object -Property Name -Descending | Select-Object -First 1 -ExpandProperty FullName |
67 | 75 | if (-not $vulkanPath) { |
|
75 | 83 | echo "Vulkan_LIBRARY=$vulkanPath\Lib\vulkan-1.lib" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append |
76 | 84 |
|
77 | 85 | Write-Host "Vulkan SDK path: $vulkanPath" |
78 | | - if (Test-Path "$vulkanPath\Lib") { |
79 | | - Write-Host "Lib directory exists" |
80 | | - } else { |
81 | | - Write-Host "Lib directory does not exist" |
82 | | - } |
83 | | - if (Test-Path "$vulkanPath\Include") { |
84 | | - Write-Host "Include directory exists" |
85 | | - } else { |
86 | | - Write-Host "Include directory does not exist" |
87 | | - } |
88 | 86 | deps-install: | |
89 | 87 | .\scripts\install_dependencies_windows.bat |
90 | 88 | echo "CMAKE_TOOLCHAIN_FILE=$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake" >> $env:GITHUB_ENV |
@@ -124,9 +122,9 @@ jobs: |
124 | 122 | ${{ env.VCPKG_INSTALLATION_ROOT }}/packages |
125 | 123 | ${{ env.VCPKG_INSTALLATION_ROOT }}/buildtrees |
126 | 124 | ${{ env.VCPKG_INSTALLATION_ROOT }}/downloads |
127 | | - key: ${{ runner.os }}-vcpkg-${{ hashFiles('scripts/install_dependencies_windows.bat', '**/CMakeLists.txt') }}-${{ hashFiles('**/*.cpp', '**/*.h') }} |
| 125 | + ${{ runner.temp }}/vcpkg-cache |
| 126 | + key: ${{ runner.os }}-vcpkg-${{ hashFiles('scripts/install_dependencies_windows.bat', '**/CMakeLists.txt') }} |
128 | 127 | restore-keys: | |
129 | | - ${{ runner.os }}-vcpkg-${{ hashFiles('scripts/install_dependencies_windows.bat', '**/CMakeLists.txt') }}- |
130 | 128 | ${{ runner.os }}-vcpkg-${{ hashFiles('scripts/install_dependencies_windows.bat') }}- |
131 | 129 | ${{ runner.os }}-vcpkg- |
132 | 130 |
|
@@ -180,20 +178,38 @@ jobs: |
180 | 178 | echo "CCACHE_DIR=$HOME/.ccache" >> $GITHUB_ENV |
181 | 179 | echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV |
182 | 180 |
|
| 181 | + - name: Cache sccache binary (Windows) |
| 182 | + if: runner.os == 'Windows' |
| 183 | + id: cache-sccache |
| 184 | + uses: actions/cache@v3 |
| 185 | + with: |
| 186 | + path: ${{ runner.temp }}/sccache |
| 187 | + key: ${{ runner.os }}-sccache-0.5.4 |
| 188 | + |
183 | 189 | - name: Install sccache (Windows) |
184 | 190 | if: runner.os == 'Windows' |
185 | 191 | run: | |
186 | | - Invoke-WebRequest -Uri "https://github.com/mozilla/sccache/releases/download/v0.5.4/sccache-v0.5.4-x86_64-pc-windows-msvc.tar.gz" -OutFile "sccache.tar.gz" |
187 | | - tar -xzf sccache.tar.gz |
188 | | - $sccachePath = Join-Path -Path (Get-Location) -ChildPath "sccache-v0.5.4-x86_64-pc-windows-msvc" |
| 192 | + if (Test-Path "$env:RUNNER_TEMP\sccache\sccache.exe") { |
| 193 | + Write-Host "Using cached sccache binary" |
| 194 | + $sccachePath = "$env:RUNNER_TEMP\sccache" |
| 195 | + } else { |
| 196 | + Write-Host "Downloading and installing sccache..." |
| 197 | + New-Item -ItemType Directory -Force -Path "$env:RUNNER_TEMP\sccache" |
| 198 | + aria2c --split=8 --max-connection-per-server=8 --min-split-size=1M --dir="$env:RUNNER_TEMP" --out="sccache.tar.gz" "https://github.com/mozilla/sccache/releases/download/v0.5.4/sccache-v0.5.4-x86_64-pc-windows-msvc.tar.gz" |
| 199 | + tar -xzf "$env:RUNNER_TEMP\sccache.tar.gz" --strip-components=1 -C "$env:RUNNER_TEMP\sccache" "sccache-v0.5.4-x86_64-pc-windows-msvc/sccache.exe" |
| 200 | + $sccachePath = "$env:RUNNER_TEMP\sccache" |
| 201 | + } |
| 202 | +
|
189 | 203 | echo "$sccachePath" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append |
190 | 204 | echo "SCCACHE_DIR=$HOME/.cache/sccache" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append |
191 | 205 | echo "SCCACHE_CACHE_SIZE=4G" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append |
192 | 206 | echo "SCCACHE_ERROR_LOG=$HOME/.cache/sccache/sccache.log" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append |
193 | 207 | echo "SCCACHE_LOG=info" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append |
194 | | - New-Item -ItemType Directory -Force -Path "$HOME/.cache/sccache" |
195 | 208 | echo "RUST_LOG=sccache=info" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append |
196 | 209 |
|
| 210 | + New-Item -ItemType Directory -Force -Path "$HOME/.cache/sccache" |
| 211 | + & "$sccachePath\sccache.exe" --version |
| 212 | +
|
197 | 213 | - name: Install dependencies |
198 | 214 | run: ${{ matrix.deps-install }} |
199 | 215 |
|
|
0 commit comments