diff --git a/.github/workflows/build-and-test-linux.yaml b/.github/workflows/build-and-test-linux.yaml index b95caddc8..8a096f0d8 100644 --- a/.github/workflows/build-and-test-linux.yaml +++ b/.github/workflows/build-and-test-linux.yaml @@ -12,9 +12,11 @@ on: paths-ignore: - web/** - doc/** + concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true + jobs: build: strategy: @@ -22,59 +24,12 @@ jobs: os: - ubuntu-20.04 - ubuntu-22.04 + - ubuntu-24.04 x11: [ON, OFF] wayland: [ON, OFF] compiler: - clang - gcc - compiler_version: - - 9 - - 10 - - 11 - - 12 - - 13 - - 14 - - 15 - exclude: - # 9 only exists for gcc - - compiler: clang - compiler_version: 9 - - # 13, 14, 15 only exist for clang - - compiler: gcc - compiler_version: 13 - - compiler: gcc - compiler_version: 14 - - compiler: gcc - compiler_version: 15 - - # ubuntu-20.04 - - os: ubuntu-20.04 - compiler: gcc - compiler_version: 11 - - os: ubuntu-20.04 - compiler: gcc - compiler_version: 12 - - os: ubuntu-20.04 - compiler: clang - compiler_version: 13 - - os: ubuntu-20.04 - compiler: clang - compiler_version: 14 - - os: ubuntu-20.04 - compiler: clang - compiler_version: 15 - - # ubuntu-22.04 - - os: ubuntu-22.04 - compiler: clang - compiler_version: 10 - - os: ubuntu-22.04 - compiler: clang - compiler_version: 11 - - os: ubuntu-22.04 - compiler: clang - compiler_version: 12 runs-on: ${{ matrix.os }} steps: - run: sudo apt-get -qq update @@ -115,22 +70,29 @@ jobs: ncurses-dev \ ninja-build \ wayland-protocols - - name: Install libc++ + - name: Install clang and libc++ if: matrix.compiler == 'clang' run: | sudo apt-get install -yqq --no-install-recommends \ - libc++-${{ matrix.compiler_version }}-dev \ - libc++abi-${{ matrix.compiler_version }}-dev + clang \ + libc++-dev \ + libc++abi-dev + - name: Install gcc + if: matrix.compiler == 'gcc' + run: | + sudo apt-get install -yqq --no-install-recommends \ + gcc \ + g++ - name: Checkout uses: actions/checkout@v4 - name: Configure with CMake run: | set -x # show the commands we're running - [[ "${{ matrix.compiler }}" == "clang"* ]] && CC=clang-${{ matrix.compiler_version }} - [[ "${{ matrix.compiler }}" == "clang"* ]] && CXX=clang++-${{ matrix.compiler_version }} + [[ "${{ matrix.compiler }}" == "clang"* ]] && CC=clang + [[ "${{ matrix.compiler }}" == "clang"* ]] && CXX=clang++ - [[ "${{ matrix.compiler }}" == "gcc"* ]] && CC=gcc-${{ matrix.compiler_version }} - [[ "${{ matrix.compiler }}" == "gcc"* ]] && CXX=g++-${{ matrix.compiler_version }} + [[ "${{ matrix.compiler }}" == "gcc"* ]] && CC=gcc + [[ "${{ matrix.compiler }}" == "gcc"* ]] && CXX=g++ # Enable librsvg by default, disable for older versions of Ubuntu diff --git a/.github/workflows/publish-appimage.yml b/.github/workflows/publish-appimage.yml index 6c9f8fe0a..92d4360c5 100644 --- a/.github/workflows/publish-appimage.yml +++ b/.github/workflows/publish-appimage.yml @@ -25,6 +25,7 @@ jobs: os: - ubuntu-20.04 - ubuntu-22.04 + - ubuntu-24.04 arch: - x86_64 permissions: @@ -69,14 +70,17 @@ jobs: ncurses-dev \ ninja-build \ pandoc \ - python3 \ - wayland-protocols \ - && - pip3 install --upgrade pyyaml + wayland-protocols - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 + - uses: actions/setup-python@v5 + with: + python-version: '3.12' + cache: 'pip' # caching pip dependencies + cache-dependency-path: 'requirements-dev.txt' + - run: pip install -r requirements-dev.txt - name: Import GPG Deploy Key # only run on main branch if: github.ref == 'refs/heads/main' @@ -91,6 +95,10 @@ jobs: if: matrix.os == 'ubuntu-22.04' run: | echo "CLANG_VERSION=15" | tee -a $GITHUB_ENV + - name: Set clang version to 18 for ubuntu-24.04 + if: matrix.os == 'ubuntu-24.04' + run: | + echo "CLANG_VERSION=18" | tee -a $GITHUB_ENV - name: Install libc++, set CC and CXX env vars run: | sudo apt-get install -yqq --no-install-recommends \ diff --git a/requirements-dev.txt b/requirements-dev.txt new file mode 100644 index 000000000..33afd9222 --- /dev/null +++ b/requirements-dev.txt @@ -0,0 +1,2 @@ +pyyaml +jinja2