Initial commit #1
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: CI | |
on: | |
push: | |
branches: | |
- main | |
- develop | |
pull_request: | |
branches: | |
- main | |
- develop | |
workflow_dispatch: | |
jobs: | |
build_and_test: | |
name: Test plugin on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false # show all errors for each platform (vs. cancel jobs on error) | |
matrix: | |
include: | |
- os: ubuntu-22.04 | |
cmake_args: "-DCMAKE_CXX_COMPILER=g++-11" | |
- os: windows-2022 | |
cmake_gen: -G"Ninja Multi-Config" | |
cmake_args: -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl | |
- os: macos-13 | |
cmake_args: "-DCMAKE_BUILD_TYPE=Release" | |
steps: | |
- name: Install Linux Deps | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update | |
sudo apt install libasound2-dev libcurl4-openssl-dev libx11-dev libxinerama-dev libxext-dev libfreetype6-dev libwebkit2gtk-4.0-dev libglu1-mesa-dev libjack-jackd2-dev | |
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9 | |
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9 | |
- name: Set Xcode version | |
if: runner.os == 'MacOS' | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '15.2' | |
- name: Install Ninja | |
if: runner.os == 'Windows' | |
uses: seanmiddleditch/gha-setup-ninja@master | |
- name: Add msbuild to PATH | |
if: runner.os == 'Windows' | |
uses: microsoft/setup-msbuild@v2 | |
- name: Setup MSVC devcmd | |
if: runner.os == 'Windows' | |
uses: ilammy/msvc-dev-cmd@v1 | |
- name: Get latest CMake | |
uses: lukka/get-cmake@latest | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Fetch submodules # only on Linux, since setup script will do this otherwsie | |
if: runner.os == 'Linux' | |
run: git submodule update --init --recursive | |
- name: Run setup script | |
if: runner.os != 'Linux' | |
run: | | |
git config --global user.email "[email protected]" | |
git config --global user.name "Jatin Chowdhury" | |
bash setup.sh MyPlugin Tst2 | |
- name: Configure | |
shell: bash | |
run: cmake -Bbuild ${{ matrix.cmake_args }} ${{ matrix.cmake_gen }} | |
- name: Build | |
shell: bash | |
run: cmake --build build --config Release --parallel 4 | |
- name: Validate | |
if: runner.os == 'Windows' | |
run: bash scripts/validate.sh |