From ecf1e15feceedcead4c06aacc798f26553d85705 Mon Sep 17 00:00:00 2001
From: Simon McVittie <[EMAIL REDACTED]>
Date: Wed, 4 May 2022 19:31:11 +0100
Subject: [PATCH] workflows: Parallelize Linux Autotools and CMake builds
Signed-off-by: Simon McVittie <smcv@collabora.com>
---
.github/workflows/main.yml | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index c4348abe6ec..717a158e03a 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -17,7 +17,8 @@ jobs:
platform:
- { name: Windows (mingw32), os: windows-latest, shell: 'msys2 {0}', msystem: mingw32, msys-env: mingw-w64-i686 }
- { name: Windows (mingw64), os: windows-latest, shell: 'msys2 {0}', msystem: mingw64, msys-env: mingw-w64-x86_64 }
- - { name: Linux, os: ubuntu-20.04, shell: sh, flags: -GNinja }
+ - { name: Linux (CMake), os: ubuntu-20.04, shell: sh, flags: -GNinja }
+ - { name: Linux (autotools), os: ubuntu-20.04, shell: sh, autotools: 'true' }
- { name: MacOS, os: macos-latest, shell: sh }
steps:
@@ -79,27 +80,30 @@ jobs:
sudo meson install -C build
- uses: actions/checkout@v2
- name: Check that versioning is consistent
- if: runner.os == 'Linux'
+ # We only need to run this once: arbitrarily use the Linux/CMake build
+ if: "runner.os == 'Linux' && ! matrix.platform.autotools"
run: ./test/versioning.sh
- name: Configure CMake
+ if: "! matrix.platform.autotools"
run: cmake -B build -DSDL_TEST=ON -DCMAKE_VERBOSE_MAKEFILE=ON ${{ matrix.platform.flags }}
- name: Build
+ if: "! matrix.platform.autotools"
run: cmake --build build/ --config Release
- name: Run build-time tests
- if: matrix.platform.shell == 'sh'
+ if: "matrix.platform.shell == 'sh' && ! matrix.platform.autotools"
run: |
set -eu
export SDL_TESTS_QUICK=1
ctest -VV --test-dir build/
- name: Install
- if: matrix.platform.shell == 'sh'
+ if: "matrix.platform.shell == 'sh' && ! matrix.platform.autotools"
run: |
set -eu
rm -fr DESTDIR-cmake
DESTDIR=$(pwd)/DESTDIR-cmake cmake --install build/ --config Release
( cd DESTDIR-cmake; find ) | LC_ALL=C sort -u
- name: Configure Autotools
- if: runner.os == 'Linux'
+ if: matrix.platform.autotools
run: |
set -eu
rm -fr build-autotools
@@ -120,14 +124,14 @@ jobs:
${NULL+}
)
- name: Build with Autotools
- if: runner.os == 'Linux'
+ if: matrix.platform.autotools
run: |
set -eu
parallel="$(getconf _NPROCESSORS_ONLN)"
make -j"${parallel}" -C build-autotools V=1
make -j"${parallel}" -C build-autotools/test V=1
- name: Run build-time tests with Autotools
- if: runner.os == 'Linux'
+ if: matrix.platform.autotools
run: |
set -eu
curdir="$(pwd)"
@@ -135,7 +139,7 @@ jobs:
export SDL_TESTS_QUICK=1
make -j"${parallel}" -C build-autotools/test check LD_LIBRARY_PATH="${curdir}/build-autotools/build/.libs"
- name: Install with Autotools
- if: runner.os == 'Linux'
+ if: matrix.platform.autotools
run: |
set -eu
curdir="$(pwd)"