cmake.yml (1949B)
1 name: CI 2 3 on: 4 push: 5 branches: 6 - master 7 - develop 8 paths: 9 - 'Plugin/**' 10 pull_request: 11 branches: 12 - master 13 - develop 14 15 workflow_dispatch: 16 17 jobs: 18 build_and_test: 19 if: contains(toJson(github.event.commits), '***NO_CI***') == false && contains(toJson(github.event.commits), '[ci skip]') == false && contains(toJson(github.event.commits), '[skip ci]') == false 20 name: Test plugin on ${{ matrix.os }} 21 runs-on: ${{ matrix.os }} 22 strategy: 23 fail-fast: false # show all errors for each platform (vs. cancel jobs on error) 24 matrix: 25 os: [ubuntu-latest, windows-2019, macOS-latest] 26 27 steps: 28 - name: Install Linux Deps 29 if: runner.os == 'Linux' 30 run: | 31 sudo apt-get update 32 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 lv2-dev 33 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9 34 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9 35 36 - name: Get latest CMake 37 uses: lukka/get-cmake@latest 38 39 - name: Checkout code 40 uses: actions/checkout@v2 41 with: 42 submodules: recursive 43 44 # - name: Setup debug session 45 # if: runner.os == 'Linux' 46 # uses: mxschmitt/action-tmate@v3 47 48 - name: Configure 49 shell: bash 50 working-directory: ${{github.workspace}}/Plugin 51 run: cmake -Bbuild -DBUILD_HEADLESS=ON -DCMAKE_BUILD_TYPE=Release 52 53 - name: Build 54 shell: bash 55 working-directory: ${{github.workspace}}/Plugin 56 run: cmake --build build --config Release --parallel 4 57 58 - name: Unit Tests 59 shell: bash 60 working-directory: ${{github.workspace}}/Plugin 61 run: build/ChowTapeModel --unit-tests --all 62 63 - name: Pluginval 64 if: runner.os == 'Windows' || runner.os == 'MacOS' 65 run: bash Scripts/validate.sh