Skip to content

Commit 0b8be9f

Browse files
authored
CTS cache (#221)
* Cache CMake and Ninja archives. * Cache CMake archive on Linux CI.
1 parent 66bdb19 commit 0b8be9f

2 files changed

Lines changed: 90 additions & 7 deletions

File tree

.github/workflows/linux.yml

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,28 @@ env:
66
OPENCL_PKGCONFIG_PATHS: ${{ github.workspace }}/install/lib/pkgconfig:${{ github.workspace }}/external/OpenCL-Headers/install/share/pkgconfig
77

88
jobs:
9+
10+
tools:
11+
runs-on: ubuntu-20.04
12+
strategy:
13+
matrix:
14+
CMAKE: [3.21.2]
15+
env:
16+
CMAKE_URL: https://github.com/Kitware/CMake/releases/download/v${{ matrix.CMAKE }}/cmake-${{ matrix.CMAKE }}-Linux-x86_64.tar.gz
17+
18+
steps:
19+
- name: Cache CMake
20+
uses: actions/cache@v3
21+
id: cmake
22+
env:
23+
cache-name: cache-cmake
24+
with:
25+
path: ~/cmake-${{matrix.CMAKE}}-Linux-x86_64.tar.gz
26+
key: ${{ runner.os }}-${{ env.cache-name }}-${{matrix.CMAKE}}
27+
- name: Checkout CMake
28+
if: steps.cmake.outputs.cache-hit != 'true'
29+
run: wget -c -O ~/cmake-${{matrix.CMAKE}}-Linux-x86_64.tar.gz $CMAKE_URL
30+
931
cmake-minimum:
1032
runs-on: ${{ matrix.OS }}
1133
container: streamhpc/opencl-sdk-base:ubuntu-18.04-20220127
@@ -154,6 +176,7 @@ jobs:
154176

155177

156178
cmake-latest:
179+
needs: [tools]
157180
runs-on: ${{ matrix.OS }}
158181
strategy:
159182
matrix:
@@ -165,7 +188,6 @@ jobs:
165188
BIN: [32, 64]
166189
CMAKE: [3.21.2]
167190
env:
168-
CMAKE_URL: https://github.com/Kitware/CMake/releases/download/v${{ matrix.CMAKE }}/cmake-${{ matrix.CMAKE }}-Linux-x86_64.tar.gz
169191
CMAKE_EXE: /opt/Kitware/CMake/${{ matrix.CMAKE }}/bin/cmake
170192
CTEST_EXE: /opt/Kitware/CMake/${{ matrix.CMAKE }}/bin/ctest
171193

@@ -180,6 +202,15 @@ jobs:
180202
repository: KhronosGroup/OpenCL-Headers
181203
path: external/OpenCL-Headers
182204

205+
- name: Restore CMake
206+
uses: actions/cache@v3
207+
id: cmake
208+
env:
209+
cache-name: cache-cmake
210+
with:
211+
path: ~/cmake-${{matrix.CMAKE}}-Linux-x86_64.tar.gz
212+
key: ${{ runner.os }}-${{ env.cache-name }}-${{matrix.CMAKE}}
213+
183214
- name: Create Build Environment
184215
run: sudo apt-get update -q;
185216
if [[ "${{matrix.GEN}}" =~ "Ninja" && ! `which ninja` ]]; then sudo apt install -y ninja-build; fi;
@@ -189,7 +220,7 @@ jobs:
189220
if [[ "${{matrix.BIN}}" == "32" && "${{matrix.COMPILER}}" =~ "gcc" ]]; then sudo apt install -y ${{matrix.COMPILER}}-multilib; fi;
190221
if [[ "${{matrix.BIN}}" == "32" && "${{matrix.COMPILER}}" =~ "clang" ]]; then sudo apt install -y gcc-multilib ; fi;
191222
mkdir -p /opt/Kitware/CMake;
192-
wget -c $CMAKE_URL -O - | tar -xz --directory /opt/Kitware/CMake;
223+
tar -xzf ~/cmake-${{matrix.CMAKE}}-Linux-x86_64.tar.gz --directory /opt/Kitware/CMake;
193224
mv /opt/Kitware/CMake/cmake-${{ matrix.CMAKE }}-* /opt/Kitware/CMake/${{ matrix.CMAKE }}
194225
# Install Ninja only if it's the selected generator and it's not available.
195226

.github/workflows/windows.yml

Lines changed: 57 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,45 @@ name: Windows
33
on: [push, pull_request]
44

55
jobs:
6+
7+
tools:
8+
runs-on: windows-2022
9+
strategy:
10+
matrix:
11+
CMAKE: [3.22.0]
12+
NINJA: [1.10.2]
13+
env:
14+
CMAKE_URL: https://github.com/Kitware/CMake/releases/download/v${{matrix.CMAKE}}/cmake-${{matrix.CMAKE}}-windows-x86_64.zip
15+
NINJA_URL: https://github.com/ninja-build/ninja/releases/download/v${{matrix.NINJA}}/ninja-win.zip
16+
17+
steps:
18+
- name: Cache CMake
19+
uses: actions/cache@v3
20+
id: cmake
21+
env:
22+
cache-name: cache-cmake
23+
with:
24+
path: ~/Downloads/cmake-${{matrix.CMAKE}}-windows-x86_64.zip
25+
key: ${{ runner.os }}-${{ env.cache-name }}-${{matrix.CMAKE}}
26+
- name: Cache Ninja
27+
uses: actions/cache@v3
28+
id: ninja
29+
env:
30+
cache-name: cache-ninja
31+
with:
32+
path: ~/Downloads/ninja-win.zip
33+
key: ${{ runner.os }}-${{ env.cache-name }}-${{matrix.NINJA}}
34+
- name: Checkout CMake
35+
if: steps.cmake.outputs.cache-hit != 'true'
36+
shell: pwsh
37+
run: Invoke-WebRequest ${env:CMAKE_URL} -OutFile ~\Downloads\cmake-${{matrix.CMAKE}}-windows-x86_64.zip
38+
- name: Checkout Ninja
39+
if: steps.ninja.outputs.cache-hit != 'true'
40+
shell: pwsh
41+
run: Invoke-WebRequest ${env:NINJA_URL} -OutFile ~\Downloads\ninja-win.zip
42+
643
msvc:
44+
needs: [tools]
745
runs-on: windows-2022
846
strategy:
947
matrix:
@@ -13,11 +51,10 @@ jobs:
1351
BIN: [x64, x86]
1452
STD: [90, 11, 17]
1553
CMAKE: [3.22.0]
54+
NINJA: [1.10.2]
1655
env:
17-
CMAKE_URL: https://github.com/Kitware/CMake/releases/download/v${{matrix.CMAKE}}/cmake-${{matrix.CMAKE}}-windows-x86_64.zip
1856
CMAKE_EXE: C:\Tools\Kitware\CMake\${{matrix.CMAKE}}\bin\cmake.exe
1957
CTEST_EXE: C:\Tools\Kitware\CMake\${{matrix.CMAKE}}\bin\ctest.exe
20-
NINJA_URL: https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip
2158
NINJA_EXE: C:\Tools\Ninja\ninja.exe
2259

2360
steps:
@@ -30,15 +67,30 @@ jobs:
3067
repository: KhronosGroup/OpenCL-Headers
3168
path: external/OpenCL-Headers
3269

70+
- name: Restore CMake
71+
uses: actions/cache@v3
72+
id: cmake
73+
env:
74+
cache-name: cache-cmake
75+
with:
76+
path: ~/Downloads/cmake-${{matrix.CMAKE}}-windows-x86_64.zip
77+
key: ${{ runner.os }}-${{ env.cache-name }}-${{matrix.CMAKE}}
78+
79+
- name: Restore Ninja
80+
uses: actions/cache@v3
81+
id: ninja
82+
env:
83+
cache-name: cache-ninja
84+
with:
85+
path: ~/Downloads/ninja-win.zip
86+
key: ${{ runner.os }}-${{ env.cache-name }}-${{matrix.NINJA}}
87+
3388
- name: Create Build Environment
3489
shell: pwsh
3590
run: |
36-
Invoke-WebRequest ${env:CMAKE_URL} -OutFile ~\Downloads\cmake-${{matrix.CMAKE}}-windows-x86_64.zip
3791
Expand-Archive ~\Downloads\cmake-${{matrix.CMAKE}}-windows-x86_64.zip -DestinationPath C:\Tools\Kitware\CMake\
3892
Rename-Item C:\Tools\Kitware\CMake\* ${{matrix.CMAKE}}
39-
Invoke-WebRequest ${env:NINJA_URL} -OutFile ~\Downloads\ninja-win.zip
4093
Expand-Archive ~\Downloads\ninja-win.zip -DestinationPath C:\Tools\Ninja\
41-
Remove-Item ~\Downloads\*
4294
& ${env:CMAKE_EXE} --version
4395
& ${env:NINJA_EXE} --version
4496

0 commit comments

Comments
 (0)