Verified Commit bfa8a058 authored by Éloi Rivard's avatar Éloi Rivard
Browse files

ci: run the tests on ubuntu-24.04

parent d2b6dcbf
Loading
Loading
Loading
Loading
+45 −36
Changes for .github/workflows/ci.yml: 45 added lines, 36 removed lines.
Original line number Diff line number Diff line
---
# The runners use ubuntu-22.04, because ubuntu-24.04 on GHA does not have this fix yet:
# https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2079019
name: CI
on:
  push:
@@ -20,7 +18,7 @@ jobs:
  # ============================================================
  tests-latest:
    name: py3.14 unit tests
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
      - name: Install uv
@@ -32,10 +30,12 @@ jobs:
      - name: Install apt dependencies
        run: |
          sudo apt update
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install apparmor-utils libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils
      - name: App armor configuration for slapd
        if: ${{ !env.ACT }}
        run: sudo aa-complain /usr/sbin/slapd
        # aa-complain fails on ubuntu-24.04, so the profile is unloaded directly:
        # https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2079019
        run: sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.slapd
      - name: Run tests
        env:
          FORCE_COLOR: "1"
@@ -48,7 +48,7 @@ jobs:

  tests:
    name: py${{ matrix.python }} unit tests
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    strategy:
      fail-fast: false
      matrix:
@@ -67,10 +67,12 @@ jobs:
      - name: Install apt dependencies
        run: |
          sudo apt update
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install apparmor-utils libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils
      - name: App armor configuration for slapd
        if: ${{ !env.ACT }}
        run: sudo aa-complain /usr/sbin/slapd
        # aa-complain fails on ubuntu-24.04, so the profile is unloaded directly:
        # https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2079019
        run: sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.slapd
      - name: Run tests
        env:
          FORCE_COLOR: "1"
@@ -83,7 +85,7 @@ jobs:

  coverage:
    name: code coverage
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
      - name: Install uv
@@ -95,10 +97,12 @@ jobs:
      - name: Install apt dependencies
        run: |
          sudo apt update
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install apparmor-utils libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils
      - name: App armor configuration for slapd
        if: ${{ !env.ACT }}
        run: sudo aa-complain /usr/sbin/slapd
        # aa-complain fails on ubuntu-24.04, so the profile is unloaded directly:
        # https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2079019
        run: sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.slapd
      - name: Run tests with coverage
        continue-on-error: true
        env:
@@ -118,7 +122,7 @@ jobs:

  minversions:
    name: minimum dependency versions
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
      - name: Install uv
@@ -130,10 +134,12 @@ jobs:
      - name: Install apt dependencies
        run: |
          sudo apt update
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install apparmor-utils libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils
      - name: App armor configuration for slapd
        if: ${{ !env.ACT }}
        run: sudo aa-complain /usr/sbin/slapd
        # aa-complain fails on ubuntu-24.04, so the profile is unloaded directly:
        # https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2079019
        run: sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.slapd
      - name: Run tests
        env:
          FORCE_COLOR: "1"
@@ -145,7 +151,7 @@ jobs:
          uv run pytest --numprocesses auto

  style:
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
      - name: Install uv
@@ -157,10 +163,12 @@ jobs:
      - name: Install apt dependencies
        run: |
          sudo apt update
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install apparmor-utils libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install libsasl2-dev python3-dev libldap2-dev libssl-dev slapd ldap-utils
      - name: App armor configuration for slapd
        if: ${{ !env.ACT }}
        run: sudo aa-complain /usr/sbin/slapd
        # aa-complain fails on ubuntu-24.04, so the profile is unloaded directly:
        # https://bugs.launchpad.net/ubuntu/+source/apparmor/+bug/2079019
        run: sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.slapd
      - name: Run linters
        run: |
          # python tzinfo fails on 'act' without this
@@ -170,7 +178,7 @@ jobs:
          uv run prek run --all-files

  doc:
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
      - name: Install uv
