12
12
13
13
jobs :
14
14
build :
15
- name : " Build+Test (${{ matrix.os }}, ${{ matrix.cc }}, ${{ matrix.crypto }}, ${{ matrix.rust }}${{ matrix.cert_compression == 'on' && ', cert compression' || '' }})"
15
+ name : " Build+Test (${{ matrix.os }}, ${{ matrix.cc }}, ${{ matrix.rust }}, ${{ matrix.crypto }}${{ matrix.cert_compression == 'on' && ', cert compression' || '' }}${{ matrix.dyn_link == 'on' && ', dynamic linking ' || '' }})"
16
16
runs-on : ${{ matrix.os }}
17
17
strategy :
18
18
matrix :
30
30
# Include a few MacOS and cert-compression builds to ensure they're tested without
31
31
# bloating the matrix or slowing down CI.
32
32
include :
33
+ # Linux dyn link build
34
+ - os : ubuntu-latest
35
+ cc : clang
36
+ crypto : aws-lc-rs
37
+ rust : stable
38
+ dyn_link : on
33
39
# Linux cert compression build
34
40
- os : ubuntu-latest
35
41
cc : clang
42
48
crypto : aws-lc-rs
43
49
rust : stable
44
50
cert_compression : off
51
+ # MacOS dyn link build
52
+ - os : macos-latest
53
+ cc : clang
54
+ crypto : aws-lc-rs
55
+ rust : stable
56
+ dyn_link : on
45
57
# MacOS cert compression build
46
58
- os : macos-latest
47
59
cc : clang
85
97
cmake \
86
98
-DCRYPTO_PROVIDER=${{matrix.crypto}} \
87
99
-DCERT_COMPRESSION=${{matrix.cert_compression}} \
100
+ -DDYN_LINK=${{matrix.dyn_link}} \
88
101
-DCMAKE_BUILD_TYPE=Debug \
89
102
${{ matrix.os == 'macos-latest' && '-DCMAKE_OSX_DEPLOYMENT_TARGET=14.5' || '' }} \
90
103
-S . -B build
@@ -173,15 +186,21 @@ jobs:
173
186
run : cmake --build build --target integration-test
174
187
175
188
test-windows :
176
- name : " Windows (${{ matrix.crypto }}, ${{ matrix.config }}${{ matrix.cert_compression == 'on' && ', cert compression' || '' }})"
189
+ name : " Windows (${{ matrix.crypto }}, ${{ matrix.config }}${{ matrix.cert_compression == 'on' && ', cert compression' || '' }}${{ matrix.dyn_link == 'on' && ', dynamic linking' || '' }} )"
177
190
runs-on : windows-latest
178
191
strategy :
179
192
matrix :
180
193
crypto : [ aws-lc-rs, ring ]
181
194
config : [ Debug, Release ]
182
195
cert_compression : [ off ]
196
+ dyn_link : [ off ]
183
197
include :
184
- # Just one build with cert_compression on to reduce build times.
198
+ # One build with dynamic linking.
199
+ # TODO(@cpu): debug broken dyn-link build on Windows.
200
+ # - crypto: aws-lc-rs
201
+ # config: Release
202
+ # dyn_link: on
203
+ # One build with cert_compression.
185
204
- crypto : aws-lc-rs
186
205
config : Release
187
206
cert_compression : on
@@ -202,12 +221,16 @@ jobs:
202
221
with :
203
222
arch : x64
204
223
205
- # TODO(@cpu): install pre-built cargo-c similar to other platforms. This is slowww.
206
224
- name : Install cargo-c
207
- run : cargo install cargo-c
225
+ env :
226
+ LINK : https://github.com/lu-zero/cargo-c/releases/latest/download
227
+ CARGO_C_FILE : cargo-c-windows-msvc.zip
228
+ run : |
229
+ curl -L "$env:LINK/$env:CARGO_C_FILE" -o cargo-c-windows-msvc.zip
230
+ powershell -Command "Expand-Archive -Path cargo-c-windows-msvc.zip -DestinationPath $env:USERPROFILE\\.cargo\\bin -Force"
208
231
209
232
- name : Configure CMake
210
- run : cmake -DCRYPTO_PROVIDER="${{ matrix.crypto }}" -DCERT_COMPRESSION="${{ matrix.cert_compression }}" -S . -B build
233
+ run : cmake -DCRYPTO_PROVIDER="${{ matrix.crypto }}" -DCERT_COMPRESSION="${{ matrix.cert_compression }}" -DDYN_LINK="${{ matrix.dyn_link }}" - S . -B build
211
234
212
235
- name : Build
213
236
run : cmake --build build --config "${{ matrix.config }}"
0 commit comments