Skip to content

Update CMakeLists.txt to include Metal shader library installation fo… #36

Update CMakeLists.txt to include Metal shader library installation fo…

Update CMakeLists.txt to include Metal shader library installation fo… #36

Workflow file for this run

name: "Build"
on:
push:
branches:
- "main"
tags:
- "*"
pull_request:
branches:
- "main"
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}"
cancel-in-progress: "${{ github.ref != 'refs/heads/main' }}"
jobs:
BuildMac:
runs-on: "macos-13"
strategy:
matrix:
config:
- "Release"
architecture: [x86_64, arm64]
defaults:
run:
shell: "bash"
steps:
- name: "Get version"
run: |
if [[ $GITHUB_REF =~ ^refs/tags/ ]]
then version="${GITHUB_REF#refs/tags/}"
else version=main
fi
printf "version=%s" "$version" > "$GITHUB_OUTPUT"
id: "get-version"
- name: "Checkout"
uses: "actions/checkout@v4"
- name: "Run build-macos.sh"
run: "./build-macos.sh ${{ steps.get-version.outputs.version }}"
env:
MACOS_ARCH: ${{ matrix.architecture }}
- name: "Upload artifact"
uses: "actions/upload-artifact@v4"
with:
name: "whispercpp-macos-${{ matrix.architecture }}"
path: "*.tar.gz"
BuildLinux:
if: false
runs-on: "ubuntu-22.04"
strategy:
matrix:
config:
- "Release"
defaults:
run:
shell: "bash"
steps:
- name: "Get version"
run: |
if [[ $GITHUB_REF =~ ^refs/tags/ ]]
then version="${GITHUB_REF#refs/tags/}"
else version=main
fi
printf "version=%s" "$version" > "$GITHUB_OUTPUT"
id: "get-version"
- name: "Checkout"
uses: "actions/checkout@v4"
- name: "Run build-linux.sh"
run: "./build-linux.sh ${{ matrix.config }} ${{ steps.get-version.outputs.version }}"
- uses: "actions/upload-artifact@v4"
with:
name: "whispercpp-linux-${{ matrix.config }}"
path: "*.tar.gz"
BuildWindows:
runs-on: "windows-2022"
strategy:
matrix:
config:
- "Release"
accel: [cpu, cuda, hipblas]
steps:
- name: "Get version"
shell: bash
run: |
if [[ $GITHUB_REF =~ ^refs/tags/ ]]
then version="${GITHUB_REF#refs/tags/}"
else version=main
fi
printf "version=%s" "$version" > "$GITHUB_OUTPUT"
id: "get-version"
- name: "Checkout"
uses: "actions/checkout@v4"
- name: Install CUDA Toolkit
if: ${{ matrix.accel == 'cuda' }}
id: cuda-toolkit
uses: Jimver/[email protected]
with:
cuda: '12.5.0'
sub-packages: '["cudart", "nvcc", "cublas", "cublas_dev", "visual_studio_integration"]'
- name: Set CUDA_TOOLKIT_ROOT_DIR if CUDA is installed
if: ${{ matrix.accel == 'cuda' }}
run: |
"CUDA_TOOLKIT_ROOT_DIR=$env:CUDA_PATH" >> $env:GITHUB_ENV
- name: Install hipBLAS
id: depends-hipblas
if: ${{ matrix.accel == 'hipblas' }}
run: |
$ErrorActionPreference = "Stop"
write-host "Downloading AMD HIP SDK Installer"
Invoke-WebRequest -Uri "https://download.amd.com/developer/eula/rocm-hub/AMD-Software-PRO-Edition-24.Q3-Win10-Win11-For-HIP.exe" -OutFile "${env:RUNNER_TEMP}\rocm-install.exe"
write-host "Installing AMD HIP SDK"
Start-Process "${env:RUNNER_TEMP}\rocm-install.exe" -ArgumentList '-install' -NoNewWindow -Wait
write-host "Completed AMD HIP SDK installation"
- name: Verify ROCm
id: verify-hipblas
if: ${{ matrix.accel == 'hipblas' }}
run: |
& 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' --version
- name: Prepare hipBLAS environment
id: prepare-hipblas
if: ${{ matrix.accel == 'hipblas' }}
run: |
"HIP_PATH=$(Resolve-Path 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' | split-path | split-path)" >> $env:GITHUB_ENV
- name: "Run Build-Windows.ps1"
run: "./Build-Windows.ps1 -Version ${{ steps.get-version.outputs.version }}"
env:
BUILD_WITH_ACCEL: ${{ matrix.accel }}
- uses: "actions/upload-artifact@v4"
with:
name: "whispercpp-windows-${{ matrix.accel }}"
path: "*.zip"
Release:
runs-on: "ubuntu-22.04"
if: "github.event_name == 'push' && contains(github.ref, 'refs/tags/')"
needs:
- "BuildMac"
# - "BuildLinux"
- "BuildWindows"
permissions:
contents: "write"
defaults:
run:
shell: "bash"
steps:
- name: "Get version"
run: |
if [[ $GITHUB_REF =~ ^refs/tags/ ]]
then version="${GITHUB_REF#refs/tags/}"
else version=main
fi
printf "version=%s" "$version" > "$GITHUB_OUTPUT"
id: "get-version"
- name: "Download build artifacts"
uses: "actions/download-artifact@v4"
- name: "Create Release"
uses: "softprops/action-gh-release@1e07f4398721186383de40550babbdf2b84acfc5"
with:
draft: true
tag_name: "${{ steps.get-version.outputs.version }}"
name: "${{ steps.get-version.outputs.version }}"
files: |
${{ github.workspace }}/**/*.tar.gz
${{ github.workspace }}/**/*.zip