@@ -195,7 +203,7 @@ jobs:
  # ============================================================
  build-wheel:
    needs: [tests-latest, tests, minversions, style]
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

@@ -216,6 +224,7 @@ jobs:

  build-pyinstaller:
    needs: [tests-latest, style]
    # The binary needs the glibc of the build system or a newer one.
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
@@ -250,7 +259,7 @@ jobs:

  build-docker:
    needs: [tests-latest, style]
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

@@ -283,7 +292,7 @@ jobs:
  integration-dev:
    name: integration (dev, ${{ matrix.database }})
    needs: [tests-latest, tests, minversions, style]
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    strategy:
      fail-fast: false
      matrix:
@@ -304,8 +313,8 @@ jobs:
      - name: Install slapd for LDAP tests
        if: matrix.database == 'ldap'
        run: |
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install apparmor-utils slapd ldap-utils
          sudo aa-complain /usr/sbin/slapd
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install slapd ldap-utils
          sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.slapd

      - name: Install Python 3.14
        run: uv python install 3.14
@@ -320,7 +329,7 @@ jobs:
  integration-package:
    name: integration (package, ${{ matrix.database }})
    needs: [build-wheel]
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    strategy:
      fail-fast: false
      matrix:
@@ -341,8 +350,8 @@ jobs:
      - name: Install slapd for LDAP tests
        if: matrix.database == 'ldap'
        run: |
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install apparmor-utils slapd ldap-utils
          sudo aa-complain /usr/sbin/slapd
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install slapd ldap-utils
          sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.slapd

      - name: Download wheel artifact
        uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
@@ -364,7 +373,7 @@ jobs:
  integration-pyinstaller:
    name: integration (pyinstaller, ${{ matrix.database }})
    needs: [build-pyinstaller]
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    strategy:
      fail-fast: false
      matrix:
@@ -385,8 +394,8 @@ jobs:
      - name: Install slapd for LDAP tests
        if: matrix.database == 'ldap'
        run: |
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install apparmor-utils slapd ldap-utils
          sudo aa-complain /usr/sbin/slapd
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install slapd ldap-utils
          sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.slapd

      - name: Download PyInstaller artifact
        uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
@@ -410,7 +419,7 @@ jobs:
  integration-docker:
    name: integration (docker, ${{ matrix.database }})
    needs: [build-docker]
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    strategy:
      fail-fast: false
      matrix:
@@ -431,8 +440,8 @@ jobs:
      - name: Install slapd for LDAP tests
        if: matrix.database == 'ldap'
        run: |
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install apparmor-utils slapd ldap-utils
          sudo aa-complain /usr/sbin/slapd
          sudo DEBIAN_FRONTEND=noninteractive apt --yes --quiet install slapd ldap-utils
          sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.slapd

      - name: Download Docker image artifact
        uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
@@ -456,7 +465,7 @@ jobs:
  integration-minimal:
    name: integration (minimal extras)
    needs: [build-wheel]
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

@@ -488,7 +497,7 @@ jobs:
  publish-pypi:
    needs: [integration-dev, integration-package, integration-pyinstaller, integration-docker, integration-minimal]
    if: startsWith(github.ref, 'refs/tags/')
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    environment: pypi
    permissions:
      id-token: write
@@ -505,7 +514,7 @@ jobs:
  publish-github-release:
    needs: [integration-dev, integration-package, integration-pyinstaller, integration-docker, integration-minimal]
    if: startsWith(github.ref, 'refs/tags/')
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    permissions:
      contents: write
    steps:
@@ -533,7 +542,7 @@ jobs:
  publish-docker-hub:
    needs: [integration-dev, integration-package, integration-pyinstaller, integration-docker, integration-minimal]
    if: startsWith(github.ref, 'refs/tags/')
    runs-on: ubuntu-22.04
    runs-on: ubuntu-24.04
    steps:
      - name: Download Docker image artifact
        uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1