From 13d8cda04ecc98bdf07974dad11d1ddb601afef9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8D=C3=B1igo=20Huguet?= Date: Fri, 5 Sep 2025 15:58:29 +0200 Subject: [PATCH] ci: update distros --- .gitlab-ci.yml | 176 +++++++++++++++++++++++-------- .gitlab-ci/config.yml | 7 +- .gitlab-ci/distros-info.yml | 54 +++++++--- .gitlab-ci/fedora-install.sh | 7 ++ .gitlab-ci/run-test.sh | 13 ++- contrib/alpine/REQUIRED_PACKAGES | 1 + contrib/scripts/nm-ci-run.sh | 8 ++ 7 files changed, 198 insertions(+), 68 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a74bd96246..982c86578e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -60,11 +60,11 @@ variables: # # This is done by running `ci-fairy generate-template` and possibly bumping # ".default_tag". - ALPINE_TAG: 'tag-e577866dbb86' - CENTOS_TAG: 'tag-1c40a0cf2c4c' - DEBIAN_TAG: 'tag-0a55ae70d83b' - FEDORA_TAG: 'tag-1c40a0cf2c4c' - UBUNTU_TAG: 'tag-0a55ae70d83b' + ALPINE_TAG: 'tag-f6403ec26a18' + CENTOS_TAG: 'tag-e2b828cf6677' + DEBIAN_TAG: 'tag-ad020ba543a8' + FEDORA_TAG: 'tag-e2b828cf6677' + UBUNTU_TAG: 'tag-ad020ba543a8' ALPINE_EXEC: 'bash .gitlab-ci/alpine-install.sh' CENTOS_EXEC: 'bash .gitlab-ci/fedora-install.sh' @@ -102,13 +102,13 @@ variables: # Build a container for each distribution + version. The ci-templates # will re-use the containers if the tag doesn't change. -tier1:fedora:42@prep: +tier1:fedora:43@prep: extends: - .fdo.container-build@fedora stage: prep variables: GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: '42' + FDO_DISTRIBUTION_VERSION: '43' FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC rules: @@ -128,6 +128,20 @@ tier2:fedora:rawhide@prep: when: manual allow_failure: true +tier2:centos:stream10@prep: + extends: + - .fdo.container-build@centos + stage: prep + variables: + GIT_STRATEGY: none + FDO_DISTRIBUTION_VERSION: 'stream10' + FDO_DISTRIBUTION_TAG: $CENTOS_TAG + FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' + when: manual + allow_failure: true + tier2:centos:stream9@prep: extends: - .fdo.container-build@centos @@ -198,6 +212,20 @@ tier2:alpine:edge@prep: when: manual allow_failure: true +tier3:fedora:42@prep: + extends: + - .fdo.container-build@fedora + stage: prep + variables: + GIT_STRATEGY: none + FDO_DISTRIBUTION_VERSION: '42' + FDO_DISTRIBUTION_TAG: $FEDORA_TAG + FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' + when: manual + allow_failure: true + tier3:fedora:41@prep: extends: - .fdo.container-build@fedora @@ -226,20 +254,6 @@ tier3:ubuntu:25.04@prep: when: manual allow_failure: true -tier3:ubuntu:24.10@prep: - extends: - - .fdo.container-build@ubuntu - stage: prep - variables: - GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: '24.10' - FDO_DISTRIBUTION_TAG: $UBUNTU_TAG - FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC - rules: - - if: $CI_PIPELINE_SOURCE != 'schedule' - when: manual - allow_failure: true - tier3:ubuntu:24.04@prep: extends: - .fdo.container-build@ubuntu @@ -268,6 +282,20 @@ tier3:ubuntu:22.04@prep: when: manual allow_failure: true +tier3:debian:13@prep: + extends: + - .fdo.container-build@debian + stage: prep + variables: + GIT_STRATEGY: none + FDO_DISTRIBUTION_VERSION: '13' + FDO_DISTRIBUTION_TAG: $DEBIAN_TAG + FDO_DISTRIBUTION_EXEC: $DEBIAN_EXEC + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' + when: manual + allow_failure: true + tier3:debian:12@prep: extends: - .fdo.container-build@debian @@ -282,6 +310,20 @@ tier3:debian:12@prep: when: manual allow_failure: true +tier3:alpine:3.22@prep: + extends: + - .fdo.container-build@alpine + stage: prep + variables: + GIT_STRATEGY: none + FDO_DISTRIBUTION_VERSION: '3.22' + FDO_DISTRIBUTION_TAG: $ALPINE_TAG + FDO_DISTRIBUTION_EXEC: $ALPINE_EXEC + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' + when: manual + allow_failure: true + tier3:alpine:3.21@prep: extends: - .fdo.container-build@alpine @@ -340,7 +382,7 @@ tier3:alpine:3.19@prep: dependencies: [] -t_fedora:42: +t_fedora:43: extends: - .build@template - .fdo.distribution-image@fedora @@ -356,10 +398,10 @@ t_fedora:42: - tarball - subtree variables: - FDO_DISTRIBUTION_VERSION: '42' + FDO_DISTRIBUTION_VERSION: '43' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - - "tier1:fedora:42@prep" + - "tier1:fedora:43@prep" rules: - if: $CI_PIPELINE_SOURCE != 'schedule' @@ -377,6 +419,20 @@ t_fedora:rawhide: rules: - if: $CI_PIPELINE_SOURCE != 'schedule' +t_centos:stream10: + extends: + - .build@template + - .fdo.distribution-image@centos + - .nm_artifacts_debug + stage: tier2 + variables: + FDO_DISTRIBUTION_VERSION: 'stream10' + FDO_DISTRIBUTION_TAG: $CENTOS_TAG + needs: + - "tier2:centos:stream10@prep" + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' + t_centos:stream9: extends: - .build@template @@ -447,6 +503,20 @@ t_alpine:edge: rules: - if: $CI_PIPELINE_SOURCE != 'schedule' +t_fedora:42: + extends: + - .build@template + - .fdo.distribution-image@fedora + - .nm_artifacts_debug + stage: tier3 + variables: + FDO_DISTRIBUTION_VERSION: '42' + FDO_DISTRIBUTION_TAG: $FEDORA_TAG + needs: + - "tier3:fedora:42@prep" + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' + t_fedora:41: extends: - .build@template @@ -475,20 +545,6 @@ t_ubuntu:25.04: rules: - if: $CI_PIPELINE_SOURCE != 'schedule' -t_ubuntu:24.10: - extends: - - .build@template - - .fdo.distribution-image@ubuntu - - .nm_artifacts_debug - stage: tier3 - variables: - FDO_DISTRIBUTION_VERSION: '24.10' - FDO_DISTRIBUTION_TAG: $UBUNTU_TAG - needs: - - "tier3:ubuntu:24.10@prep" - rules: - - if: $CI_PIPELINE_SOURCE != 'schedule' - t_ubuntu:24.04: extends: - .build@template @@ -517,6 +573,20 @@ t_ubuntu:22.04: rules: - if: $CI_PIPELINE_SOURCE != 'schedule' +t_debian:13: + extends: + - .build@template + - .fdo.distribution-image@debian + - .nm_artifacts_debug + stage: tier3 + variables: + FDO_DISTRIBUTION_VERSION: '13' + FDO_DISTRIBUTION_TAG: $DEBIAN_TAG + needs: + - "tier3:debian:13@prep" + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' + t_debian:12: extends: - .build@template @@ -531,6 +601,20 @@ t_debian:12: rules: - if: $CI_PIPELINE_SOURCE != 'schedule' +t_alpine:3.22: + extends: + - .build@template + - .fdo.distribution-image@alpine + - .nm_artifacts_debug + stage: tier3 + variables: + FDO_DISTRIBUTION_VERSION: '3.22' + FDO_DISTRIBUTION_TAG: $ALPINE_TAG + needs: + - "tier3:alpine:3.22@prep" + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' + t_alpine:3.21: extends: - .build@template @@ -583,10 +667,10 @@ check-patch: extends: - .fdo.distribution-image@fedora variables: - FDO_DISTRIBUTION_VERSION: '42' + FDO_DISTRIBUTION_VERSION: '43' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - - "tier1:fedora:42@prep" + - "tier1:fedora:43@prep" rules: - if: $CI_PIPELINE_SOURCE != 'schedule' stage: tier1 @@ -598,10 +682,10 @@ check-tree: extends: - .fdo.distribution-image@fedora variables: - FDO_DISTRIBUTION_VERSION: '42' + FDO_DISTRIBUTION_VERSION: '43' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - - "tier1:fedora:42@prep" + - "tier1:fedora:43@prep" rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != $CI_DEFAULT_BRANCH allow_failure: true @@ -631,9 +715,9 @@ pages: when: never - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == 'main' dependencies: - - "t_fedora:42: [meson+gcc+docs+valgrind]" + - "t_fedora:43: [meson+gcc+docs+valgrind]" needs: - - "t_fedora:42: [meson+gcc+docs+valgrind]" + - "t_fedora:43: [meson+gcc+docs+valgrind]" triage:issues: stage: triage @@ -650,11 +734,11 @@ coverity: extends: - .fdo.distribution-image@fedora variables: - FDO_DISTRIBUTION_VERSION: '42' + FDO_DISTRIBUTION_VERSION: '43' FDO_DISTRIBUTION_TAG: $FEDORA_TAG stage: coverity needs: - - "tier1:fedora:42@prep" + - "tier1:fedora:43@prep" rules: - if: $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULED_PIPELINE_NAME == "weekly" script: diff --git a/.gitlab-ci/config.yml b/.gitlab-ci/config.yml index 526339e287..ec6fd1d2c1 100644 --- a/.gitlab-ci/config.yml +++ b/.gitlab-ci/config.yml @@ -23,7 +23,7 @@ distributions: - name: fedora tier: 1 versions: - - '42' + - '43' # TIER 2: distribution versions that will or might use the current NM version. # Run when doing a release. @@ -34,6 +34,7 @@ distributions: - name: centos tier: 2 versions: + - 'stream10' - 'stream9' - name: ubuntu tier: 2 @@ -54,21 +55,23 @@ distributions: - name: fedora tier: 3 versions: + - '42' - '41' - name: ubuntu tier: 3 versions: - '25.04' - - '24.10' - '24.04' - '22.04' - name: debian tier: 3 versions: + - '13' - '12' - name: alpine tier: 3 versions: + - '3.22' - '3.21' - '3.20' - '3.19' diff --git a/.gitlab-ci/distros-info.yml b/.gitlab-ci/distros-info.yml index 90d23993eb..6c4e07abcc 100644 --- a/.gitlab-ci/distros-info.yml +++ b/.gitlab-ci/distros-info.yml @@ -8,18 +8,24 @@ fedora: - version: rawhide support: yes nm: main +- version: 43 + support: 2026-12-02 + nm: 1.54 + tier1-default: yes - version: 42 support: 2026-05-13 nm: 1.52 - tier1-default: yes - version: 41 support: 2025-11-19 nm: 1.50 # CentOS Stream centos: +- version: stream10 + support: 2030-12-31 # exact date unknown, only the year + nm: main - version: stream9 - support: 2027-05-31 + support: 2027-12-31 # exact date unknown, only the year nm: main # RHEL: @@ -31,33 +37,43 @@ centos: # support: 6 months # Releases and support info: https://access.redhat.com/support/policy/updates/errata rhel: -- version: 9.6 # not released yet +# Not released yet +- version: 10.1 support: yes - nm: main -- version: 9.5 + nm: 1.54 +- version: 9.7 # not released yet support: yes - nm: 1.48 + nm: 1.54 +# Full support or EUS support: +- version: 10.0 + support: 2027-05-31 + extended-support: 2029-05-31 + nm: 1.52 +- version: 9.6 + support: 2027-05-31 + extended-support: 2029-05-31 + nm: 1.52 - version: 9.4 support: 2026-04-30 extended-support: 2028-04-30 nm: 1.46 -- version: 9.2 - support: 2025-05-31 - extended-support: 2027-05-31 - nm: 1.42 - version: 8.10 # last RHEL 8 release, maintenaince support only support: 2029-05-31 extended-support: no nm: 1.40 -- version: 8.8 +# SAP / Enhaced EUS only: +- version: 9.2 support: 2025-05-31 extended-support: 2027-05-31 - nm: 1.40 -# SAP / Enhaced EUS only: + nm: 1.42 - version: 9.0 support: 2024-05-31 extended-support: 2026-05-31 nm: 1.36 +- version: 8.8 + support: 2025-05-31 + extended-support: 2027-05-31 + nm: 1.40 - version: 8.6 support: 2024-05-31 extended-support: 2026-05-31 @@ -81,10 +97,6 @@ ubuntu: name: plucky support: 2026-01-15 nm: 1.52 -- version: 24.10 - name: oracular - support: 2025-07-10 - nm: 1.48 - version: 24.04 name: noble support: 2029-05-31 @@ -109,6 +121,11 @@ debian: - version: sid support: yes nm: main +- version: 13 + name: trixie + support: 2028-08-09 + extended-support: 2030-06-30 + nm: 1.52 - version: 12 name: bookworm support: 2026-06-11 @@ -130,6 +147,9 @@ alpine: - version: edge support: yes nm: main +- version: 3.22 + support: 2027-05-01 + nm: 1.52 - version: 3.21 support: 2026-11-01 nm: 1.50 diff --git a/.gitlab-ci/fedora-install.sh b/.gitlab-ci/fedora-install.sh index 50f9710fc7..8f49d9697b 100755 --- a/.gitlab-ci/fedora-install.sh +++ b/.gitlab-ci/fedora-install.sh @@ -13,6 +13,8 @@ if [ $IS_CENTOS = 1 ]; then CENTOS_VERSION=8 elif grep -q '^VERSION_ID=.*\<9\>' /etc/os-release ; then CENTOS_VERSION=9 + elif grep -q '^VERSION_ID=.*\<10\>' /etc/os-release ; then + CENTOS_VERSION=10 else exit 1 fi @@ -33,6 +35,11 @@ fi dnf install -y 'dnf-command(config-manager)' dnf config-manager --set-enabled crb curl https://copr.fedorainfracloud.org/coprs/nmstate/nm-build-deps/repo/epel-9/nmstate-nm-build-deps-epel-9.repo > /etc/yum.repos.d/nmstate-nm-build-deps-epel-9.repo + elif [ "$CENTOS_VERSION" = stream10 ]; then + dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-10.noarch.rpm + dnf install -y 'dnf-command(config-manager)' + dnf config-manager --set-enabled crb + curl https://copr.fedorainfracloud.org/coprs/nmstate/nm-build-deps/repo/epel-10/nmstate-nm-build-deps-epel-10.repo > /etc/yum.repos.d/nmstate-nm-build-deps-epel-10.repo else exit 1 fi diff --git a/.gitlab-ci/run-test.sh b/.gitlab-ci/run-test.sh index 265dbd54f0..44405558c8 100755 --- a/.gitlab-ci/run-test.sh +++ b/.gitlab-ci/run-test.sh @@ -17,10 +17,17 @@ grep -q '^NAME=.*\(CentOS\)' /etc/os-release && IS_CENTOS=1 grep -q '^NAME=.*\(Fedora\)' /etc/os-release && IS_FEDORA=1 grep -q '^NAME=.*\(Alpine\)' /etc/os-release && IS_ALPINE=1 -IS_CENTOS_7=0 if [ $IS_CENTOS = 1 ]; then - if grep -q '^VERSION_ID=.*\<7\>' /etc/os-release ; then - IS_CENTOS_7=1 + CENTOS_VER_LINE="$(grep '^VERSION_ID=' /etc/os-release)" + if [[ $CENTOS_VER_LINE =~ ^VERSION_ID=\"?([0-9]+)\"?$ ]]; then + CENTOS_VER="${BASH_REMATCH[1]}" + else + echo "Error detecting CentOS Stream version" >&2 + exit 1 + fi + + if (( $CENTOS_VER >= 10 )); then + export WITH_LIBTEAM=0 fi fi diff --git a/contrib/alpine/REQUIRED_PACKAGES b/contrib/alpine/REQUIRED_PACKAGES index fa9332ba36..3a3cc1abeb 100755 --- a/contrib/alpine/REQUIRED_PACKAGES +++ b/contrib/alpine/REQUIRED_PACKAGES @@ -11,6 +11,7 @@ apk add \ 'clang' \ 'curl-dev' \ 'dbus' \ + 'dbus-dev' \ 'elogind-dev' \ 'eudev-dev' \ 'gcc' \ diff --git a/contrib/scripts/nm-ci-run.sh b/contrib/scripts/nm-ci-run.sh index ff9aadf898..13d2f0fffd 100755 --- a/contrib/scripts/nm-ci-run.sh +++ b/contrib/scripts/nm-ci-run.sh @@ -84,6 +84,14 @@ if [ "$CC" != gcc ]; then _WITH_CRYPTO=nss fi +if [ "$WITH_LIBTEAM" != "" ]; then + if _is_true "$WITH_LIBTEAM"; then + _WITH_LIBTEAM="true" + else + _WITH_LIBTEAM="false" + fi +fi + if [ "$WITH_DOCS" != "" ]; then if _is_true "$WITH_DOCS"; then _WITH_DOCS="true"