-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
329 additions
and
21 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,308 @@ | ||
name: CI Quality Gate | ||
|
||
on: | ||
pull_request: | ||
types: [opened, synchronize, reopened] | ||
workflow_dispatch: | ||
|
||
jobs: | ||
build-and-test: | ||
runs-on: ${{ matrix.runs-on }} | ||
timeout-minutes: 60 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- os: "linux" | ||
name: "amd64-avx2" | ||
runs-on: "ubuntu-20-04" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
run-e2e: true | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: "/tmp/sccache.conf" | ||
|
||
- os: "linux" | ||
name: "amd64-noavx" | ||
runs-on: "ubuntu-20-04" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: "/tmp/sccache.conf" | ||
|
||
- os: "linux" | ||
name: "amd64-avx" | ||
runs-on: "ubuntu-20-04" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_AVX2=OFF -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: "/tmp/sccache.conf" | ||
|
||
- os: "linux" | ||
name: "amd64-avx512" | ||
runs-on: "ubuntu-20-04" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_AVX512=ON -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: "/tmp/sccache.conf" | ||
|
||
- os: "linux" | ||
name: "amd64-vulkan" | ||
runs-on: "ubuntu-20-04-cuda-11-7" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_VULKAN=ON -DGGML_NATIVE=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
run-e2e: false | ||
vulkan: true | ||
sccache: true | ||
sccache-conf-path: "/tmp/sccache.conf" | ||
|
||
- os: "linux" | ||
name: "amd64-avx2-cuda-11-7" | ||
runs-on: "ubuntu-20-04-cuda-11-7" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_NATIVE=OFF -DGGML_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: "/tmp/sccache.conf" | ||
|
||
- os: "linux" | ||
name: "amd64-avx-cuda-11-7" | ||
runs-on: "ubuntu-20-04-cuda-11-7" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_AVX2=OFF -DGGML_NATIVE=OFF -DGGML_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: "/tmp/sccache.conf" | ||
|
||
- os: "linux" | ||
name: "amd64-avx512-cuda-11-7" | ||
runs-on: "ubuntu-20-04-cuda-11-7" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_AVX512=ON -DGGML_NATIVE=OFF -DGGML_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: "/tmp/sccache.conf" | ||
|
||
- os: "linux" | ||
name: "amd64-avx2-cuda-12-0" | ||
runs-on: "ubuntu-20-04-cuda-12-0" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_NATIVE=OFF -DGGML_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: "/tmp/sccache.conf" | ||
|
||
- os: "linux" | ||
name: "amd64-avx-cuda-12-0" | ||
runs-on: "ubuntu-20-04-cuda-12-0" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_AVX2=OFF -DGGML_NATIVE=OFF -DGGML_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: "/tmp/sccache.conf" | ||
|
||
- os: "linux" | ||
name: "amd64-avx512-cuda-12-0" | ||
runs-on: "ubuntu-20-04-cuda-12-0" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_AVX512=ON -DGGML_NATIVE=OFF -DGGML_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_BUILD_TYPE='Release' -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: "/tmp/sccache.conf" | ||
|
||
- os: "mac" | ||
name: "amd64" | ||
runs-on: "macos-13" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DBUILD_SHARED_LIBS=OFF -DGGML_METAL=OFF" | ||
run-e2e: true | ||
vulkan: false | ||
sccache: false | ||
sccache-conf-path: "" | ||
|
||
- os: "mac" | ||
name: "arm64" | ||
runs-on: "macos-silicon" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DBUILD_SHARED_LIBS=OFF -DGGML_METAL_EMBED_LIBRARY=ON" | ||
run-e2e: true | ||
vulkan: false | ||
sccache: false | ||
sccache-conf-path: "" | ||
|
||
- os: "windows" | ||
name: "amd64-avx2" | ||
runs-on: "windows-2019" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER=cl -DCMAKE_C_COMPILER=cl -GNinja" | ||
run-e2e: true | ||
vulkan: false | ||
sccache: false | ||
sccache-conf-path: "" | ||
|
||
- os: "windows" | ||
name: "amd64-avx" | ||
runs-on: "windows-2019" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_AVX2=OFF -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER=cl -DCMAKE_C_COMPILER=cl -GNinja" | ||
run-e2e: true | ||
vulkan: false | ||
sccache: false | ||
sccache-conf-path: "" | ||
|
||
- os: "windows" | ||
name: "amd64-avx512" | ||
runs-on: "windows-2019" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_AVX512=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER=cl -DCMAKE_C_COMPILER=cl -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: false | ||
sccache-conf-path: "" | ||
|
||
- os: "windows" | ||
name: "amd64-vulkan" | ||
runs-on: "windows-2019" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_VULKAN=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER=cl -DCMAKE_C_COMPILER=cl -GNinja" | ||
run-e2e: false | ||
vulkan: true | ||
sccache: false | ||
sccache-conf-path: "" | ||
|
||
- os: "windows" | ||
name: "amd64-avx2-cuda-12-0" | ||
runs-on: "windows-cuda-12-0" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CUDA_COMPILER_LAUNCHER=sccache -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: 'C:\sccache.conf' | ||
|
||
- os: "windows" | ||
name: "amd64-avx-cuda-12-0" | ||
runs-on: "windows-cuda-12-0" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_AVX2=OFF -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CUDA_COMPILER_LAUNCHER=sccache -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: 'C:\sccache.conf' | ||
|
||
- os: "windows" | ||
name: "amd64-avx512-cuda-12-0" | ||
runs-on: "windows-cuda-12-0" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_AVX512=ON -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CUDA_COMPILER_LAUNCHER=sccache -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: 'C:\sccache.conf' | ||
|
||
- os: "windows" | ||
name: "amd64-avx2-cuda-11-7" | ||
runs-on: "windows-cuda-11-7" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CUDA_COMPILER_LAUNCHER=sccache -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: 'C:\sccache.conf' | ||
|
||
- os: "windows" | ||
name: "amd64-avx-cuda-11-7" | ||
runs-on: "windows-cuda-11-7" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_AVX2=OFF -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CUDA_COMPILER_LAUNCHER=sccache -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: 'C:\sccache.conf' | ||
|
||
- os: "windows" | ||
name: "amd64-avx512-cuda-11-7" | ||
runs-on: "windows-cuda-11-7" | ||
cmake-flags: "-DCORTEXAUDIO_VERSION=${{github.event.pull_request.head.sha}} -DGGML_AVX512=ON -DGGML_NATIVE=OFF -DLLAMA_BUILD_SERVER=ON -DGGML_CUDA=ON -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE='Release' -DCMAKE_CXX_COMPILER_LAUNCHER=sccache -DCMAKE_C_COMPILER_LAUNCHER=sccache -DCMAKE_CUDA_COMPILER_LAUNCHER=sccache -GNinja" | ||
run-e2e: false | ||
vulkan: false | ||
sccache: true | ||
sccache-conf-path: 'C:\sccache.conf' | ||
|
||
steps: | ||
- name: Clone | ||
id: checkout | ||
uses: actions/checkout@v3 | ||
with: | ||
submodules: recursive | ||
|
||
- name: Prepare Vulkan SDK | ||
if: ${{ matrix.vulkan }} | ||
uses: humbletim/[email protected] | ||
with: | ||
vulkan-query-version: 1.3.275.0 | ||
vulkan-components: Vulkan-Headers, Vulkan-Loader | ||
vulkan-use-cache: true | ||
|
||
- name: create sccache.conf | ||
if: ${{ matrix.sccache }} | ||
run: | | ||
echo "[cache.s3]" > ${{ matrix.sccache-conf-path }} | ||
echo 'bucket = "${{ secrets.MINIO_BUCKET_NAME }}"' >> ${{ matrix.sccache-conf-path }} | ||
echo 'endpoint = "${{ secrets.MINIO_ENDPOINT }}"' >> ${{ matrix.sccache-conf-path }} | ||
echo 'key_prefix = "${{ matrix.os }}-${{ matrix.name }}"' >> ${{ matrix.sccache-conf-path }} | ||
echo 'use_ssl = false' >> ${{ matrix.sccache-conf-path }} | ||
echo 'server_side_encryption = false' >> ${{ matrix.sccache-conf-path }} | ||
echo 'no_credentials = false' >> ${{ matrix.sccache-conf-path }} | ||
- name: Install choco on Windows | ||
if: runner.os == 'Windows' | ||
run: | | ||
choco install make sccache ninja -y | ||
- name: Install ninja build on Linux | ||
if: runner.os == 'Linux' | ||
run: | | ||
sudo apt install ninja-build -y | ||
- name: Add msbuild to PATH | ||
if: runner.os == 'Windows' | ||
uses: ilammy/[email protected] | ||
|
||
- name: start scache server | ||
if: ${{ matrix.sccache }} | ||
run: | | ||
sccache --start-server | ||
env: | ||
SCCACHE_BUCKET: "${{ secrets.MINIO_BUCKET_NAME }}" | ||
SCCACHE_REGION: "${{ secrets.MINIO_REGION }}" | ||
SCCACHE_ENDPOINT: "${{ secrets.MINIO_ENDPOINT }}" | ||
SCCACHE_S3_USE_SSL: "false" | ||
SCCACHE_S3_SERVER_SIDE_ENCRYPTION: "false" | ||
SCCACHE_S3_KEY_PREFIX: "${{ matrix.os }}-${{ matrix.name }}" | ||
SCCACHE_LOG: "debug" | ||
SCCACHE_CONF: '${{ matrix.sccache-conf-path }}' | ||
AWS_ACCESS_KEY_ID: "${{ secrets.MINIO_ACCESS_KEY_ID }}" | ||
AWS_SECRET_ACCESS_KEY: "${{ secrets.MINIO_SECRET_ACCESS_KEY }}" | ||
SCCACHE_IDLE_TIMEOUT: "0" | ||
|
||
- name: Build | ||
run: | | ||
make build-example-server CMAKE_EXTRA_FLAGS="${{ matrix.cmake-flags }}" | ||
- name: Pre Package | ||
run: | | ||
make pre-package | ||
- name: Package | ||
run: | | ||
make package | ||
- name: Run e2e testing | ||
if: ${{ matrix.run-e2e }} | ||
run: | | ||
make run-e2e-test LLM_MODEL_URL=${{ env.LLM_MODEL_URL }} EMBEDDING_MODEL_URL=${{ env.EMBEDDING_MODEL_URL }} | ||
- name: Upload Artifact | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: cortex.audio-${{ matrix.os }}-${{ matrix.name }} | ||
path: ./cortex.audio | ||
|
||
- name: Clean | ||
if: always() | ||
continue-on-error: true | ||
run: | | ||
sccache --stop-server | ||
rm ${{ matrix.sccache-conf-path }} |
Oops, something went wrong.