name: Build on: push: branches-ignore: - staging.tmp - trying.tmp - staging-squash-merge.tmp pull_request: jobs: build-cmake: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest, macOS-latest, windows-latest, ubuntu-20.04] include: - os: ubuntu-latest cmake-args: -G Ninja package-file: "*-linux_x86_64.tar.xz" fancy: true env: CFLAGS: -Wdeclaration-after-statement -Werror CXXFLAGS: -Werror - os: ubuntu-20.04 cmake-path: /usr/bin/ cmake-args: -G Ninja -DTEST_MYSQL=ON package-file: "*-linux_x86_64.tar.xz" fancy: false env: CFLAGS: -Wdeclaration-after-statement -Werror CXXFLAGS: -Werror GTEST_FILTER: -*SQLite* - os: macOS-latest cmake-args: -G Ninja package-file: "*-macos.dmg" fancy: false env: CFLAGS: -Wdeclaration-after-statement -Werror CXXFLAGS: -Werror - os: windows-latest cmake-args: -A x64 package-file: "*-win64.zip" fancy: false env: CFLAGS: /WX CXXFLAGS: /WX LDFLAGS: /WX steps: - uses: actions/checkout@v2 with: submodules: true - name: Prepare Linux if: contains(matrix.os, 'ubuntu') run: | sudo apt-get update -y sudo apt-get upgrade -y sudo apt-get install pkg-config cmake ninja-build libfreetype6-dev libnotify-dev libsdl2-dev libsqlite3-dev libvulkan-dev glslang-tools spirv-tools libavcodec-dev libavformat-dev libavutil-dev libswresample-dev libswscale-dev libx264-dev libpng-dev valgrind -y - name: Prepare Linux (non-fancy) if: ${{ contains(matrix.os, 'ubuntu') && !matrix.fancy }} run: | sudo rm -rf /var/lib/mysql/ /var/run/mysqld sudo mkdir /var/lib/mysql/ /var/run/mysqld/ sudo chown mysql:mysql /var/lib/mysql/ /var/run/mysqld/ sudo mysqld --initialize-insecure --user=mysql --basedir=/usr --datadir=/var/lib/mysql/ sudo /usr/bin/mysqld_safe --basedir=/usr --datadir='/var/lib/mysql/' & sleep 10 sudo mysql <