2022-10-07 17:32:18 +02:00
|
|
|
name: CI
|
2023-01-25 17:50:50 +01:00
|
|
|
on: [push, pull_request]
|
2022-10-07 17:32:18 +02:00
|
|
|
|
|
|
|
jobs:
|
2023-01-25 17:50:50 +01:00
|
|
|
ubuntu-latest:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
|
|
|
uses: actions/checkout@v1
|
|
|
|
|
|
|
|
- name: Dependencies
|
|
|
|
run: |
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install build-essential
|
|
|
|
sudo apt-get install libsdl2-dev
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
make
|
|
|
|
make stream
|
|
|
|
|
|
|
|
macOS-latest:
|
|
|
|
runs-on: macOS-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
|
|
|
uses: actions/checkout@v1
|
|
|
|
|
|
|
|
- name: Dependencies
|
|
|
|
run: |
|
|
|
|
brew update
|
|
|
|
brew install sdl2
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
make
|
|
|
|
make stream
|
|
|
|
|
|
|
|
ubuntu-latest-gcc:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
build: [Debug, Release]
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
|
|
|
uses: actions/checkout@v1
|
|
|
|
|
|
|
|
- name: Dependencies
|
|
|
|
run: |
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install build-essential
|
|
|
|
sudo apt-get install cmake
|
|
|
|
sudo apt-get install libsdl2-dev
|
|
|
|
|
|
|
|
- name: Configure
|
|
|
|
run: cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }}
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
make
|
|
|
|
ctest -L gh --output-on-failure
|
|
|
|
|
|
|
|
ubuntu-latest-clang:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
build: [Debug, Release]
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
|
|
|
uses: actions/checkout@v1
|
|
|
|
|
|
|
|
- name: Dependencies
|
|
|
|
run: |
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install build-essential
|
|
|
|
sudo apt-get install cmake
|
|
|
|
sudo apt-get install libsdl2-dev
|
|
|
|
|
|
|
|
- name: Configure
|
|
|
|
run: cmake . -DWHISPER_SUPPORT_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
make
|
|
|
|
ctest -L gh --output-on-failure
|
|
|
|
|
|
|
|
ubuntu-latest-gcc-sanitized:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
sanitizer: [ADDRESS, THREAD, UNDEFINED]
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
|
|
|
uses: actions/checkout@v1
|
|
|
|
|
|
|
|
- name: Dependencies
|
|
|
|
run: |
|
|
|
|
sudo apt-get update
|
|
|
|
sudo apt-get install build-essential
|
|
|
|
sudo apt-get install cmake
|
|
|
|
|
|
|
|
- name: Configure
|
|
|
|
run: cmake . -DCMAKE_BUILD_TYPE=Debug -DWHISPER_SANITIZE_${{ matrix.sanitizer }}=ON
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
make
|
|
|
|
ctest -L gh --output-on-failure
|
|
|
|
|
|
|
|
windows:
|
|
|
|
runs-on: windows-latest
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
build: [Release]
|
|
|
|
arch: [Win32, x64]
|
|
|
|
sdl2: [ON]
|
|
|
|
include:
|
|
|
|
- arch: Win32
|
|
|
|
s2arc: x86
|
2023-05-29 01:38:58 +02:00
|
|
|
jnaPath: win32-x86
|
2023-01-25 17:50:50 +01:00
|
|
|
- arch: x64
|
|
|
|
s2arc: x64
|
2023-05-29 01:38:58 +02:00
|
|
|
jnaPath: win32-x86-64
|
2023-01-25 17:50:50 +01:00
|
|
|
- sdl2: ON
|
|
|
|
s2ver: 2.26.0
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
|
|
|
uses: actions/checkout@v1
|
|
|
|
|
|
|
|
- name: Add msbuild to PATH
|
|
|
|
uses: microsoft/setup-msbuild@v1
|
|
|
|
|
|
|
|
- name: Fetch SDL2 and set SDL2_DIR
|
|
|
|
if: matrix.sdl2 == 'ON'
|
|
|
|
run: |
|
|
|
|
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
|
|
|
|
7z x sdl2.zip
|
|
|
|
echo "SDL2_DIR=$env:GITHUB_WORKSPACE/SDL2-${{ matrix.s2ver }}/cmake" >> $env:GITHUB_ENV
|
|
|
|
|
|
|
|
- name: Configure
|
|
|
|
run: >
|
|
|
|
cmake -S . -B ./build -A ${{ matrix.arch }}
|
|
|
|
-DCMAKE_BUILD_TYPE=${{ matrix.build }}
|
|
|
|
-DWHISPER_SUPPORT_SDL2=${{ matrix.sdl2 }}
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
cd ./build
|
|
|
|
msbuild ALL_BUILD.vcxproj -t:build -p:configuration=${{ matrix.build }} -p:platform=${{ matrix.arch }}
|
|
|
|
|
|
|
|
- name: Copy SDL2.dll
|
|
|
|
if: matrix.sdl2 == 'ON'
|
|
|
|
run: copy "$env:SDL2_DIR/../lib/${{ matrix.s2arc }}/SDL2.dll" build/bin/${{ matrix.build }}
|
|
|
|
|
2023-05-29 01:38:58 +02:00
|
|
|
- name: Upload dll
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: ${{ matrix.jnaPath }}_whisper.dll
|
|
|
|
path: build/bin/${{ matrix.build }}/whisper.dll
|
|
|
|
|
2023-01-25 17:50:50 +01:00
|
|
|
- name: Upload binaries
|
|
|
|
if: matrix.sdl2 == 'ON'
|
|
|
|
uses: actions/upload-artifact@v1
|
|
|
|
with:
|
|
|
|
name: whisper-bin-${{ matrix.arch }}
|
|
|
|
path: build/bin/${{ matrix.build }}
|
|
|
|
|
|
|
|
windows-blas:
|
|
|
|
runs-on: windows-latest
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
build: [Release]
|
|
|
|
arch: [Win32, x64]
|
|
|
|
blas: [ON]
|
|
|
|
sdl2: [ON]
|
|
|
|
include:
|
|
|
|
- arch: Win32
|
|
|
|
obzip: https://github.com/xianyi/OpenBLAS/releases/download/v0.3.21/OpenBLAS-0.3.21-x86.zip
|
|
|
|
s2arc: x86
|
|
|
|
- arch: x64
|
|
|
|
obzip: https://github.com/xianyi/OpenBLAS/releases/download/v0.3.21/OpenBLAS-0.3.21-x64.zip
|
|
|
|
s2arc: x64
|
|
|
|
- sdl2: ON
|
|
|
|
s2ver: 2.26.0
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
|
|
|
uses: actions/checkout@v1
|
|
|
|
|
|
|
|
- name: Add msbuild to PATH
|
|
|
|
uses: microsoft/setup-msbuild@v1
|
|
|
|
|
|
|
|
- name: Fetch OpenBLAS
|
|
|
|
if: matrix.blas == 'ON'
|
|
|
|
run: |
|
|
|
|
C:/msys64/usr/bin/wget.exe -qO blas.zip ${{ matrix.obzip }}
|
|
|
|
7z x blas.zip -oblas -y
|
|
|
|
copy blas/include/cblas.h .
|
|
|
|
copy blas/include/openblas_config.h .
|
|
|
|
echo "blasdir=$env:GITHUB_WORKSPACE/blas" >> $env:GITHUB_ENV
|
|
|
|
|
|
|
|
- name: Fetch SDL2 and set SDL2_DIR
|
|
|
|
if: matrix.sdl2 == 'ON'
|
|
|
|
run: |
|
|
|
|
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
|
|
|
|
7z x sdl2.zip
|
|
|
|
echo "SDL2_DIR=$env:GITHUB_WORKSPACE/SDL2-${{ matrix.s2ver }}/cmake" >> $env:GITHUB_ENV
|
|
|
|
|
|
|
|
- name: Configure
|
|
|
|
run: >
|
|
|
|
cmake -S . -B ./build -A ${{ matrix.arch }}
|
|
|
|
-DCMAKE_BUILD_TYPE=${{ matrix.build }}
|
|
|
|
-DWHISPER_SUPPORT_OPENBLAS=${{ matrix.blas }}
|
|
|
|
-DCMAKE_LIBRARY_PATH="$env:blasdir/lib"
|
|
|
|
-DWHISPER_SUPPORT_SDL2=${{ matrix.sdl2 }}
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
cd ./build
|
|
|
|
msbuild ALL_BUILD.vcxproj -t:build -p:configuration=${{ matrix.build }} -p:platform=${{ matrix.arch }}
|
|
|
|
|
|
|
|
- name: Copy libopenblas.dll
|
|
|
|
if: matrix.blas == 'ON'
|
|
|
|
run: copy "$env:blasdir/bin/libopenblas.dll" build/bin/${{ matrix.build }}
|
|
|
|
|
|
|
|
- name: Copy SDL2.dll
|
|
|
|
if: matrix.sdl2 == 'ON'
|
|
|
|
run: copy "$env:SDL2_DIR/../lib/${{ matrix.s2arc }}/SDL2.dll" build/bin/${{ matrix.build }}
|
|
|
|
|
|
|
|
- name: Upload binaries
|
|
|
|
if: matrix.blas == 'ON' && matrix.sdl2 == 'ON'
|
|
|
|
uses: actions/upload-artifact@v1
|
|
|
|
with:
|
|
|
|
name: whisper-blas-bin-${{ matrix.arch }}
|
|
|
|
path: build/bin/${{ matrix.build }}
|
2023-05-03 22:47:37 +02:00
|
|
|
|
|
|
|
windows-cublas:
|
|
|
|
runs-on: windows-latest
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
build: [Release]
|
|
|
|
arch: [x64]
|
|
|
|
cublas: [ON]
|
|
|
|
sdl2: [ON]
|
|
|
|
include:
|
|
|
|
- arch: x64
|
|
|
|
s2arc: x64
|
|
|
|
- sdl2: ON
|
|
|
|
s2ver: 2.26.0
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
|
|
|
uses: actions/checkout@v1
|
|
|
|
|
|
|
|
- name: Add msbuild to PATH
|
|
|
|
uses: microsoft/setup-msbuild@v1
|
|
|
|
|
|
|
|
- name: Install CUDA Toolkit
|
|
|
|
id: cuda-toolkit
|
|
|
|
uses: Jimver/cuda-toolkit@v0.2.10
|
|
|
|
|
|
|
|
- name: Fetch SDL2 and set SDL2_DIR
|
|
|
|
if: matrix.sdl2 == 'ON'
|
|
|
|
run: |
|
|
|
|
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
|
|
|
|
7z x sdl2.zip
|
|
|
|
echo "SDL2_DIR=$env:GITHUB_WORKSPACE/SDL2-${{ matrix.s2ver }}/cmake" >> $env:GITHUB_ENV
|
|
|
|
|
|
|
|
- name: Configure
|
|
|
|
run: >
|
|
|
|
cmake -S . -B ./build -A ${{ matrix.arch }}
|
|
|
|
-DCMAKE_BUILD_TYPE=${{ matrix.build }}
|
|
|
|
-DWHISPER_CUBLAS=1
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
cd ./build
|
|
|
|
msbuild ALL_BUILD.vcxproj -t:build -p:configuration=${{ matrix.build }} -p:platform=${{ matrix.arch }}
|
|
|
|
|
|
|
|
- name: Copy SDL2.dll
|
|
|
|
if: matrix.sdl2 == 'ON'
|
|
|
|
run: copy "$env:SDL2_DIR/../lib/${{ matrix.s2arc }}/SDL2.dll" build/bin/${{ matrix.build }}
|
|
|
|
|
|
|
|
- name: Upload binaries
|
|
|
|
if: matrix.sdl2 == 'ON'
|
|
|
|
uses: actions/upload-artifact@v1
|
|
|
|
with:
|
|
|
|
name: whisper-cublas-bin-${{ matrix.arch }}
|
|
|
|
path: build/bin/${{ matrix.build }}
|
2023-01-25 17:50:50 +01:00
|
|
|
|
|
|
|
emscripten:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
build: [Release]
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
|
|
|
uses: actions/checkout@v1
|
|
|
|
|
|
|
|
- name: Dependencies
|
|
|
|
run: |
|
|
|
|
wget -q https://github.com/emscripten-core/emsdk/archive/master.tar.gz
|
|
|
|
tar -xvf master.tar.gz
|
|
|
|
emsdk-master/emsdk update
|
|
|
|
emsdk-master/emsdk install latest
|
|
|
|
emsdk-master/emsdk activate latest
|
|
|
|
|
|
|
|
- name: Configure
|
|
|
|
run: echo "tmp"
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
pushd emsdk-master
|
|
|
|
source ./emsdk_env.sh
|
|
|
|
popd
|
|
|
|
emcmake cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }}
|
|
|
|
make
|
2023-04-15 13:21:58 +02:00
|
|
|
|
|
|
|
ios:
|
|
|
|
runs-on: macos-latest
|
|
|
|
|
|
|
|
strategy:
|
|
|
|
matrix:
|
|
|
|
build: [Release]
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
|
|
|
uses: actions/checkout@v1
|
|
|
|
|
|
|
|
- name: Configure
|
2023-05-14 08:47:02 +02:00
|
|
|
run: |
|
|
|
|
cp models/for-tests-ggml-base.en.bin models/ggml-base.en.bin
|
|
|
|
mkdir models/ggml-base.en-encoder.mlmodelc
|
2023-04-15 13:21:58 +02:00
|
|
|
|
|
|
|
- name: Build objc example
|
|
|
|
run: xcodebuild -project examples/whisper.objc/whisper.objc.xcodeproj -scheme whisper.objc -configuration ${{ matrix.build }} -sdk iphonesimulator build
|
|
|
|
|
|
|
|
- name: Build swiftui example
|
|
|
|
run: xcodebuild -project examples/whisper.swiftui/whisper.swiftui.xcodeproj -scheme WhisperCppDemo -configuration ${{ matrix.build }} -sdk iphonesimulator build
|
|
|
|
|
|
|
|
android:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Clone
|
|
|
|
uses: actions/checkout@v1
|
|
|
|
|
|
|
|
- name: Install Java
|
|
|
|
uses: actions/setup-java@v3
|
|
|
|
with:
|
|
|
|
distribution: zulu
|
|
|
|
java-version: 17
|
|
|
|
|
|
|
|
- name: Setup Android SDK
|
|
|
|
uses: android-actions/setup-android@v2
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
cd examples/whisper.android
|
2023-05-03 22:47:37 +02:00
|
|
|
./gradlew assembleRelease --no-daemon
|
2023-05-29 01:38:58 +02:00
|
|
|
|
|
|
|
java:
|
|
|
|
needs: [ 'windows' ]
|
|
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v1
|
|
|
|
|
|
|
|
- name: Install Java
|
|
|
|
uses: actions/setup-java@v1
|
|
|
|
with:
|
|
|
|
java-version: 17
|
|
|
|
|
|
|
|
- name: Download Windows lib
|
|
|
|
uses: actions/download-artifact@v3
|
|
|
|
with:
|
|
|
|
name: win32-x86-64_whisper.dll
|
|
|
|
path: bindings/java/build/generated/resources/main/win32-x86-64
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: |
|
|
|
|
models\download-ggml-model.cmd tiny.en
|
|
|
|
cd bindings/java
|
|
|
|
chmod +x ./gradlew
|
|
|
|
./gradlew build
|
|
|
|
|
|
|
|
- name: Upload jar
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: whispercpp.jar
|
|
|
|
path: bindings/java/build/libs/whispercpp-*.jar
|
|
|
|
|
|
|
|
# - name: Publish package
|
|
|
|
# if: ${{ github.ref == 'refs/heads/master' }}
|
|
|
|
# uses: gradle/gradle-build-action@v2
|
|
|
|
# with:
|
|
|
|
# arguments: publish
|
|
|
|
# env:
|
|
|
|
# MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
|
|
|
|
# MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
|