name: build on: [push, pull_request] jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [windows-latest, macos-latest, ubuntu-latest] build_type: [RelWithDebInfo, Debug] enable_ui: [off] include: - os: ubuntu-latest build_type: Debug enable_ui: on steps: - uses: actions/checkout@v2 with: submodules: 'recursive' - name: ccache uses: hendrikmuhs/ccache-action@v1 if: runner.os == 'Linux' with: key: ${{ matrix.os }}-${{ matrix.enable_ui }} - uses: seanmiddleditch/gha-setup-ninja@master - uses: ilammy/msvc-dev-cmd@v1 if: runner.os == 'Windows' - name: Install Dependencies shell: bash run: | if [[ "${{ runner.os }}" == "Linux" ]] ; then sudo apt-get update -qq sudo apt-get install -y \ libx11-dev libxcursor-dev libxi-dev fi - name: Generating Makefiles shell: bash run: | if [[ "${{ runner.os }}" == "Windows" ]] ; then export enable_ccache=off else export enable_ccache=on fi cmake -S . -B build -G Ninja \ -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 \ -DENABLE_TESTS=ON \ -DENABLE_UI=${{ matrix.enable_ui }} \ -DENABLE_CCACHE=$enable_ccache - name: Compiling shell: bash run: | cd build && ninja - name: Running C++ Tests shell: bash run: | if [[ "${{ runner.os }}" == "Linux" ]] ; then export XVFB=xvfb-run fi cd build && $XVFB ctest --output-on-failure - name: Running CLI Tests shell: bash run: | if [[ "${{ runner.os }}" == "Linux" ]] ; then export XVFB=xvfb-run fi if [[ "${{ github.base_ref }}" == "beta" ]] || [[ "${{ github.ref }}" == "refs/heads/beta" ]] ; then export TESTS_BRANCH=beta else export TESTS_BRANCH=main fi cd build export ASEPRITE=$PWD/bin/aseprite git clone --branch $TESTS_BRANCH --recursive https://github.com/aseprite/tests.git cd tests $XVFB bash run-tests.sh