From 411ea9b833f23c7fe9300a23b570ed5ad947c4f4 Mon Sep 17 00:00:00 2001 From: Georgi Gerganov Date: Wed, 25 Jan 2023 18:50:50 +0200 Subject: [PATCH] ci : run workflows on pull requests + bindings depend on .h (#446) --- .github/workflows/bindings.yml | 11 +- .github/workflows/build.yml | 528 ++++++++++++++++----------------- 2 files changed, 272 insertions(+), 267 deletions(-) diff --git a/.github/workflows/bindings.yml b/.github/workflows/bindings.yml index 1bccf59..02667ed 100644 --- a/.github/workflows/bindings.yml +++ b/.github/workflows/bindings.yml @@ -3,11 +3,16 @@ on: push: paths: - bindings/go/** + - whisper.h + pull_request: + paths: + - bindings/go/** + - whisper.h jobs: - ubuntu-latest: - runs-on: ubuntu-latest - steps: + ubuntu-latest: + runs-on: ubuntu-latest + steps: - uses: actions/setup-go@v3 with: go-version: '^1.19' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 76278da..1a2baac 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,267 +1,267 @@ name: CI -on: [push] +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 }} - - 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 + 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 }} + + 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