Team Ai
Apppublic

Xenobd/whisper.cpp

sourceHugging Faceupdated 10mo agoView on Hugging Face
0likes
build.yml1371 linesDownload Raw Back to workflows
1name: CI2 3on:4  push:5    branches:6      - master7    tags:8      - 'v*'9    paths: ['.github/workflows/build.yml',10            '**/CMakeLists.txt',11            '**/Makefile',12            '**/*.mk',13            '**/*.cmake',14            '**/*.in',15            '**/*.h',16            '**/*.hpp',17            '**/*.c',18            '**/*.cpp',19            '**/*.cu',20            '**/*.cuh',21            '**/*.cl',22            '**/*.swift',23            '**/*.m',24            '**/*.mm',25            '**/*.metal',26            '**/*.comp',27            '**/*.java']28  pull_request:29    types: [opened, synchronize, reopened]30  workflow_dispatch:31    inputs:32      create_release:33        description: 'Create new release'34        required: true35        type: boolean36      pre_release_tag:37        description: 'Pre-release tag name'38        required: false39        type: string40      run_type:41        description: 'Workflow type to run'42        required: true43        type: choice44        options:45          - full-ci46          - release-only47 48concurrency:49  group: ${{ github.workflow }}-${{ github.head_ref && github.ref || github.run_id }}50  cancel-in-progress: true51 52permissions:53  contents: write  # for creating release54 55env:56  BRANCH_NAME: ${{ github.head_ref || github.ref_name }}57  ubuntu_image: "ubuntu:22.04"58  VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"59 60jobs:61  determine-tag:62    runs-on: ubuntu-latest63    outputs:64      tag_name: ${{ steps.tag.outputs.name }}65      should_release: ${{ steps.tag.outputs.should_release }}66 67    steps:68      - name: Checkout with full history69        uses: actions/checkout@v470        with:71          fetch-depth: 072 73      - name: Determine tag name74        id: tag75        shell: bash76        run: |77          BUILD_NUMBER=$(git rev-list --count HEAD)78          SHORT_HASH=$(git rev-parse --short=7 HEAD)79          CUSTOM_TAG="${{ github.event.inputs.pre_release_tag }}"80          SHOULD_RELEASE="false"81 82          echo "Raw values:"83          echo "BUILD_NUMBER: $BUILD_NUMBER"84          echo "SHORT_HASH: $SHORT_HASH"85          echo "BRANCH_NAME: ${{ env.BRANCH_NAME }}"86          echo "CUSTOM_TAG: $CUSTOM_TAG"87 88          if [[ "${{ github.ref_type }}" == "tag" ]]; then89            echo "Using pushed tag name"90            TAG_NAME="${{ github.ref_name }}"91            SHOULD_RELEASE="true"92          elif [[ -n "$CUSTOM_TAG" ]]; then93            echo "Using custom tag"94            TAG_NAME="${CUSTOM_TAG}"95            SHOULD_RELEASE="true"96          elif [[ "${{ github.event.inputs.create_release }}" == "true" ]]; then97            echo "Manual release requested"98            SHOULD_RELEASE="true"99            TAG_NAME="b${BUILD_NUMBER}"100          elif [[ "${{ env.BRANCH_NAME }}" == "master" ]]; then101            echo "Using master branch format"102            TAG_NAME="b${BUILD_NUMBER}"103            SHOULD_RELEASE="false"104          else105            echo "Using non-master branch format"106            SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-')107            TAG_NAME="${SAFE_NAME}-b${BUILD_NUMBER}-${SHORT_HASH}"108            SHOULD_RELEASE="false"109          fi110 111          echo "Final tag name: $TAG_NAME"112          echo "Should release: $SHOULD_RELEASE"113          echo "name=$TAG_NAME" >> $GITHUB_OUTPUT114          echo "should_release=$SHOULD_RELEASE" >> $GITHUB_OUTPUT115 116 117  ubuntu-22:118    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||119            github.event.inputs.run_type == 'full-ci' }}120    runs-on: ubuntu-22.04121 122    strategy:123      fail-fast: false124      matrix:125        arch: [linux/amd64, linux/ppc64le]126 127    steps:128      - name: Clone129        uses: actions/checkout@v4130 131      - name: Set up QEMU132        uses: docker/setup-qemu-action@v3133 134      - name: Build ${{ matrix.arch }}135        run: |136          docker run --platform ${{ matrix.arch }} --rm \137            -v ${{ github.workspace }}:/workspace \138            -w /workspace ${{ env.ubuntu_image }} /bin/sh -c '139            set -e140            export DEBIAN_FRONTEND=noninteractive141            sed -i "s|archive.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list142            sed -i "s|security.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list143 144            apt update145            apt install -y build-essential libsdl2-dev cmake git146            cmake -B build147            cmake --build build --config Release -j $(nproc)'148 149  ubuntu-22-arm64:150    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||151            github.event.inputs.run_type == 'full-ci' }}152    runs-on: ubuntu-22.04153 154    strategy:155      fail-fast: false156      matrix:157        arch: [linux/arm64]158 159    steps:160      - name: Clone161        uses: actions/checkout@v4162 163      - name: Set up QEMU164        uses: docker/setup-qemu-action@v3165 166      - name: Build ${{ matrix.arch }}167        run: |168          docker run --platform ${{ matrix.arch }} --rm \169            -v ${{ github.workspace }}:/workspace \170            -w /workspace ${{ env.ubuntu_image }} /bin/sh -c '171            set -e172            export DEBIAN_FRONTEND=noninteractive173            sed -i "s|archive.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list174            sed -i "s|security.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list175 176            apt-get update177            apt-get install -y ca-certificates178            sed -i "s|http://ports.ubuntu.com|https://mirror.kumi.systems|g" /etc/apt/sources.list179 180            apt update181            apt install -y build-essential libsdl2-dev cmake git182            cmake -B build -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv8-a183            cmake --build build --config Release -j $(nproc)'184 185  ubuntu-22-arm-v7:186    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||187            github.event.inputs.run_type == 'full-ci' }}188    runs-on: ubuntu-22.04189 190    strategy:191      fail-fast: false192      matrix:193        arch: [linux/arm/v7]194 195    steps:196      - name: Clone197        uses: actions/checkout@v4198 199      - name: Set up QEMU200        uses: docker/setup-qemu-action@v3201 202      - name: Build ${{ matrix.arch }}203        run: |204          docker run --platform ${{ matrix.arch }} --rm \205            -v ${{ github.workspace }}:/workspace \206            -w /workspace ${{ env.ubuntu_image }} /bin/sh -c '207            set -e208            export DEBIAN_FRONTEND=noninteractive209            sed -i "s|archive.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list210            sed -i "s|security.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list211 212            apt-get update213            apt-get install -y ca-certificates214            sed -i "s|http://ports.ubuntu.com|https://mirror.kumi.systems|g" /etc/apt/sources.list215 216            apt update217            apt install -y build-essential libsdl2-dev cmake git218            cmake -B build -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv7-a+fp219            cmake --build build --config Release -j $(nproc)'220 221  macOS-latest:222    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||223            github.event.inputs.run_type == 'full-ci' }}224    runs-on: macOS-latest225 226    strategy:227      matrix:228        destination: ['generic/platform=macOS', 'generic/platform=iOS', 'generic/platform=tvOS']229 230    steps:231      - name: Clone232        id: checkout233        uses: actions/checkout@v4234 235      - name: ccache236        uses: hendrikmuhs/ccache-action@v1.2.16237        with:238          key: macOS-latest-swift239          evict-old-files: 1d240 241      - name: Dependencies242        run: |243          brew update244          brew install sdl2 cmake245 246      - name: Build247        run: |248          sysctl -a249          cmake -B build -G Xcode \250            -DGGML_METAL_USE_BF16=ON \251            -DGGML_METAL_EMBED_LIBRARY=ON \252            -DWHISPER_BUILD_EXAMPLES=OFF \253            -DWHISPER_BUILD_TESTS=OFF \254            -DWHISPER_BUILD_SERVER=OFF \255            -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64"256          cmake --build build --config Release -j $(sysctl -n hw.logicalcpu)257 258 259#  freeBSD-latest:260#    runs-on: macos-13261#262#    steps:263#      - name: Clone264#        uses: actions/checkout@v4265#266#      - name: Build267#        uses: cross-platform-actions/action@v0.27.0268#        with:269#          operating_system: freebsd270#          version: '14.2'271#          run: |272#            sudo pkg update273#            sudo pkg install -y gmake sdl2 cmake git274#            cmake -B build275#            cmake --build build --config Release276 277  ubuntu-22-gcc:278    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||279            github.event.inputs.run_type == 'full-ci' }}280    runs-on: ubuntu-22.04281 282    strategy:283      fail-fast: false284      matrix:285        build: [Debug, Release]286        arch: [linux/amd64, linux/ppc64le]287 288    steps:289      - name: Clone290        uses: actions/checkout@v4291 292      - name: Set up QEMU293        uses: docker/setup-qemu-action@v3294 295      - name: Build ${{ matrix.arch }}296        run: |297          docker run --platform ${{ matrix.arch }} --rm \298            -v ${{ github.workspace }}:/workspace \299            -w /workspace ${{ env.ubuntu_image }} /bin/sh -c '300            set -e301            export DEBIAN_FRONTEND=noninteractive302            sed -i "s|archive.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list303            sed -i "s|security.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list304 305            apt update306            apt install -y build-essential cmake libsdl2-dev git307            cmake . -DWHISPER_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }}308            make309            ctest -L gh --output-on-failure'310 311  ubuntu-22-gcc-arm64:312    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||313            github.event.inputs.run_type == 'full-ci' }}314    runs-on: ubuntu-22.04315 316    strategy:317      fail-fast: false318      matrix:319        build: [Debug, Release]320        arch: [linux/arm64]321 322    steps:323      - name: Clone324        uses: actions/checkout@v4325 326      - name: Set up QEMU327        uses: docker/setup-qemu-action@v3328 329      - name: Build ${{ matrix.arch }}330        run: |331          docker run --platform ${{ matrix.arch }} --rm \332            -v ${{ github.workspace }}:/workspace \333            -w /workspace ${{ env.ubuntu_image }} /bin/sh -c '334            set -e335            export DEBIAN_FRONTEND=noninteractive336            sed -i "s|archive.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list337            sed -i "s|security.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list338 339            apt-get update340            apt-get install -y ca-certificates341            sed -i "s|http://ports.ubuntu.com|https://mirror.kumi.systems|g" /etc/apt/sources.list342 343            apt update344            apt install -y build-essential cmake libsdl2-dev git345            cmake . -DWHISPER_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv8-a346            make347            ctest -L gh --output-on-failure'348 349  ubuntu-22-gcc-arm-v7:350    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||351            github.event.inputs.run_type == 'full-ci' }}352    runs-on: ubuntu-22.04353 354    strategy:355      fail-fast: false356      matrix:357        build: [Debug, Release]358        arch: [linux/arm/v7]359 360    steps:361      - name: Clone362        uses: actions/checkout@v4363 364      - name: Set up QEMU365        uses: docker/setup-qemu-action@v3366 367      - name: Build ${{ matrix.arch }}368        run: |369          docker run --platform ${{ matrix.arch }} --rm \370            -v ${{ github.workspace }}:/workspace \371            -w /workspace ${{ env.ubuntu_image }} /bin/sh -c '372            set -e373            export DEBIAN_FRONTEND=noninteractive374            sed -i "s|archive.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list375            sed -i "s|security.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list376 377            apt-get update378            apt-get install -y ca-certificates379            sed -i "s|http://ports.ubuntu.com|https://mirror.kumi.systems|g" /etc/apt/sources.list380 381            apt update382            apt install -y build-essential cmake libsdl2-dev git383            cmake . -DWHISPER_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DGGML_NATIVE=OFF -DGGML_CPU_ARM_ARCH=armv7-a+fp384            make385            ctest -L gh --output-on-failure'386 387  ubuntu-22-clang:388    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||389            github.event.inputs.run_type == 'full-ci' }}390    runs-on: ubuntu-22.04391 392    strategy:393      fail-fast: false394      matrix:395        build: [Debug, Release]396        #arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]397        # TODO: arm/v7 disabled due to clang bug398        #       https://github.com/ggerganov/whisper.cpp/actions/runs/9657764109/job/26637633042?pr=2256#step:4:1990399        arch: [linux/amd64, linux/arm64, linux/ppc64le]400 401    steps:402      - name: Clone403        uses: actions/checkout@v4404 405      - name: Set up QEMU406        uses: docker/setup-qemu-action@v3407 408      - name: Build ${{ matrix.arch }}409        run: |410          docker run --platform ${{ matrix.arch }} --rm \411            -v ${{ github.workspace }}:/workspace \412            -w /workspace ${{ env.ubuntu_image }} /bin/sh -c '413            set -e414            export DEBIAN_FRONTEND=noninteractive415            sed -i "s|archive.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list416            sed -i "s|security.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list417 418            apt-get update419            apt-get install -y ca-certificates420            sed -i "s|http://ports.ubuntu.com|https://mirror.kumi.systems|g" /etc/apt/sources.list421 422            apt update423            apt install -y clang build-essential cmake libsdl2-dev git424            cmake . -DWHISPER_SDL2=ON -DCMAKE_BUILD_TYPE=${{ matrix.build }} -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang425            make426            ctest -L gh --output-on-failure'427 428  ubuntu-22-gcc-sanitized:429    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||430            github.event.inputs.run_type == 'full-ci' }}431    runs-on: ubuntu-22.04432 433    strategy:434      fail-fast: false435      matrix:436        sanitizer: [ADDRESS, THREAD, UNDEFINED]437        arch: [linux/amd64]438 439    steps:440      - name: Clone441        uses: actions/checkout@v4442 443      - name: Set up QEMU444        uses: docker/setup-qemu-action@v3445 446      - name: Build ${{ matrix.arch }}447        run: |448          docker run --platform ${{ matrix.arch }} --rm \449            -v ${{ github.workspace }}:/workspace \450            -w /workspace ${{ env.ubuntu_image }} /bin/sh -c '451            set -e452            export DEBIAN_FRONTEND=noninteractive453            sed -i "s|archive.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list454            sed -i "s|security.ubuntu.com|mirrors.kernel.org|g" /etc/apt/sources.list455 456            apt update457            apt install -y build-essential cmake git458            cmake . -DCMAKE_BUILD_TYPE=Debug \459              -DWHISPER_SANITIZE_${{ matrix.sanitizer }}=ON \460              -DGGML_OPENMP=OFF461            make462            ctest -L gh --output-on-failure'463 464  ubuntu-22-cmake-sycl:465    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||466            github.event.inputs.run_type == 'full-ci' }}467    runs-on: ubuntu-22.04468 469    strategy:470      fail-fast: false471      matrix:472        dwhisper_sycl: [ON]473        dcmake_c_compiler: [icx]474        dcmake_cxx_compiler: [icpx]475        arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]476 477    continue-on-error: true478 479    steps:480      - name: Clone481        uses: actions/checkout@v4482 483      - name: add oneAPI to apt484        shell: bash485        run: |486          cd /tmp487          wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB488          sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB489          rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB490          sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"491 492      - name: install oneAPI dpcpp compiler493        shell: bash494        run: |495          sudo apt update496          sudo apt install intel-oneapi-compiler-dpcpp-cpp git497 498      - name: install oneAPI MKL library499        shell: bash500        run: |501          sudo apt install intel-oneapi-mkl-devel git502 503      - name: Clone504        id: checkout505        uses: actions/checkout@v4506 507      - name: Build508        id: cmake_build509        run: |510          source /opt/intel/oneapi/setvars.sh511          mkdir build512          cd build513          cmake -DGGML_SYCL=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx ..514          cmake --build . --config Release -j $(nproc)515 516  ubuntu-22-cmake-sycl-fp16:517    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||518            github.event.inputs.run_type == 'full-ci' }}519    runs-on: ubuntu-22.04520 521    strategy:522      fail-fast: false523      matrix:524        dwhisper_sycl: [ON]525        dcmake_c_compiler: [icx]526        dcmake_cxx_compiler: [icpx]527        arch: [linux/amd64, linux/arm64, linux/arm/v7, linux/ppc64le]528 529    continue-on-error: true530 531    steps:532      - name: Clone533        uses: actions/checkout@v4534 535      - name: add oneAPI to apt536        shell: bash537        run: |538          cd /tmp539          wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB540          sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB541          rm GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB542          sudo add-apt-repository "deb https://apt.repos.intel.com/oneapi all main"543 544      - name: install oneAPI dpcpp compiler545        shell: bash546        run: |547          sudo apt update548          sudo apt install intel-oneapi-compiler-dpcpp-cpp git549 550      - name: install oneAPI MKL library551        shell: bash552        run: |553          sudo apt install intel-oneapi-mkl-devel554 555      - name: Clone556        id: checkout557        uses: actions/checkout@v4558 559      - name: Build560        id: cmake_build561        run: |562          source /opt/intel/oneapi/setvars.sh563          mkdir build564          cd build565          cmake -DGGML_SYCL_F16=ON -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx ..566          cmake --build . --config Release -j $(nproc)567 568  windows-msys2:569    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||570            github.event.inputs.run_type == 'full-ci' }}571    runs-on: windows-latest572 573    strategy:574      fail-fast: false575      matrix:576        include:577          - { sys: UCRT64,  env: ucrt-x86_64,  build: Release }578          - { sys: CLANG64, env: clang-x86_64, build: Release }579 580    steps:581      - name: Clone582        uses: actions/checkout@v4583 584      - name: Setup ${{ matrix.sys }}585        uses: msys2/setup-msys2@v2586        with:587          update: true588          msystem: ${{matrix.sys}}589          install: >-590            base-devel591            git592            mingw-w64-${{matrix.env}}-toolchain593            mingw-w64-${{matrix.env}}-cmake594            mingw-w64-${{matrix.env}}-SDL2595            mingw-w64-${{matrix.env}}-openblas596 597      - name: Build using CMake598        shell: msys2 {0}599        run: |600            cmake -B build -DWHISPER_SDL2=ON601            cmake --build build --config ${{ matrix.build }} -j $(nproc)602 603      - name: Clean after building using CMake604        shell: msys2 {0}605        run: |606            rm -rf build607 608      - name: Build using CMake w/ OpenBLAS609        shell: msys2 {0}610        run: |611            cmake -B build -DGGML_BLAS=ON -DGGML_BLAS_VENDOR=OpenBLAS612            cmake --build build --config ${{ matrix.build }} -j $(nproc)613 614  windows:615    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||616            github.event.inputs.run_type == 'full-ci' }}617    runs-on: windows-latest618    needs: determine-tag619 620    strategy:621      matrix:622        build: [Release]623        arch: [Win32, x64]624        sdl2: [ON]625        include:626          - arch: Win32627            s2arc: x86628            jnaPath: win32-x86629          - arch: x64630            s2arc: x64631            jnaPath: win32-x86-64632          - sdl2: ON633            s2ver: 2.28.5634 635    steps:636      - name: Clone637        uses: actions/checkout@v4638 639      - name: Add msbuild to PATH640        uses: microsoft/setup-msbuild@v2641 642      - name: Fetch SDL2 and set SDL2_DIR643        if: matrix.sdl2 == 'ON'644        run: |645          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.zip646          7z x sdl2.zip647          echo "SDL2_DIR=$env:GITHUB_WORKSPACE/SDL2-${{ matrix.s2ver }}/cmake" >> $env:GITHUB_ENV648 649      - name: Configure650        run: >651          cmake -S . -B ./build -A ${{ matrix.arch }}652          -DCMAKE_BUILD_TYPE=${{ matrix.build }}653          -DBUILD_SHARED_LIBS=ON654          -DWHISPER_SDL2=${{ matrix.sdl2 }}655 656      - name: Build657        run: |658          cd ./build659          msbuild ALL_BUILD.vcxproj -t:build -p:configuration=${{ matrix.build }} -p:platform=${{ matrix.arch }}660 661      - name: Copy SDL2.dll662        if: matrix.sdl2 == 'ON'663        run: copy "$env:SDL2_DIR/../lib/${{ matrix.s2arc }}/SDL2.dll" build/bin/${{ matrix.build }}664 665      - name: Upload SDL2.dll666        if: matrix.sdl2 == 'ON'667        uses: actions/upload-artifact@v4668        with:669          name: ${{ matrix.s2arc }}_SDL2.dll670          path: build/bin/${{ matrix.build }}/SDL2.dll671 672      - name: Upload whisper dll673        uses: actions/upload-artifact@v4674        with:675          name: whisper_${{ matrix.arch }}.dll676          path: build/bin/${{ matrix.build }}/whisper.dll677 678      - name: Upload ggml dll679        uses: actions/upload-artifact@v4680        with:681          name: ggml_${{ matrix.arch }}.dll682          path: build/bin/${{ matrix.build }}/ggml.dll683 684      - name: Upload ggml base dll685        uses: actions/upload-artifact@v4686        with:687          name: ggml_base_${{ matrix.arch }}.dll688          path: build/bin/${{ matrix.build }}/ggml-base.dll689 690      - name: Upload ggml cpu dll691        uses: actions/upload-artifact@v4692        with:693          name: ggml_cpu_${{ matrix.arch }}.dll694          path: build/bin/${{ matrix.build }}/ggml-cpu.dll695 696      - name: Pack bin artifacts697        shell: pwsh698        run: |699              Compress-Archive -Path "build/bin/${{ matrix.build }}" -DestinationPath "whisper-bin-${{ matrix.arch }}.zip"700 701      - name: Upload binaries702        if: matrix.sdl2 == 'ON' && ${{ needs.determine-tag.outputs.should_release }}703        uses: actions/upload-artifact@v4704        with:705          name: whisper-bin-${{ matrix.arch }}.zip706          path: whisper-bin-${{ matrix.arch }}.zip707 708  windows-blas:709    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||710            github.event.inputs.run_type == 'full-ci' }}711    runs-on: windows-latest712 713    strategy:714      matrix:715        build: [Release]716        arch: [Win32, x64]717        blas: [ON]718        sdl2: [ON]719        blasver: [0.3.29]720        include:721          - arch: Win32722            s2arc: x86723            blasfile: x86724          - arch: x64725            s2arc: x64726            blasfile: x64_64727          - sdl2: ON728            s2ver: 2.28.5729 730    steps:731      - name: Clone732        uses: actions/checkout@v4733 734      - name: Export GitHub Actions cache environment variables735        uses: actions/github-script@v7736        with:737          script: |738            core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');739            core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');740 741      - name: Add msbuild to PATH742        uses: microsoft/setup-msbuild@v2743 744      - name: Install OpenBLAS and pkgconfiglite745        if: matrix.blas == 'ON'746        run: |747          Invoke-WebRequest "https://github.com/OpenMathLib/OpenBLAS/releases/download/v${{matrix.blasver}}/OpenBLAS-${{matrix.blasver}}_${{matrix.blasfile}}.zip" -OutFile "OpenBLAS-${{matrix.blasver}}.zip"748          Expand-Archive "OpenBLAS-${{matrix.blasver}}.zip" -DestinationPath "OpenBLAS-${{matrix.blasver}}"749          choco install pkgconfiglite750 751      - name: Fetch SDL2 and set SDL2_DIR752        if: matrix.sdl2 == 'ON'753        run: |754          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.zip755          7z x sdl2.zip756          echo "SDL2_DIR=$env:GITHUB_WORKSPACE/SDL2-${{ matrix.s2ver }}/cmake" >> $env:GITHUB_ENV757 758      - name: Configure759        run: >760          cmake -S . -B ./build -A ${{ matrix.arch }}761          -DCMAKE_TOOLCHAIN_FILE="$env:VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake"762          -DCMAKE_BUILD_TYPE=${{ matrix.build }}763          -DGGML_BLAS=${{ matrix.blas }}764          -DGGML_BLAS_VENDOR=OpenBLAS765          -DBLAS_LIBRARIES="$env:GITHUB_WORKSPACE/OpenBLAS-${{matrix.blasver}}/lib/libopenblas.lib"766          -DBLAS_INCLUDE_DIRS="$env:GITHUB_WORKSPACE/OpenBLAS-${{matrix.blasver}}/include"767          -DWHISPER_SDL2=${{ matrix.sdl2 }}768 769      - name: Build770        run: |771          cd ./build772          msbuild ALL_BUILD.vcxproj -t:build -p:configuration=${{ matrix.build }} -p:platform=${{ matrix.arch }}773 774      - name: Copy openblas.dll775        if: matrix.blas == 'ON'776        run: copy "$env:GITHUB_WORKSPACE/OpenBLAS-${{matrix.blasver}}/bin/libopenblas.dll" build/bin/${{ matrix.build }}777 778      - name: Copy SDL2.dll779        if: matrix.sdl2 == 'ON'780        run: copy "$env:SDL2_DIR/../lib/${{ matrix.s2arc }}/SDL2.dll" build/bin/${{ matrix.build }}781 782      - name: Pack bin artifacts783        shell: pwsh784        run: |785              Compress-Archive -Path "build/bin/${{ matrix.build }}" -DestinationPath "whisper-blas-bin-${{ matrix.arch }}.zip"786 787      - name: Upload binaries788        if: matrix.blas == 'ON' && matrix.sdl2 == 'ON' && ${{ needs.determine-tag.outputs.should_release }}789        uses: actions/upload-artifact@v4790        with:791          name: whisper-blas-bin-${{ matrix.arch }}.zip792          path: whisper-blas-bin-${{ matrix.arch }}.zip793 794  windows-cublas:795    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||796            github.event.inputs.run_type == 'full-ci' }}797    runs-on: windows-2022798    needs: determine-tag799    strategy:800      fail-fast: false801      matrix:802        build: [Release]803        arch: [x64]804        cublas: [ON]805        sdl2: [ON]806        cuda-toolkit: [12.4.0, 11.8.0]807        include:808          - arch: x64809            sdl2: ON810            sdl2_ver: 2.28.5811    steps:812      - name: Clone repository813        uses: actions/checkout@v4814 815      - name: Install Ninja816        id: install_ninja817        run: |818          choco install ninja819 820      - name: Install ccache821        uses: hendrikmuhs/ccache-action@v1.2.16822        with:823          key: ${{ github.job }}-${{ matrix.cuda-toolkit }}-${{ matrix.build }}824          variant: sccache825          evict-old-files: 5d826 827      - name: Install Cuda Toolkit 11.8.0828        if: ${{ matrix.cuda-toolkit == '11.8.0' }}829        run: |830          $CUDA_VERSION = ${{ matrix.cuda-toolkit }}831          $CUDA_TOOLKIT_DIR = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v$CUDA_VERSION"832          $CUDA_DOWNLOAD = "https://developer.download.nvidia.com/compute/cuda/redist"833 834          # Components versions835          $CUDART_VER = "11.8.89"836          $NVCC_VER   = "11.8.89"837          $NVRTC_VER  = "11.8.89"838          $CUBLAS_VER = "11.8.1.74"839          $NVTX_VER   = "11.8.86"840          $VS_VER     = "11.8.86"841          $NVPROF_VER = "11.8.87"842          $CCCL_VER   = "11.8.89"843 844          # Create the directory where the CUDA Toolkit will be installed845          mkdir -p $CUDA_TOOLKIT_DIR846 847          # Install unzip to extract the downloaded files848          choco install unzip -y849 850          # Download all the required components851          curl -O "$CUDA_DOWNLOAD/cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-${CUDART_VER}-archive.zip"852          curl -O "$CUDA_DOWNLOAD/cuda_nvcc/windows-x86_64/cuda_nvcc-windows-x86_64-${NVCC_VER}-archive.zip"853          curl -O "$CUDA_DOWNLOAD/cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-${NVRTC_VER}-archive.zip"854          curl -O "$CUDA_DOWNLOAD/libcublas/windows-x86_64/libcublas-windows-x86_64-${CUBLAS_VER}-archive.zip"855          curl -O "$CUDA_DOWNLOAD/cuda_nvtx/windows-x86_64/cuda_nvtx-windows-x86_64-${NVTX_VER}-archive.zip"856          curl -O "$CUDA_DOWNLOAD/visual_studio_integration/windows-x86_64/visual_studio_integration-windows-x86_64-${VS_VER}-archive.zip"857          curl -O "$CUDA_DOWNLOAD/cuda_nvprof/windows-x86_64/cuda_nvprof-windows-x86_64-${NVPROF_VER}-archive.zip"858          curl -O "$CUDA_DOWNLOAD/cuda_cccl/windows-x86_64/cuda_cccl-windows-x86_64-${CCCL_VER}-archive.zip"859 860          # Extract all the downloaded files to the CUDA Toolkit directory861          unzip '*.zip' -d $CUDA_TOOLKIT_DIR862 863          # Copy all the extracted files to the main CUDA Toolkit directory864          xcopy "$CUDA_TOOLKIT_DIR\cuda_cudart-windows-x86_64-${CUDART_VER}-archive\*" "$CUDA_TOOLKIT_DIR" /E /I /H /Y865          xcopy "$CUDA_TOOLKIT_DIR\cuda_nvcc-windows-x86_64-${NVCC_VER}-archive\*" "$CUDA_TOOLKIT_DIR" /E /I /H /Y866          xcopy "$CUDA_TOOLKIT_DIR\cuda_nvrtc-windows-x86_64-${NVRTC_VER}-archive\*" "$CUDA_TOOLKIT_DIR" /E /I /H /Y867          xcopy "$CUDA_TOOLKIT_DIR\libcublas-windows-x86_64-${CUBLAS_VER}-archive\*" "$CUDA_TOOLKIT_DIR" /E /I /H /Y868          xcopy "$CUDA_TOOLKIT_DIR\cuda_nvtx-windows-x86_64-${NVTX_VER}-archive\*" "$CUDA_TOOLKIT_DIR" /E /I /H /Y869          xcopy "$CUDA_TOOLKIT_DIR\cuda_nvprof-windows-x86_64-${NVPROF_VER}-archive\*" "$CUDA_TOOLKIT_DIR" /E /I /H /Y870          xcopy "$CUDA_TOOLKIT_DIR\cuda_cccl-windows-x86_64-${CCCL_VER}-archive\*" "$CUDA_TOOLKIT_DIR" /E /I /H /Y871          xcopy "$CUDA_TOOLKIT_DIR\visual_studio_integration-windows-x86_64-${VS_VER}-archive\*" "$CUDA_TOOLKIT_DIR" /E /I /H /Y872 873          # Visual Studio integration874          xcopy "$CUDA_TOOLKIT_DIR\visual_studio_integration-windows-x86_64-${VS_VER}-archive\visual_studio_integration\MSBuildExtensions\*" "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\BuildCustomizations" /E /I /H /Y875 876          # Set environment variables877          echo "$CUDA_TOOLKIT_DIR\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append878          echo "$CUDA_TOOLKIT_DIR\libnvvp" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append879          echo "CUDA_PATH=$CUDA_TOOLKIT_DIR" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8880          echo "CUDA_PATH_V11_8=$CUDA_TOOLKIT_DIR" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8881        882      - name: Install Cuda Toolkit 12.4.0883        if: ${{ matrix.cuda-toolkit == '12.4.0' }}884        run: |885          $CUDA_VERSION = ${{ matrix.cuda-toolkit }}886          $CUDA_TOOLKIT_DIR = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v$CUDA_VERSION"887          $CUDA_DOWNLOAD = "https://developer.download.nvidia.com/compute/cuda/redist"888 889          # Components versions890          $CUDART_VER   = "12.4.127"891          $NVCC_VER     = "12.4.131"892          $NVRTC_VER    = "12.4.127"893          $CUBLAS_VER   = "12.4.5.8"894          $NVTX_VER     = "12.4.127"895          $PROFILER_VER = "12.4.127"896          $VS_VER       = "12.4.127"897          $NVPROF_VER   = "12.4.128"898          $CCCL_VER     = "12.4.127"899 900          # Create the directory where the CUDA Toolkit will be installed901          mkdir -p $CUDA_TOOLKIT_DIR902 903          # Install unzip to extract the downloaded files904          choco install unzip -y905 906          # Download all the required components907          curl -O "$CUDA_DOWNLOAD/cuda_cudart/windows-x86_64/cuda_cudart-windows-x86_64-${CUDART_VER}-archive.zip"908          curl -O "$CUDA_DOWNLOAD/cuda_nvcc/windows-x86_64/cuda_nvcc-windows-x86_64-${NVCC_VER}-archive.zip"909          curl -O "$CUDA_DOWNLOAD/cuda_nvrtc/windows-x86_64/cuda_nvrtc-windows-x86_64-${NVRTC_VER}-archive.zip"910          curl -O "$CUDA_DOWNLOAD/libcublas/windows-x86_64/libcublas-windows-x86_64-${CUBLAS_VER}-archive.zip"911          curl -O "$CUDA_DOWNLOAD/cuda_nvtx/windows-x86_64/cuda_nvtx-windows-x86_64-${NVTX_VER}-archive.zip"912          curl -O "$CUDA_DOWNLOAD/cuda_profiler_api/windows-x86_64/cuda_profiler_api-windows-x86_64-${PROFILER_VER}-archive.zip"913          curl -O "$CUDA_DOWNLOAD/visual_studio_integration/windows-x86_64/visual_studio_integration-windows-x86_64-${VS_VER}-archive.zip"914          curl -O "$CUDA_DOWNLOAD/cuda_nvprof/windows-x86_64/cuda_nvprof-windows-x86_64-${NVPROF_VER}-archive.zip"915          curl -O "$CUDA_DOWNLOAD/cuda_cccl/windows-x86_64/cuda_cccl-windows-x86_64-${CCCL_VER}-archive.zip"916 917          # Extract all the downloaded files to the CUDA Toolkit directory918          unzip -q '*.zip' -d $CUDA_TOOLKIT_DIR919 920          # Copy all the extracted files to the main CUDA Toolkit directory921          xcopy "$CUDA_TOOLKIT_DIR\cuda_cudart-windows-x86_64-${CUDART_VER}-archive\*" "$CUDA_TOOLKIT_DIR" /E /I /H /Y922          xcopy "$CUDA_TOOLKIT_DIR\cuda_nvcc-windows-x86_64-${NVCC_VER}-archive\*"     "$CUDA_TOOLKIT_DIR" /E /I /H /Y923          xcopy "$CUDA_TOOLKIT_DIR\cuda_nvrtc-windows-x86_64-${NVRTC_VER}-archive\*"   "$CUDA_TOOLKIT_DIR" /E /I /H /Y924          xcopy "$CUDA_TOOLKIT_DIR\libcublas-windows-x86_64-${CUBLAS_VER}-archive\*"   "$CUDA_TOOLKIT_DIR" /E /I /H /Y925          xcopy "$CUDA_TOOLKIT_DIR\cuda_nvtx-windows-x86_64-${NVTX_VER}-archive\*"     "$CUDA_TOOLKIT_DIR" /E /I /H /Y926          xcopy "$CUDA_TOOLKIT_DIR\cuda_nvprof-windows-x86_64-${NVPROF_VER}-archive\*" "$CUDA_TOOLKIT_DIR" /E /I /H /Y927          xcopy "$CUDA_TOOLKIT_DIR\cuda_cccl-windows-x86_64-${CCCL_VER}-archive\*" "$CUDA_TOOLKIT_DIR" /E /I /H /Y928          xcopy "$CUDA_TOOLKIT_DIR\cuda_profiler_api-windows-x86_64-${PROFILER_VER}-archive\*" "$CUDA_TOOLKIT_DIR" /E /I /H /Y929          xcopy "$CUDA_TOOLKIT_DIR\visual_studio_integration-windows-x86_64-${VS_VER}-archive\*" "$CUDA_TOOLKIT_DIR" /E /I /H /Y930 931          # Visual Studio integration932          xcopy "$CUDA_TOOLKIT_DIR\visual_studio_integration-windows-x86_64-${VS_VER}-archive\visual_studio_integration\MSBuildExtensions\*" "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v170\BuildCustomizations" /E /I /H /Y933 934          # Set environment variables935          echo "$CUDA_TOOLKIT_DIR\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append936          echo "$CUDA_TOOLKIT_DIR\libnvvp" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append937          echo "CUDA_PATH=$CUDA_TOOLKIT_DIR" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8938          echo "CUDA_PATH_V12_2=$CUDA_TOOLKIT_DIR" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8939 940      - name: Add msbuild to PATH941        uses: microsoft/setup-msbuild@v2942 943      - name: Install 7-Zip944        run: choco install 7zip -y945 946      - name: Fetch SDL2 and set SDL2_DIR947        if: matrix.sdl2 == 'ON'948        run: |949          Invoke-WebRequest -Uri https://github.com/libsdl-org/SDL/releases/download/release-${{ matrix.sdl2_ver }}/SDL2-devel-${{ matrix.sdl2_ver }}-VC.zip -OutFile sdl2.zip950          7z x sdl2.zip951          echo "SDL2_DIR=${{ github.workspace }}\SDL2-${{ matrix.sdl2_ver }}\cmake" | Out-File -FilePath $env:GITHUB_ENV -Append952          echo "${{ github.workspace }}\SDL2-${{ matrix.sdl2_ver }}\cmake" > SDL2_PATH.txt953 954      - name: Install cmake955        run: choco install cmake956 957      - name: Build Project958        shell: cmd959        run: |960          call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"961          cmake --version962          where cmake963          if "${{ matrix.cuda-toolkit }}" == "11.8.0" (964            set CUDA_FLAGS=-allow-unsupported-compiler -D_ALLOW_COMPILER_AND_STL_VERSION_MISMATCH -D_DISABLE_CONSTEXPR_MUTEX_CONSTRUCTOR965          ) else (966            set CUDA_FLAGS=967          )968          cmake -S . -B build -G "Ninja Multi-Config" ^969            -DCMAKE_BUILD_TYPE=${{ matrix.build }} ^970            -DGGML_CUDA=${{ matrix.cublas }} ^971            -DWHISPER_SDL2=${{ matrix.sdl2 }} ^972            -DSDL2_DIR="%SDL2_DIR%" ^973            -DCMAKE_POLICY_VERSION_MINIMUM=3.5 ^974            -DCMAKE_CUDA_FLAGS="%CUDA_FLAGS%"975          set /A NINJA_JOBS=%NUMBER_OF_PROCESSORS%-1976          cmake --build build --config ${{ matrix.build }} -j %NUMBER_OF_PROCESSORS%977 978      - name: Check sccache status after build979        run: |980          sccache --show-stats981 982      - name: Copy CUDA DLLs983        run: |984          Get-ChildItem "$env:CUDA_PATH\bin\" -Filter "*.dll" |985          Copy-Item -Destination "build/bin/${{ matrix.build }}"986 987      - name: Copy SDL2.dll988        if: matrix.sdl2 == 'ON'989        run: copy "$env:SDL2_DIR/../lib/${{ matrix.arch }}/SDL2.dll" build/bin/${{ matrix.build }}990 991      - name: Pack bin artifacts992        shell: pwsh993        run: |994              Compress-Archive -Path "build/bin/${{ matrix.build }}" -DestinationPath "whisper-cublas-${{ matrix.cuda-toolkit }}-bin-${{ matrix.arch }}.zip"995 996      - name: Upload binaries997        if: ${{ needs.determine-tag.outputs.should_release }}998        uses: actions/upload-artifact@v4999        with:1000          name: whisper-cublas-${{ matrix.cuda-toolkit }}-bin-${{ matrix.arch }}.zip1001          path: whisper-cublas-${{ matrix.cuda-toolkit }}-bin-${{ matrix.arch }}.zip1002 1003  emscripten:1004    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||1005            github.event.inputs.run_type == 'full-ci' }}1006    runs-on: ubuntu-22.041007 1008    strategy:1009      matrix:1010        build: [Release]1011 1012    steps:1013      - name: Clone1014        uses: actions/checkout@v41015 1016      - name: Setup emsdk1017        uses: mymindstorm/setup-emsdk@v141018 1019      - name: Verify1020        run: emcc -v1021 1022      - name: Build1023        run: |1024          emcmake cmake . -DCMAKE_BUILD_TYPE=${{ matrix.build }}1025          make1026 1027  ios-xcode-build:1028    runs-on: macos-latest1029    needs: determine-tag1030 1031    strategy:1032      matrix:1033        build: [Release]1034 1035    steps:1036      - name: Checkout code1037        uses: actions/checkout@v41038 1039      - name: Configure1040        run: |1041          cp models/for-tests-ggml-base.en.bin models/ggml-base.en.bin1042          mkdir models/ggml-base.en-encoder.mlmodelc1043 1044      - name: Build1045        id: cmake_build1046        run: |1047          sysctl -a1048          mkdir build1049          cd build1050          cmake -G Xcode .. \1051            -DGGML_METAL_USE_BF16=ON \1052            -DGGML_METAL_EMBED_LIBRARY=ON \1053            -DWHISPER_BUILD_EXAMPLES=OFF \1054            -DWHISPER_BUILD_TESTS=OFF \1055            -DWHISPER_BUILD_SERVER=OFF \1056            -DCMAKE_SYSTEM_NAME=iOS \1057            -DCMAKE_OSX_DEPLOYMENT_TARGET=14.0 \1058            -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml1059          cmake --build . --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO1060 1061      - name: xcodebuild for swift package1062        id: xcodebuild1063        run: |1064          ./build-xcframework.sh1065 1066      - name: Build objc example1067        run: xcodebuild -project examples/whisper.objc/whisper.objc.xcodeproj -scheme whisper.objc -configuration ${{ matrix.build }} -sdk iphoneos CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO FRAMEWORK_FOLDER_PATH=./build-ios build1068 1069      - name: Build swiftui example1070        run: xcodebuild -project examples/whisper.swiftui/whisper.swiftui.xcodeproj -scheme WhisperCppDemo -configuration ${{ matrix.build }} -sdk iphoneos CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= -destination 'generic/platform=iOS' FRAMEWORK_FOLDER_PATH=./build-ios build1071 1072      - name: Pack artifacts1073        id: pack_artifacts1074        run: |1075          zip --symlinks -r whisper-${{ needs.determine-tag.outputs.tag_name }}-xcframework.zip build-apple/whisper.xcframework1076 1077      - name: Upload artifacts1078        if: ${{ needs.determine-tag.outputs.should_release }}1079        uses: actions/upload-artifact@v41080        with:1081          path: whisper-${{ needs.determine-tag.outputs.tag_name }}-xcframework.zip1082          name: whisper-${{ needs.determine-tag.outputs.tag_name }}-xcframework.zip1083 1084  android:1085    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||1086            github.event.inputs.run_type == 'full-ci' }}1087    runs-on: ubuntu-22.041088 1089    steps:1090      - name: Clone1091        uses: actions/checkout@v41092        with:1093          path: whisper1094 1095      - name: Install Java1096        uses: actions/setup-java@v41097        with:1098          distribution: zulu1099          java-version: 211100 1101      - name: Setup Android SDK1102        uses: android-actions/setup-android@v31103 1104      - name: Build1105        run: |1106          cd whisper/examples/whisper.android1107          ./gradlew assembleRelease --no-daemon1108 1109      - name: Build with external ggml1110        run: |1111          export PATH_TO_GGML=$PWD/ggml1112          cd whisper/examples/whisper.android1113          ./gradlew assembleRelease --no-daemon1114 1115  android_java:1116    runs-on: ubuntu-22.041117 1118    steps:1119      - name: Clone1120        uses: actions/checkout@v41121 1122      - name: set up JDK 111123        uses: actions/setup-java@v41124        with:1125          java-version: '11'1126          distribution: 'temurin'1127          cache: gradle1128 1129      - name: Setup Android SDK1130        uses: android-actions/setup-android@v31131        with:1132          cmdline-tools-version: 9.01133 1134      - name: Build1135        run: |1136          cd examples/whisper.android.java1137          chmod +x ./gradlew1138          ./gradlew assembleRelease1139 1140  bindings-java:1141    if: ${{ github.event_name == 'push' || github.event_name == 'pull_request' ||1142            github.event.inputs.run_type == 'full-ci' }}1143    needs: ['windows']1144    runs-on: windows-latest1145    steps:1146      - uses: actions/checkout@v41147 1148      - name: Install Java1149        uses: actions/setup-java@v41150        with:1151          distribution: zulu1152          java-version: 201153 1154      - name: Download Whisper Windows lib1155        uses: actions/download-artifact@v41156        with:1157          name: whisper_x64.dll1158 1159      - name: Download GGML Windows lib1160        uses: actions/download-artifact@v41161        with:1162          name: ggml_x64.dll1163 1164      - name: Download GGML Base Windows lib1165        uses: actions/download-artifact@v41166        with:1167          name: ggml_base_x64.dll1168 1169      - name: Download GGML CPU Windows lib1170        uses: actions/download-artifact@v41171        with:1172          name: ggml_cpu_x64.dll1173 1174      - name: Download SDL2.dll1175        uses: actions/download-artifact@v41176        with:1177          name: x64_SDL2.dll1178 1179      - name: List downloaded files1180        shell: pwsh1181        run: |1182          Get-ChildItem -Path "." -Recurse -Filter "*.dll"1183 1184      - name: Move DLL to correct location1185        shell: pwsh1186        run: |1187          New-Item -Path "build\bin\Release" -ItemType Directory -Force1188 1189          Copy-Item -Path "whisper.dll" -Destination "build\bin\Release\whisper.dll" -Force1190          Write-Host "Copied whisper.dll to build\bin\Release\whisper.dll directory"1191 1192          Copy-Item -Path "ggml.dll" -Destination "build\bin\Release\ggml.dll" -Force1193          Write-Host "Copied ggml.dll to build\bin\Release\ggml.dll directory"1194 1195          Copy-Item -Path "ggml-base.dll" -Destination "build\bin\Release\ggml-base.dll" -Force1196          Write-Host "Copied ggml-base.dll to build\bin\Release\ggml-base.dll directory"1197 1198          Copy-Item -Path "ggml-cpu.dll" -Destination "build\bin\Release\ggml-cpu.dll" -Force1199          Write-Host "Copied ggml-cpu.dll to build\bin\Release\ggml-cpu.dll directory"1200 

Showing the first 1,200 of 1371 lines. Download the file for the rest.