Spaces:
Running
Running
| name: CI | |
| on: [push, pull_request] | |
| jobs: | |
| 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 | |
| - 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: 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 }} | |
| - 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 }} | |
| 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 }} | |
| 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 | |
| ios: | |
| runs-on: macos-latest | |
| strategy: | |
| matrix: | |
| build: [Release] | |
| steps: | |
| - name: Clone | |
| uses: actions/checkout@v1 | |
| - name: Configure | |
| run: | | |
| cp models/for-tests-ggml-base.en.bin models/ggml-base.en.bin | |
| mkdir models/ggml-base.en-encoder.mlmodelc | |
| - 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 | |
| ./gradlew assembleRelease --no-daemon | |