Build C++ #60
Workflow file for this run
This file contains 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 C++ | |
on: | |
workflow_dispatch: | |
inputs: | |
whisper_cpp_repo: | |
description: 'whisper.cpp repo link' | |
required: true | |
default: 'ggerganov/whisper.cpp' | |
whisper_cpp_repo_ref: | |
description: 'Tag, branch or commit' | |
required: true | |
default: 'v1.5.0' | |
jobs: | |
build-windows: | |
name: Build for Windows (x86_64) | |
runs-on: windows-latest | |
steps: | |
- name: Clone whisper.unity | |
uses: actions/checkout@v3 | |
with: | |
path: whisper-unity | |
- name: Clone whisper.cpp | |
uses: actions/checkout@v3 | |
with: | |
repository: ${{ github.event.inputs.whisper_cpp_repo }} | |
ref: ${{ github.event.inputs.whisper_cpp_repo_ref }} | |
path: whisper-cpp | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@v1 | |
- name: Run build script | |
run: | | |
cd whisper-unity | |
.\build_cpp.bat cpu ..\whisper-cpp\ | |
cd ${{ github.workspace }}\whisper-cpp\build\bin\Release | |
ren whisper.dll libwhisper.dll | |
- name: Upload results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: windows | |
path: ${{ github.workspace }}/whisper-cpp/build/bin/Release/libwhisper.dll | |
if-no-files-found: error | |
build-windows-cuda: | |
name: Build for Windows (x86_64, CUDA) | |
runs-on: windows-latest | |
steps: | |
- name: Clone whisper.unity | |
uses: actions/checkout@v3 | |
with: | |
path: whisper-unity | |
- name: Clone whisper.cpp | |
uses: actions/checkout@v3 | |
with: | |
repository: ${{ github.event.inputs.whisper_cpp_repo }} | |
ref: ${{ github.event.inputs.whisper_cpp_repo_ref }} | |
path: whisper-cpp | |
- name: Add msbuild to PATH | |
uses: microsoft/setup-msbuild@v1 | |
- name: Install CUDA Toolkit | |
id: cuda-toolkit | |
uses: Jimver/cuda-toolkit@v0.2.11 | |
with: | |
cuda: '12.2.0' | |
- name: Run build script | |
run: | | |
cd whisper-unity | |
.\build_cpp.bat cuda ..\whisper-cpp\ | |
cd ${{ github.workspace }}\whisper-cpp\build\bin\Release | |
ren whisper.dll libwhisper_cuda.dll | |
- name: Upload results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: windows-cuda | |
path: ${{ github.workspace }}/whisper-cpp/build/bin/Release/libwhisper_cuda.dll | |
if-no-files-found: error | |
build-linux: | |
name: Build for Linux (Ubuntu 18.04 x86_64) | |
runs-on: ubuntu-latest | |
container: ubuntu:18.04 | |
steps: | |
- name: Clone whisper.unity | |
uses: actions/checkout@v3 | |
with: | |
path: whisper-unity | |
- name: Clone whisper.cpp | |
uses: actions/checkout@v3 | |
with: | |
repository: ${{ github.event.inputs.whisper_cpp_repo }} | |
ref: ${{ github.event.inputs.whisper_cpp_repo_ref }} | |
path: whisper-cpp | |
- name: Latest Cmake | |
run: | | |
apt-get update \ | |
&& apt-get install -y build-essential \ | |
&& apt-get install -y wget \ | |
&& rm -rf /var/lib/apt/lists/* \ | |
&& wget https://github.com/Kitware/CMake/releases/download/v3.24.1/cmake-3.24.1-Linux-x86_64.sh \ | |
-q -O /tmp/cmake-install.sh \ | |
&& chmod u+x /tmp/cmake-install.sh \ | |
&& mkdir /opt/cmake-3.24.1 \ | |
&& /tmp/cmake-install.sh --skip-license --prefix=/opt/cmake-3.24.1 \ | |
&& rm /tmp/cmake-install.sh \ | |
&& ln -s /opt/cmake-3.24.1/bin/* /usr/local/bin | |
- name: Change gcc and g++ | |
run: | | |
apt-get update | |
apt-get install -y gcc-8 g++-8 | |
- name: Run build script | |
run: | | |
cd whisper-unity | |
sh build_cpp_linux.sh ../whisper-cpp/ cpu | |
env: | |
CC: gcc-8 | |
CXX: g++-8 | |
- name: Upload results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux | |
path: ${{ github.workspace }}/whisper-cpp/build/libwhisper.so | |
if-no-files-found: error | |
build-linux-cuda: | |
name: Build for Linux (Ubuntu 18.04 x86_64, CUDA) | |
runs-on: ubuntu-latest | |
container: ubuntu:18.04 | |
steps: | |
- name: Clone whisper.unity | |
uses: actions/checkout@v3 | |
with: | |
path: whisper-unity | |
- name: Clone whisper.cpp | |
uses: actions/checkout@v3 | |
with: | |
repository: ${{ github.event.inputs.whisper_cpp_repo }} | |
ref: ${{ github.event.inputs.whisper_cpp_repo_ref }} | |
path: whisper-cpp | |
- name: Latest Cmake | |
run: | | |
apt-get update \ | |
&& apt-get install -y build-essential \ | |
&& apt-get install -y wget \ | |
&& apt-get install -y lsb-release \ | |
&& rm -rf /var/lib/apt/lists/* \ | |
&& wget https://github.com/Kitware/CMake/releases/download/v3.24.1/cmake-3.24.1-Linux-x86_64.sh \ | |
-q -O /tmp/cmake-install.sh \ | |
&& chmod u+x /tmp/cmake-install.sh \ | |
&& mkdir /opt/cmake-3.24.1 \ | |
&& /tmp/cmake-install.sh --skip-license --prefix=/opt/cmake-3.24.1 \ | |
&& rm /tmp/cmake-install.sh \ | |
&& ln -s /opt/cmake-3.24.1/bin/* /usr/local/bin | |
- name: Change gcc and g++ | |
run: | | |
apt-get update | |
apt-get install -y gcc-8 g++-8 | |
- name: Install CUDA Toolkit | |
id: cuda-toolkit | |
uses: Jimver/cuda-toolkit@v0.2.11 | |
with: | |
cuda: '12.2.0' | |
method: 'network' | |
- name: Run build script | |
run: | | |
cd whisper-unity | |
sh build_cpp_linux.sh ../whisper-cpp/ cuda | |
cd ${{ github.workspace }}/whisper-cpp/build/ | |
ren libwhisper.so libwhisper_cuda.so | |
env: | |
CC: gcc-8 | |
CXX: g++-8 | |
- name: Upload results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux-cuda | |
path: ${{ github.workspace }}/whisper-cpp/build/libwhisper_cuda.so | |
if-no-files-found: error | |
build-macos: | |
name: Build for MacOS (ARM, x86_64) | |
runs-on: macOS-latest | |
steps: | |
- name: Clone whisper.unity | |
uses: actions/checkout@v3 | |
with: | |
path: whisper-unity | |
- name: Clone whisper.cpp | |
uses: actions/checkout@v3 | |
with: | |
repository: ${{ github.event.inputs.whisper_cpp_repo }} | |
ref: ${{ github.event.inputs.whisper_cpp_repo_ref }} | |
path: whisper-cpp | |
- name: Run build script | |
run: | | |
cd whisper-unity | |
sh build_cpp.sh ../whisper-cpp/ mac | |
- name: Upload results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: macos | |
path: ${{ github.workspace }}/whisper-cpp/build/libwhisper.dylib | |
if-no-files-found: error | |
build-ios: | |
name: Build for iOS | |
runs-on: macOS-latest | |
steps: | |
- name: Clone whisper.unity | |
uses: actions/checkout@v3 | |
with: | |
path: whisper-unity | |
- name: Clone whisper.cpp | |
uses: actions/checkout@v3 | |
with: | |
repository: ${{ github.event.inputs.whisper_cpp_repo }} | |
ref: ${{ github.event.inputs.whisper_cpp_repo_ref }} | |
path: whisper-cpp | |
- name: Run build script | |
run: | | |
cd whisper-unity | |
sh build_cpp.sh ../whisper-cpp/ ios | |
- name: Upload results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ios | |
path: ${{ github.workspace }}/whisper-cpp/build/libwhisper.a | |
if-no-files-found: error | |
build-android: | |
name: Build for Android (arm64-v8a) | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Java | |
uses: actions/setup-java@v3 | |
with: | |
distribution: zulu | |
java-version: 17 | |
- name: Setup Android SDK | |
uses: android-actions/setup-android@v2 | |
- name: Install Android NDK | |
run: | | |
sdkmanager --install "build-tools;33.0.2" | |
sdkmanager --install "cmake;3.22.1" | |
sdkmanager --install "ndk;21.3.6528147" | |
- name: Clone whisper.unity | |
uses: actions/checkout@v3 | |
with: | |
path: whisper-unity | |
- name: Clone whisper.cpp | |
uses: actions/checkout@v3 | |
with: | |
repository: ${{ github.event.inputs.whisper_cpp_repo }} | |
ref: ${{ github.event.inputs.whisper_cpp_repo_ref }} | |
path: whisper-cpp | |
- name: Run build script | |
run: | | |
cd whisper-unity | |
sh build_cpp.sh ../whisper-cpp/ android $ANDROID_HOME/ndk/21.3.6528147/build/cmake/android.toolchain.cmake | |
- name: Upload results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: android | |
path: ${{ github.workspace }}/whisper-cpp/build/libwhisper.a | |
if-no-files-found: error |