Build/release #74
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build/release | |
| on: | |
| push: | |
| tags: | |
| - 'v*' | |
| jobs: | |
| release: | |
| runs-on: ${{ matrix.os }} | |
| env: | |
| ELECTRON_BUILDER_HTTP_TIMEOUT: 6000000 | |
| ELECTRON_MIRROR: 'https://npmmirror.com/mirrors/electron/' | |
| GH_TOKEN: ${{ secrets.TOKEN }} | |
| strategy: | |
| matrix: | |
| include: | |
| # macOS ARM64 | |
| - os: macos-latest | |
| arch: arm64 | |
| addon_name: addon-macos-arm64.node | |
| build_args: '--arm64' | |
| is_primary_builder: true | |
| # macOS Intel | |
| - os: macos-13 | |
| arch: x64 | |
| addon_name: addon-macos-x64.node | |
| build_args: '--x64' | |
| is_primary_builder: false | |
| # Windows no-cuda | |
| - os: windows-2019 | |
| arch: x64 | |
| addon_name: addon-windows-no-cuda.node | |
| cuda_version: no-cuda | |
| cuda_opt: generic | |
| is_primary_builder: false | |
| # Windows CUDA 11.8.0 optimized | |
| - os: windows-2019 | |
| arch: x64 | |
| addon_name: addon-windows-cuda-1180-optimized.node | |
| cuda_version: 11.8.0 | |
| cuda_opt: optimized | |
| is_primary_builder: false | |
| # Windows CUDA 11.8.0 generic | |
| - os: windows-2019 | |
| arch: x64 | |
| addon_name: addon-windows-cuda-1180-generic.node | |
| cuda_version: 11.8.0 | |
| cuda_opt: generic | |
| is_primary_builder: false | |
| # Windows CUDA 12.2.0 optimized | |
| - os: windows-2019 | |
| arch: x64 | |
| addon_name: addon-windows-cuda-1220-optimized.node | |
| cuda_version: 12.2.0 | |
| cuda_opt: optimized | |
| is_primary_builder: false | |
| # Windows CUDA 12.2.0 generic | |
| - os: windows-2019 | |
| arch: x64 | |
| addon_name: addon-windows-cuda-1220-generic.node | |
| cuda_version: 12.2.0 | |
| cuda_opt: generic | |
| is_primary_builder: false | |
| # Windows CUDA 12.4.1 optimized | |
| - os: windows-2019 | |
| arch: x64 | |
| addon_name: addon-windows-cuda-1241-optimized.node | |
| cuda_version: 12.4.1 | |
| cuda_opt: optimized | |
| is_primary_builder: false | |
| # Windows CUDA 12.4.1 generic | |
| - os: windows-2019 | |
| arch: x64 | |
| addon_name: addon-windows-cuda-1241-generic.node | |
| cuda_version: 12.4.1 | |
| cuda_opt: generic | |
| is_primary_builder: false | |
| steps: | |
| - name: Check out Git repository | |
| uses: actions/checkout@v3 | |
| - name: Install Node.js, NPM and Yarn | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 20.14.0 | |
| # 下载对应的 addon | |
| - name: Download addon from whisper.cpp repo | |
| shell: bash # 指定使用 bash shell | |
| run: | | |
| mkdir -p temp-artifacts | |
| curl -L -o "temp-artifacts/${{ matrix.addon_name }}" \ | |
| "https://github.com/buxuku/whisper.cpp/releases/download/latest/${{ matrix.addon_name }}" | |
| curl -L -o "temp-artifacts/addon-windows-no-cuda.node" \ | |
| "https://github.com/buxuku/whisper.cpp/releases/download/latest/addon-windows-no-cuda.node" | |
| curl -L -o "temp-artifacts/addon-macos-arm64-coreml.node" \ | |
| "https://github.com/buxuku/whisper.cpp/releases/download/latest/addon-macos-arm64-coreml.node" | |
| # 准备 macOS 构建 | |
| - name: Prepare macOS addon | |
| if: startsWith(matrix.os, 'macos') | |
| env: | |
| BUILD_PLATFORM: 'darwin' | |
| BUILD_ARCH: '${{ matrix.arch }}' | |
| run: | | |
| cp temp-artifacts/${{ matrix.addon_name }} extraResources/addons/addon.node | |
| cp temp-artifacts/addon-macos-arm64-coreml.node extraResources/addons/addon.coreml.node | |
| # 更新 package.json 添加构建信息 | |
| node scripts/inject-build-info.js | |
| # 准备 Windows 构建 | |
| - name: Prepare Windows addon | |
| if: matrix.os == 'windows-2019' | |
| env: | |
| BUILD_PLATFORM: 'win32' | |
| BUILD_ARCH: '${{ matrix.arch }}' | |
| CUDA_VERSION: '${{ matrix.cuda_version }}' | |
| CUDA_OPT: '${{ matrix.cuda_opt }}' | |
| run: | | |
| Copy-Item -Path "temp-artifacts/${{ matrix.addon_name }}" -Destination "extraResources/addons/addon.node" | |
| Copy-Item -Path "temp-artifacts/addon-windows-no-cuda.node" -Destination "extraResources/addons/addon-no-cuda.node" | |
| # 更新 package.json 添加构建信息 | |
| node scripts/inject-build-info.js | |
| # 构建应用程序 | |
| - name: Build/release Electron app - macOS | |
| uses: samuelmeuli/action-electron-builder@v1.6.0 | |
| if: startsWith(matrix.os, 'macos') | |
| with: | |
| args: ${{ matrix.build_args }} | |
| github_token: ${{ secrets.TOKEN }} | |
| release: ${{ startsWith(github.ref, 'refs/tags/v') && matrix.is_primary_builder == true }} | |
| - name: Build/release Electron app - Windows | |
| uses: samuelmeuli/action-electron-builder@v1.6.0 | |
| if: matrix.os == 'windows-2019' | |
| env: | |
| CUDA_VERSION: ${{ matrix.cuda_version }} | |
| CUDA_OPT: ${{ matrix.cuda_opt }} | |
| with: | |
| github_token: ${{ secrets.TOKEN }} | |
| release: false | |
| max_attempts: 5 |