]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
ci: add build job on Ubuntu Jammy with Python 3.7
authorLuca Boccassi <luca.boccassi@gmail.com>
Wed, 6 Aug 2025 11:42:35 +0000 (12:42 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 3 Sep 2025 10:10:48 +0000 (12:10 +0200)
In order to avoid regressions with glibc < 2.39 and Python 3.7

(cherry picked from commit 4f49a6f572043dbc3a302302464fad5ffbd40e01)

.github/workflows/build-test.sh
.github/workflows/build-test.yml

index fd1dd3d57093f722a9ec6d7ef7ea2cc584f36a45..fe27e617840e2d52e55838f9b665cdfb7a274419 100755 (executable)
@@ -125,10 +125,15 @@ fi
 
 # This is added by default, and it is often broken, but we don't need anything from it
 sudo rm -f /etc/apt/sources.list.d/microsoft-prod.{list,sources}
-# add-apt-repository --enable-source does not work on deb822 style sources.
-for f in /etc/apt/sources.list.d/*.sources; do
-    sudo sed -i "s/Types: deb/Types: deb deb-src/g" "$f"
-done
+if grep -q 'VERSION_CODENAME=jammy' /usr/lib/os-release; then
+    sudo add-apt-repository -y --no-update ppa:upstream-systemd-ci/systemd-ci
+    sudo add-apt-repository -y --no-update --enable-source
+else
+    # add-apt-repository --enable-source does not work on deb822 style sources.
+    for f in /etc/apt/sources.list.d/*.sources; do
+        sudo sed -i "s/Types: deb/Types: deb deb-src/g" "$f"
+    done
+fi
 sudo apt-get -y update
 sudo apt-get -y build-dep systemd
 sudo apt-get -y install "${PACKAGES[@]}"
@@ -139,6 +144,11 @@ sudo apt-get -y install "${PACKAGES[@]}"
 pip3 install --user -r .github/workflows/requirements.txt --require-hashes --break-system-packages
 export PATH="$HOME/.local/bin:$PATH"
 
+if [[ -n "$CUSTOM_PYTHON" ]]; then
+    # If CUSTOM_PYTHON is set we need to pull jinja2 from pip, as a local interpreter is used
+    pip3 install --user --break-system-packages jinja2
+fi
+
 $CC --version
 meson --version
 ninja --version
index 0c2b81dc70b11fb572ec22a6c31b3d8ff49ee4c2..50e8299232335aa9dcd8c22d34c68dc78328dede 100644 (file)
@@ -17,22 +17,35 @@ permissions:
 
 jobs:
   build:
-    runs-on: ubuntu-24.04
+    runs-on: ${{ matrix.runner }}
     concurrency:
-      group: ${{ github.workflow }}-${{ toJSON(matrix.env) }}-${{ github.ref }}
+      group: ${{ github.workflow }}-${{ toJSON(matrix.env) }}-${{ github.ref }}-${{ matrix.runner }}-${{ matrix.python-version }}
       cancel-in-progress: true
     strategy:
       fail-fast: false
       matrix:
+        runner: [ ubuntu-24.04 ]
+        python-version: [ '' ]
         env:
           - { COMPILER: "gcc",   COMPILER_VERSION: "11", LINKER: "bfd",  CRYPTOLIB: "gcrypt"  }
           - { COMPILER: "gcc",   COMPILER_VERSION: "13", LINKER: "mold", CRYPTOLIB: "openssl" }
           - { COMPILER: "clang", COMPILER_VERSION: "14", LINKER: "mold", CRYPTOLIB: "gcrypt"  }
           - { COMPILER: "clang", COMPILER_VERSION: "16", LINKER: "bfd",  CRYPTOLIB: "openssl" }
           - { COMPILER: "clang", COMPILER_VERSION: "18", LINKER: "lld",  CRYPTOLIB: "auto"    }
+        include:
+          # Do one run with the oldest supported python version to ensure there are no regressions
+          # It is only available on Jammy, which is useful as it will also provide a build check for
+          # older glibc
+          - env: { COMPILER: "gcc",   COMPILER_VERSION: "12", LINKER: "bfd", CRYPTOLIB: "openssl", CUSTOM_PYTHON: "1"  }
+            runner: [ ubuntu-22.04 ]
+            python-version: '3.7'
     env: ${{ matrix.env }}
     steps:
       - name: Repository checkout
         uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
+      - name: Setup python
+        uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065
+        with:
+          python-version: ${{ matrix.python-version }}
       - name: Build check
         run: .github/workflows/build-test.sh