name: CI (windows) on: workflow_dispatch: # allows manual triggering push: branches: - master paths: ['.github/workflows/build-windows.yml', '**/CMakeLists.txt', '**/Makefile', '**/*.mk', '**/*.cmake', '**/*.in', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu', '**/*.cuh', '**/*.cl'] pull_request: types: [opened, synchronize, reopened] paths-ignore: - 'bindings/ruby/**' # handled by bindings-ruby.yml - 'bindings/go/**' # handled by bindings-go.yml - 'examples/addon.node/**' # handled by examples.yml concurrency: group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }} cancel-in-progress: true jobs: windows-msys2: runs-on: windows-latest strategy: fail-fast: false matrix: include: - { sys: UCRT64, env: ucrt-x86_64, compiler: gcc, build: Release } - { sys: CLANG64, env: clang-x86_64, compiler: clang, build: Release } steps: - name: Clone uses: actions/checkout@v6 - name: Setup ${{ matrix.sys }} uses: msys2/setup-msys2@cafece8e6baf9247cf9b1bf95097b0b983cc558d # v2 with: update: true msystem: ${{matrix.sys}} install: >- mingw-w64-${{matrix.env}}-${{matrix.compiler}} mingw-w64-${{matrix.env}}-cmake mingw-w64-${{matrix.env}}-SDL2 mingw-w64-${{matrix.env}}-openblas - name: Build using CMake shell: msys2 {0} run: | cmake -B build -DWHISPER_SDL2=ON cmake --build build --config ${{ matrix.build }} -j $(nproc) - name: Clean after building using CMake shell: msys2 {0} run: | rm -rf build - name: Build using CMake w/ OpenBLAS shell: msys2 {0} run: | cmake -B build -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS cmake --build build --config ${{ matrix.build }} -j $(nproc)