From 04b9508fb3bb4556763f6addf3e53a6edabdef4b Mon Sep 17 00:00:00 2001 From: Daniel Bevenius Date: Tue, 1 Apr 2025 17:04:32 +0200 Subject: [PATCH] ci : add coreml job that converts base.en to coreml [no ci] (#2981) * ci : add coreml job that converts base.en to coreml [no ci] This commit adds a new job to the CI pipeline that downloads the base.en model and converts it to CoreML format. The CoreML model is then packed into a zip file and uploaded as an artifact. This will only be done for pushes to master, releases, or pre-releases. Refs: https://github.com/ggerganov/whisper.cpp/issues/2783 * coreml : remove publishing of coreml model * ci : add GGML_OPENMP=OFF to ubuntu-22-gcc-sanitized --- .github/workflows/build.yml | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2b202ec0..1d30660b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -367,7 +367,9 @@ jobs: set -e apt update apt install -y build-essential cmake git - cmake . -DCMAKE_BUILD_TYPE=Debug -DWHISPER_SANITIZE_${{ matrix.sanitizer }}=ON + cmake . -DCMAKE_BUILD_TYPE=Debug \ + -DWHISPER_SANITIZE_${{ matrix.sanitizer }}=ON \ + -DGGML_OPENMP=OFF make ctest -L gh --output-on-failure' @@ -1119,3 +1121,31 @@ jobs: }); } } + + coreml-base-en: + if: ${{ (github.event_name == 'push' && github.ref == 'refs/heads/master') || + github.event.inputs.create_release == 'true' || + github.event.inputs.pre_release_tag != '' }} + runs-on: macos-latest + needs: determine-tag + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set environment variables + id: set_vars + run: | + echo "MODEL_NAME=base.en" >> $GITHUB_ENV + echo "GEN_MODEL_NAME=whisper-${{ needs.determine-tag.outputs.tag_name }}-ggml-base.en-encoder.mlmodelc" >> $GITHUB_ENV + + - name: Download model + run: | + ./models/download-ggml-model.sh ${{ env.MODEL_NAME }} + + - name: Generate CoreML model + run: | + python3.11 -m venv venv + source venv/bin/activate + pip install ane_transformers openai-whisper coremltools + ./models/generate-coreml-model.sh ${{ env.MODEL_NAME }}