From 6cdf2ae2df341916c71de13e225b22a7af818ebb Mon Sep 17 00:00:00 2001 From: David Capello Date: Mon, 10 Jun 2024 12:20:16 -0300 Subject: [PATCH] [ci] Change jobs matrix Compile with ENABLE_UI=ON/OFF (gui/cli) and ENABLE_SCRIPTING=ON/OFF (lua/noscripts) variants on all platforms. --- .github/workflows/build.yml | 77 +++++++++++++++++++++++++++++-------- 1 file changed, 61 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9038845be..1669a51f6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,20 +8,47 @@ jobs: 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 + ui: [gui, cli] + scripting: [lua, noscripts] + exclude: + - build_type: Debug + ui: gui + - build_type: RelWithDebInfo + ui: cli + - build_type: RelWithDebInfo + scripting: noscripts steps: - uses: actions/checkout@v4 with: submodules: 'recursive' + - name: Install Dependencies + if: runner.os == 'Linux' + shell: bash + run: | + sudo apt-get update -qq + sudo apt-get install -y \ + libpixman-1-dev libfreetype6-dev libharfbuzz-dev zlib1g-dev \ + libx11-dev libxcursor-dev libxi-dev libgl1-mesa-dev + - name: Install Skia + if: ${{ matrix.ui == 'gui' }} + shell: bash + run: | + if [[ "${{ runner.os }}" == "Windows" ]] ; then + choco install wget -y --no-progress + wget https://github.com/aseprite/skia/releases/download/m102-861e4743af/Skia-Windows-Release-x64.zip + unzip Skia-Windows-Release-x64.zip -d skia + elif [[ "${{ runner.os }}" == "macOS" ]] ; then + wget https://github.com/aseprite/skia/releases/download/m102-861e4743af/Skia-macOS-Release-arm64.zip + unzip Skia-macOS-Release-arm64.zip -d skia + else + wget https://github.com/aseprite/skia/releases/download/m102-861e4743af/Skia-Linux-Release-x64-libstdc++.zip + unzip Skia-Linux-Release-x64-libstdc++.zip -d skia + fi - name: ccache uses: hendrikmuhs/ccache-action@v1 if: ${{ runner.os == 'Linux' || runner.os == 'macOS' }} with: - key: ${{ matrix.os }}-${{ matrix.enable_ui }}-${{ matrix.build_type }} + key: ${{ matrix.os }}-${{ matrix.ui }}-${{ matrix.scripting }}-${{ matrix.build_type }} - uses: aseprite/get-ninja@main - uses: ilammy/msvc-dev-cmd@v1 if: runner.os == 'Windows' @@ -29,14 +56,6 @@ jobs: if: runner.os == 'Windows' shell: bash run: rm -rf C:/Strawberry/ - - 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: | @@ -45,12 +64,37 @@ jobs: else export enable_ccache=on fi + + if [[ "${{ matrix.ui }}" == "gui" ]] ; then + export enable_ui=on + export laf_backend=skia + else + export enable_ui=off + export laf_backend=none + fi + + if [[ "${{ matrix.scripting }}" == "lua" ]] ; then + export enable_scripting=on + else + export enable_scripting=off + fi + + if [[ "${{ runner.os }}" == "macOS" ]] ; then + export skia_arch=arm64 + else + export skia_arch=x64 + 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 + -DENABLE_UI=$enable_ui \ + -DENABLE_SCRIPTING=$enable_scripting \ + -DENABLE_CCACHE=$enable_ccache \ + -DLAF_BACKEND=$laf_backend \ + -DSKIA_DIR=skia \ + -DSKIA_LIBRARY_DIR=skia/out/Release-$skia_arch - name: Compiling shell: bash run: | @@ -63,6 +107,7 @@ jobs: fi cd build && $XVFB ctest --output-on-failure - name: Running CLI Tests + if: ${{ matrix.scripting == 'lua' }} shell: bash run: | if [[ "${{ runner.os }}" == "Linux" ]] ; then