1
1
name : CI
2
2
on : [push, pull_request]
3
3
4
+ env :
5
+ ubuntu_image : " ubuntu:22.04"
6
+
4
7
jobs :
5
8
ubuntu-latest :
6
9
runs-on : ubuntu-latest
10
+
11
+ strategy :
12
+ fail-fast : false
13
+ matrix :
14
+ arch : [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]
7
15
8
16
steps :
9
17
- name : Clone
10
- uses : actions/checkout@v1
11
-
12
- - name : Dependencies
13
- run : |
14
- sudo apt-get update
15
- sudo apt-get install build-essential
16
- sudo apt-get install libsdl2-dev
18
+ uses : actions/checkout@v3
19
+
20
+ - name : Set up QEMU
21
+ uses : docker/setup-qemu-action@v2
17
22
18
- - name : Build
23
+ - name : Build ${{ matrix.arch }}
19
24
run : |
20
- make
21
- make stream
25
+ docker run --platform ${{ matrix.arch }} --rm \
26
+ -v ${{ github.workspace }}:/workspace \
27
+ -w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
28
+ apt update
29
+ apt install -y build-essential libsdl2-dev
30
+ make
31
+ make stream'
22
32
23
33
macOS-latest :
24
34
runs-on : macOS-latest
25
35
26
36
steps :
27
37
- name : Clone
28
- uses : actions/checkout@v1
38
+ uses : actions/checkout@v3
29
39
30
40
- name : Dependencies
31
41
run : |
@@ -36,83 +46,105 @@ jobs:
36
46
run : |
37
47
make
38
48
make stream
49
+
50
+ freeBSD-latest :
51
+ runs-on : macos-12
52
+
53
+ steps :
54
+ - name : Clone
55
+ uses : actions/checkout@v3
56
+
57
+ - name : Build
58
+ uses :
cross-platform-actions/[email protected]
59
+ with :
60
+ operating_system : freebsd
61
+ version : ' 13.2'
62
+ run : |
63
+ sudo pkg update
64
+ sudo pkg install -y gmake sdl2
65
+ gmake
66
+ gmake stream
39
67
40
68
ubuntu-latest-gcc :
41
69
runs-on : ubuntu-latest
42
70
43
71
strategy :
72
+ fail-fast : false
44
73
matrix :
45
74
build : [Debug, Release]
75
+ arch : [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]
46
76
47
77
steps :
48
78
- name : Clone
49
- uses : actions/checkout@v1
79
+ uses : actions/checkout@v3
50
80
51
- - name : Dependencies
52
- run : |
53
- sudo apt-get update
54
- sudo apt-get install build-essential
55
- sudo apt-get install cmake
56
- sudo apt-get install libsdl2-dev
57
-
58
- - name : Configure
59
- run : cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }}
81
+ - name : Set up QEMU
82
+ uses : docker/setup-qemu-action@v2
60
83
61
- - name : Build
84
+ - name : Build ${{ matrix.arch }}
62
85
run : |
63
- make
64
- ctest -L gh --output-on-failure
86
+ docker run --platform ${{ matrix.arch }} --rm \
87
+ -v ${{ github.workspace }}:/workspace \
88
+ -w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
89
+ apt update
90
+ apt install -y build-essential cmake libsdl2-dev
91
+ cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }}
92
+ make
93
+ ctest -L gh --output-on-failure'
65
94
66
95
ubuntu-latest-clang :
67
96
runs-on : ubuntu-latest
68
97
69
98
strategy :
99
+ fail-fast : false
70
100
matrix :
71
101
build : [Debug, Release]
102
+ arch : [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]
72
103
73
104
steps :
74
105
- name : Clone
75
- uses : actions/checkout@v1
76
-
77
- - name : Dependencies
78
- run : |
79
- sudo apt-get update
80
- sudo apt-get install build-essential
81
- sudo apt-get install cmake
82
- sudo apt-get install libsdl2-dev
106
+ uses : actions/checkout@v3
83
107
84
- - name : Configure
85
- run : cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
108
+ - name : Set up QEMU
109
+ uses : docker/setup-qemu-action@v2
86
110
87
- - name : Build
111
+ - name : Build ${{ matrix.arch }}
88
112
run : |
89
- make
90
- ctest -L gh --output-on-failure
113
+ docker run --platform ${{ matrix.arch }} --rm \
114
+ -v ${{ github.workspace }}:/workspace \
115
+ -w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
116
+ apt update
117
+ apt install -y build-essential cmake libsdl2-dev
118
+ cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
119
+ make
120
+ ctest -L gh --output-on-failure'
91
121
92
122
ubuntu-latest-gcc-sanitized :
93
123
runs-on : ubuntu-latest
94
124
95
125
strategy :
126
+ fail-fast : false
96
127
matrix :
97
128
sanitizer : [ADDRESS, THREAD, UNDEFINED]
129
+ arch : [linux/amd64]
98
130
99
131
steps :
100
132
- name : Clone
101
- uses : actions/checkout@v1
102
-
103
- - name : Dependencies
104
- run : |
105
- sudo apt-get update
106
- sudo apt-get install build-essential
107
- sudo apt-get install cmake
108
-
109
- - name : Configure
110
- run : cmake . -DCMAKE_BUILD_TYPE=Debug -DWHISPER_SANITIZE_${{ matrix.sanitizer }}=ON
111
-
112
- - name : Build
133
+ uses : actions/checkout@v3
134
+
135
+ - name : Set up QEMU
136
+ uses : docker/setup-qemu-action@v2
137
+
138
+ - name : Build ${{ matrix.arch }}
113
139
run : |
114
- make
115
- ctest -L gh --output-on-failure
140
+ docker run --platform ${{ matrix.arch }} --rm \
141
+ -v ${{ github.workspace }}:/workspace \
142
+ -w /workspace ${{ env.ubuntu_image }} /bin/sh -c '
143
+ apt update
144
+ apt install -y build-essential cmake
145
+ cmake . -DCMAKE_BUILD_TYPE=Debug -DWHISPER_SANITIZE_${{ matrix.sanitizer }}=ON
146
+ make
147
+ ctest -L gh --output-on-failure'
116
148
117
149
windows :
118
150
runs-on : windows-latest
@@ -134,7 +166,7 @@ jobs:
134
166
135
167
steps :
136
168
- name : Clone
137
- uses : actions/checkout@v1
169
+ uses : actions/checkout@v3
138
170
139
171
- name : Add msbuild to PATH
140
172
uses : microsoft/setup-msbuild@v1
@@ -195,7 +227,7 @@ jobs:
195
227
196
228
steps :
197
229
- name : Clone
198
- uses : actions/checkout@v1
230
+ uses : actions/checkout@v3
199
231
200
232
- name : Add msbuild to PATH
201
233
uses : microsoft/setup-msbuild@v1
@@ -261,7 +293,7 @@ jobs:
261
293
262
294
steps :
263
295
- name : Clone
264
- uses : actions/checkout@v1
296
+ uses : actions/checkout@v3
265
297
266
298
- name : Add msbuild to PATH
267
299
uses : microsoft/setup-msbuild@v1
@@ -308,24 +340,16 @@ jobs:
308
340
309
341
steps :
310
342
- name : Clone
311
- uses : actions/checkout@v1
343
+ uses : actions/checkout@v3
312
344
313
- - name : Dependencies
314
- run : |
315
- wget -q https://github.com/emscripten-core/emsdk/archive/master.tar.gz
316
- tar -xvf master.tar.gz
317
- emsdk-master/emsdk update
318
- emsdk-master/emsdk install latest
319
- emsdk-master/emsdk activate latest
345
+ - name : Setup emsdk
346
+ uses : mymindstorm/setup-emsdk@v12
320
347
321
- - name : Configure
322
- run : echo "tmp"
348
+ - name : Verify
349
+ run : emcc -v
323
350
324
351
- name : Build
325
352
run : |
326
- pushd emsdk-master
327
- source ./emsdk_env.sh
328
- popd
329
353
emcmake cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }}
330
354
make
331
355
@@ -338,7 +362,7 @@ jobs:
338
362
339
363
steps :
340
364
- name : Clone
341
- uses : actions/checkout@v1
365
+ uses : actions/checkout@v3
342
366
343
367
- name : Configure
344
368
run : |
@@ -356,7 +380,7 @@ jobs:
356
380
357
381
steps :
358
382
- name : Clone
359
- uses : actions/checkout@v1
383
+ uses : actions/checkout@v3
360
384
361
385
- name : Install Java
362
386
uses : actions/setup-java@v3
@@ -376,7 +400,7 @@ jobs:
376
400
needs : [ 'windows' ]
377
401
runs-on : windows-latest
378
402
steps :
379
- - uses : actions/checkout@v1
403
+ - uses : actions/checkout@v3
380
404
381
405
- name : Install Java
382
406
uses : actions/setup-java@v1
0 commit comments