name: build on: [push, pull_request] jobs: client: runs-on: ubuntu-20.04 strategy: matrix: cc: [gcc, clang] steps: - uses: actions/checkout@v1 with: submodules: recursive - name: Install client dependencies run: | sudo apt-get install \ binutils-dev libdrm-dev libsdl2-dev libsdl2-ttf-dev \ libspice-protocol-dev nettle-dev wayland-protocols - name: Configure client run: | mkdir client/build cd client/build CC=/usr/bin/${{ matrix.cc }} cmake .. - name: Build client run: | cd client/build make -j$(nproc) module: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 with: submodules: recursive - name: Build kernel module run: | cd module make host-linux: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 with: submodules: recursive - name: Install Linux host dependencies run: | sudo apt-get install binutils-dev libgl1-mesa-dev - name: Configure Linux host run: | mkdir host/build cd host/build cmake .. - name: Build Linux host run: | cd host/build make -j$(nproc) host-windows: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v1 with: submodules: recursive - name: Install Windows host dependencies run: | sudo apt-get install gcc-mingw-w64-x86-64 g++-mingw-w64-x86-64 nsis - name: Configure Windows host run: | mkdir host/build cd host/build cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-mingw64.cmake .. - name: Build Windows host run: | cd host/build make -j$(nproc) - name: Build Windows host installer run: | cd host/build makensis platform/Windows/installer.nsi obs: runs-on: ubuntu-latest strategy: matrix: cc: [gcc, clang] steps: - uses: actions/checkout@v1 with: submodules: recursive - name: Install obs plugin dependencies run: | sudo apt-get install binutils-dev libobs-dev libgl1-mesa-dev - name: Configure obs plugin run: | mkdir obs/build cd obs/build CC=/usr/bin/${{ matrix.cc }} cmake .. - name: Build obs plugin run: | cd obs/build make -j$(nproc)