diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a90f3e8b39..a938fa1035 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-da1ae96102c6' - CENTOS_TAG: 'tag-c8df7d2b249f' - DEBIAN_TAG: 'tag-e68f538711ec' - FEDORA_TAG: 'tag-c8df7d2b249f' - UBUNTU_TAG: 'tag-e68f538711ec' + ALPINE_TAG: 'tag-dcc430216167' + CENTOS_TAG: 'tag-feb1adbc208e' + DEBIAN_TAG: 'tag-afb784497c2f' + FEDORA_TAG: 'tag-feb1adbc208e' + UBUNTU_TAG: 'tag-afb784497c2f' ALPINE_EXEC: 'bash .gitlab-ci/alpine-install.sh' CENTOS_EXEC: 'bash .gitlab-ci/fedora-install.sh' @@ -102,7 +102,19 @@ 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: '43' + FDO_DISTRIBUTION_TAG: $FEDORA_TAG + FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' || $SCHEDULED_PIPELINE_NAME == "weekly" + +tier3:fedora:42@prep: extends: - .fdo.container-build@fedora stage: prep @@ -111,88 +123,6 @@ tier1:fedora:42@prep: FDO_DISTRIBUTION_VERSION: '42' FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC - rules: - - if: $CI_PIPELINE_SOURCE != 'schedule' || $SCHEDULED_PIPELINE_NAME == "weekly" - -tier2:fedora:rawhide@prep: - extends: - - .fdo.container-build@fedora - stage: prep - variables: - GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: 'rawhide' - FDO_DISTRIBUTION_TAG: $FEDORA_TAG - FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC - rules: - - if: $CI_PIPELINE_SOURCE != 'schedule' - when: manual - allow_failure: true - -tier2:centos:stream9@prep: - extends: - - .fdo.container-build@centos - stage: prep - variables: - GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: 'stream9' - FDO_DISTRIBUTION_TAG: $CENTOS_TAG - FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC - rules: - - if: $CI_PIPELINE_SOURCE != 'schedule' - when: manual - allow_failure: true - -tier2:ubuntu:devel@prep: - extends: - - .fdo.container-build@ubuntu - stage: prep - variables: - GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: 'devel' - FDO_DISTRIBUTION_TAG: $UBUNTU_TAG - FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC - rules: - - if: $CI_PIPELINE_SOURCE != 'schedule' - when: manual - allow_failure: true - -tier2:debian:testing@prep: - extends: - - .fdo.container-build@debian - stage: prep - variables: - GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: 'testing' - FDO_DISTRIBUTION_TAG: $DEBIAN_TAG - FDO_DISTRIBUTION_EXEC: $DEBIAN_EXEC - rules: - - if: $CI_PIPELINE_SOURCE != 'schedule' - when: manual - allow_failure: true - -tier2:debian:sid@prep: - extends: - - .fdo.container-build@debian - stage: prep - variables: - GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: 'sid' - FDO_DISTRIBUTION_TAG: $DEBIAN_TAG - FDO_DISTRIBUTION_EXEC: $DEBIAN_EXEC - rules: - - if: $CI_PIPELINE_SOURCE != 'schedule' - when: manual - allow_failure: true - -tier2:alpine:edge@prep: - extends: - - .fdo.container-build@alpine - stage: prep - variables: - GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: 'edge' - FDO_DISTRIBUTION_TAG: $ALPINE_TAG - FDO_DISTRIBUTION_EXEC: $ALPINE_EXEC rules: - if: $CI_PIPELINE_SOURCE != 'schedule' when: manual @@ -226,20 +156,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 +184,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 +212,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 @@ -324,6 +268,34 @@ tier3:alpine:3.19@prep: when: manual allow_failure: true +tier3: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 + +tier3:centos:stream9@prep: + extends: + - .fdo.container-build@centos + stage: prep + variables: + GIT_STRATEGY: none + FDO_DISTRIBUTION_VERSION: 'stream9' + FDO_DISTRIBUTION_TAG: $CENTOS_TAG + FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' + when: manual + allow_failure: true + ################################################################# # # # tierN stage # @@ -340,7 +312,7 @@ tier3:alpine:3.19@prep: dependencies: [] -t_fedora:42: +t_fedora:43: extends: - .build@template - .fdo.distribution-image@fedora @@ -356,94 +328,24 @@ 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' -t_fedora:rawhide: +t_fedora:42: extends: - .build@template - .fdo.distribution-image@fedora - .nm_artifacts_debug - stage: tier2 + stage: tier3 variables: - FDO_DISTRIBUTION_VERSION: 'rawhide' + FDO_DISTRIBUTION_VERSION: '42' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - - "tier2:fedora:rawhide@prep" - rules: - - if: $CI_PIPELINE_SOURCE != 'schedule' - -t_centos:stream9: - extends: - - .build@template - - .fdo.distribution-image@centos - - .nm_artifacts_debug - stage: tier2 - variables: - FDO_DISTRIBUTION_VERSION: 'stream9' - FDO_DISTRIBUTION_TAG: $CENTOS_TAG - needs: - - "tier2:centos:stream9@prep" - rules: - - if: $CI_PIPELINE_SOURCE != 'schedule' - -t_ubuntu:devel: - extends: - - .build@template - - .fdo.distribution-image@ubuntu - - .nm_artifacts_debug - stage: tier2 - variables: - FDO_DISTRIBUTION_VERSION: 'devel' - FDO_DISTRIBUTION_TAG: $UBUNTU_TAG - needs: - - "tier2:ubuntu:devel@prep" - rules: - - if: $CI_PIPELINE_SOURCE != 'schedule' - -t_debian:testing: - extends: - - .build@template - - .fdo.distribution-image@debian - - .nm_artifacts_debug - stage: tier2 - variables: - FDO_DISTRIBUTION_VERSION: 'testing' - FDO_DISTRIBUTION_TAG: $DEBIAN_TAG - needs: - - "tier2:debian:testing@prep" - rules: - - if: $CI_PIPELINE_SOURCE != 'schedule' - -t_debian:sid: - extends: - - .build@template - - .fdo.distribution-image@debian - - .nm_artifacts_debug - stage: tier2 - variables: - FDO_DISTRIBUTION_VERSION: 'sid' - FDO_DISTRIBUTION_TAG: $DEBIAN_TAG - needs: - - "tier2:debian:sid@prep" - rules: - - if: $CI_PIPELINE_SOURCE != 'schedule' - -t_alpine:edge: - extends: - - .build@template - - .fdo.distribution-image@alpine - - .nm_artifacts_debug - stage: tier2 - variables: - FDO_DISTRIBUTION_VERSION: 'edge' - FDO_DISTRIBUTION_TAG: $ALPINE_TAG - needs: - - "tier2:alpine:edge@prep" + - "tier3:fedora:42@prep" rules: - if: $CI_PIPELINE_SOURCE != 'schedule' @@ -475,20 +377,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 +405,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 +433,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 @@ -573,6 +489,34 @@ t_alpine:3.19: rules: - if: $CI_PIPELINE_SOURCE != 'schedule' +t_centos:stream10: + extends: + - .build@template + - .fdo.distribution-image@centos + - .nm_artifacts_debug + stage: tier3 + variables: + FDO_DISTRIBUTION_VERSION: 'stream10' + FDO_DISTRIBUTION_TAG: $CENTOS_TAG + needs: + - "tier3:centos:stream10@prep" + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' + +t_centos:stream9: + extends: + - .build@template + - .fdo.distribution-image@centos + - .nm_artifacts_debug + stage: tier3 + variables: + FDO_DISTRIBUTION_VERSION: 'stream9' + FDO_DISTRIBUTION_TAG: $CENTOS_TAG + needs: + - "tier3:centos:stream9@prep" + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' + ################################################################# # # # specific jobs # @@ -583,10 +527,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 +542,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 +575,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 +594,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..b99c167359 100644 --- a/.gitlab-ci/config.yml +++ b/.gitlab-ci/config.yml @@ -23,52 +23,38 @@ 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. - - name: fedora - tier: 2 - versions: - - 'rawhide' - - name: centos - tier: 2 - versions: - - 'stream9' - - name: ubuntu - tier: 2 - versions: - - 'devel' - - name: debian - tier: 2 - versions: - - 'testing' - - 'sid' - - name: alpine - tier: 2 - versions: - - 'edge' # TIER 3: distribution versions not in EOL but don't use the current NM version. # Run when doing a release, but a failure won't be blocking for the release. - 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' + - name: centos + tier: 3 + versions: + - 'stream10' + - 'stream9' 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 6f0e86fddd..9f1affcb12 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 4881d110d3..2ae96a7cca 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"