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
7
10
11
+ strategy :
12
+ fail-fast : false
13
+ matrix :
14
+ arch : [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]
15
+
8
16
steps :
9
17
- name : Clone
10
- uses : actions/checkout@v1
18
+ uses : actions/checkout@v3
11
19
12
- - name : Dependencies
13
- run : |
14
- sudo apt-get update
15
- sudo apt-get install build-essential
16
- sudo apt-get install libsdl2-dev
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 : |
@@ -37,82 +47,104 @@ jobs:
37
47
make
38
48
make stream
39
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
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
81
+ - name : Set up QEMU
82
+ uses : docker/setup-qemu-action@v2
57
83
58
- - name : Configure
59
- run : cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }}
60
-
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
106
+ uses : actions/checkout@v3
76
107
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
108
+ - name : Set up QEMU
109
+ uses : docker/setup-qemu-action@v2
83
110
84
- - name : Configure
85
- run : cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
86
-
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
133
+ uses : actions/checkout@v3
102
134
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
135
+ - name : Set up QEMU
136
+ uses : docker/setup-qemu-action@v2
111
137
112
- - name : Build
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
@@ -243,10 +275,10 @@ jobs:
243
275
with :
244
276
name : whisper-blas-bin-${{ matrix.arch }}
245
277
path : build/bin/${{ matrix.build }}
246
-
278
+
247
279
windows-cublas :
248
280
runs-on : windows-latest
249
-
281
+
250
282
strategy :
251
283
matrix :
252
284
build : [Release]
@@ -258,40 +290,40 @@ jobs:
258
290
s2arc : x64
259
291
- sdl2 : ON
260
292
s2ver : 2.26.0
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
268
-
300
+
269
301
- name : Install CUDA Toolkit
270
302
id : cuda-toolkit
271
303
272
-
304
+
273
305
- name : Fetch SDL2 and set SDL2_DIR
274
306
if : matrix.sdl2 == 'ON'
275
307
run : |
276
308
C:/msys64/usr/bin/wget.exe -qO sdl2.zip https://github.com/libsdl-org/SDL/releases/download/release-${{ matrix.s2ver }}/SDL2-devel-${{ matrix.s2ver }}-VC.zip
277
309
7z x sdl2.zip
278
310
echo "SDL2_DIR=$env:GITHUB_WORKSPACE/SDL2-${{ matrix.s2ver }}/cmake" >> $env:GITHUB_ENV
279
-
311
+
280
312
- name : Configure
281
313
run : >
282
314
cmake -S . -B ./build -A ${{ matrix.arch }}
283
315
-DCMAKE_BUILD_TYPE=${{ matrix.build }}
284
316
-DWHISPER_CUBLAS=1
285
-
317
+
286
318
- name : Build
287
319
run : |
288
320
cd ./build
289
321
msbuild ALL_BUILD.vcxproj -t:build -p:configuration=${{ matrix.build }} -p:platform=${{ matrix.arch }}
290
-
322
+
291
323
- name : Copy SDL2.dll
292
324
if : matrix.sdl2 == 'ON'
293
325
run : copy "$env:SDL2_DIR/../lib/${{ matrix.s2arc }}/SDL2.dll" build/bin/${{ matrix.build }}
294
-
326
+
295
327
- name : Upload binaries
296
328
if : matrix.sdl2 == 'ON'
297
329
uses : actions/upload-artifact@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 : |
@@ -347,7 +371,7 @@ jobs:
347
371
348
372
- name : Build objc example
349
373
run : xcodebuild -project examples/whisper.objc/whisper.objc.xcodeproj -scheme whisper.objc -configuration ${{ matrix.build }} -sdk iphonesimulator build
350
-
374
+
351
375
- name : Build swiftui example
352
376
run : xcodebuild -project examples/whisper.swiftui/whisper.swiftui.xcodeproj -scheme WhisperCppDemo -configuration ${{ matrix.build }} -sdk iphonesimulator build
353
377
@@ -356,14 +380,14 @@ 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
363
387
with :
364
388
distribution : zulu
365
389
java-version : 17
366
-
390
+
367
391
- name : Setup Android SDK
368
392
uses : android-actions/setup-android@v2
369
393
@@ -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
@@ -402,11 +426,27 @@ jobs:
402
426
name : whispercpp.jar
403
427
path : bindings/java/build/libs/whispercpp-*.jar
404
428
405
- # - name: Publish package
406
- # if: ${{ github.ref == 'refs/heads/master' }}
407
- # uses: gradle/gradle-build-action@v2
408
- # with:
409
- # arguments: publish
410
- # env:
411
- # MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
412
- # MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
429
+ - name : Publish package
430
+ if : ${{ github.ref == 'refs/heads/master' }}
431
+
432
+ with :
433
+ arguments : publish
434
+ build-root-directory : bindings/java
435
+ env :
436
+ MAVEN_USERNAME : ${{ secrets.JIRA_USER }}
437
+ MAVEN_PASSWORD : ${{ secrets.JIRA_PASS }}
438
+ PGP_SECRET : ${{ secrets.GPG_PRIVATE_KEY }}
439
+ PGP_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
440
+
441
+ quantize :
442
+ runs-on : ubuntu-latest
443
+
444
+ steps :
445
+ - name : Clone
446
+ uses : actions/checkout@v3
447
+
448
+ - name : Test quantize
449
+ run : |
450
+ ./models/download-ggml-model.sh tiny.en
451
+ make quantize
452
+ ./quantize models/ggml-tiny.en.bin models/ggml-tiny.en-q4_0.bin q4_0
0 commit comments