[nm-1-54] ci: update distros

This commit is contained in:
Íñigo Huguet 2025-09-05 16:02:25 +02:00
parent a25a6f5a1e
commit 7121b42179
6 changed files with 180 additions and 227 deletions

View file

@ -60,11 +60,11 @@ variables:
# #
# This is done by running `ci-fairy generate-template` and possibly bumping # This is done by running `ci-fairy generate-template` and possibly bumping
# ".default_tag". # ".default_tag".
ALPINE_TAG: 'tag-da1ae96102c6' ALPINE_TAG: 'tag-dcc430216167'
CENTOS_TAG: 'tag-c8df7d2b249f' CENTOS_TAG: 'tag-feb1adbc208e'
DEBIAN_TAG: 'tag-e68f538711ec' DEBIAN_TAG: 'tag-afb784497c2f'
FEDORA_TAG: 'tag-c8df7d2b249f' FEDORA_TAG: 'tag-feb1adbc208e'
UBUNTU_TAG: 'tag-e68f538711ec' UBUNTU_TAG: 'tag-afb784497c2f'
ALPINE_EXEC: 'bash .gitlab-ci/alpine-install.sh' ALPINE_EXEC: 'bash .gitlab-ci/alpine-install.sh'
CENTOS_EXEC: 'bash .gitlab-ci/fedora-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 # Build a container for each distribution + version. The ci-templates
# will re-use the containers if the tag doesn't change. # 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: extends:
- .fdo.container-build@fedora - .fdo.container-build@fedora
stage: prep stage: prep
@ -111,88 +123,6 @@ tier1:fedora:42@prep:
FDO_DISTRIBUTION_VERSION: '42' FDO_DISTRIBUTION_VERSION: '42'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC 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: rules:
- if: $CI_PIPELINE_SOURCE != 'schedule' - if: $CI_PIPELINE_SOURCE != 'schedule'
when: manual when: manual
@ -226,20 +156,6 @@ tier3:ubuntu:25.04@prep:
when: manual when: manual
allow_failure: true 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: tier3:ubuntu:24.04@prep:
extends: extends:
- .fdo.container-build@ubuntu - .fdo.container-build@ubuntu
@ -268,6 +184,20 @@ tier3:ubuntu:22.04@prep:
when: manual when: manual
allow_failure: true 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: tier3:debian:12@prep:
extends: extends:
- .fdo.container-build@debian - .fdo.container-build@debian
@ -282,6 +212,20 @@ tier3:debian:12@prep:
when: manual when: manual
allow_failure: true 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: tier3:alpine:3.21@prep:
extends: extends:
- .fdo.container-build@alpine - .fdo.container-build@alpine
@ -324,6 +268,34 @@ tier3:alpine:3.19@prep:
when: manual when: manual
allow_failure: true 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 # # tierN stage #
@ -340,7 +312,7 @@ tier3:alpine:3.19@prep:
dependencies: [] dependencies: []
t_fedora:42: t_fedora:43:
extends: extends:
- .build@template - .build@template
- .fdo.distribution-image@fedora - .fdo.distribution-image@fedora
@ -356,94 +328,24 @@ t_fedora:42:
- tarball - tarball
- subtree - subtree
variables: variables:
FDO_DISTRIBUTION_VERSION: '42' FDO_DISTRIBUTION_VERSION: '43'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs: needs:
- "tier1:fedora:42@prep" - "tier1:fedora:43@prep"
rules: rules:
- if: $CI_PIPELINE_SOURCE != 'schedule' - if: $CI_PIPELINE_SOURCE != 'schedule'
t_fedora:rawhide: t_fedora:42:
extends: extends:
- .build@template - .build@template
- .fdo.distribution-image@fedora - .fdo.distribution-image@fedora
- .nm_artifacts_debug - .nm_artifacts_debug
stage: tier2 stage: tier3
variables: variables:
FDO_DISTRIBUTION_VERSION: 'rawhide' FDO_DISTRIBUTION_VERSION: '42'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs: needs:
- "tier2:fedora:rawhide@prep" - "tier3:fedora:42@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"
rules: rules:
- if: $CI_PIPELINE_SOURCE != 'schedule' - if: $CI_PIPELINE_SOURCE != 'schedule'
@ -475,20 +377,6 @@ t_ubuntu:25.04:
rules: rules:
- if: $CI_PIPELINE_SOURCE != 'schedule' - 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: t_ubuntu:24.04:
extends: extends:
- .build@template - .build@template
@ -517,6 +405,20 @@ t_ubuntu:22.04:
rules: rules:
- if: $CI_PIPELINE_SOURCE != 'schedule' - 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: t_debian:12:
extends: extends:
- .build@template - .build@template
@ -531,6 +433,20 @@ t_debian:12:
rules: rules:
- if: $CI_PIPELINE_SOURCE != 'schedule' - 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: t_alpine:3.21:
extends: extends:
- .build@template - .build@template
@ -573,6 +489,34 @@ t_alpine:3.19:
rules: rules:
- if: $CI_PIPELINE_SOURCE != 'schedule' - 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 # # specific jobs #
@ -583,10 +527,10 @@ check-patch:
extends: extends:
- .fdo.distribution-image@fedora - .fdo.distribution-image@fedora
variables: variables:
FDO_DISTRIBUTION_VERSION: '42' FDO_DISTRIBUTION_VERSION: '43'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs: needs:
- "tier1:fedora:42@prep" - "tier1:fedora:43@prep"
rules: rules:
- if: $CI_PIPELINE_SOURCE != 'schedule' - if: $CI_PIPELINE_SOURCE != 'schedule'
stage: tier1 stage: tier1
@ -598,10 +542,10 @@ check-tree:
extends: extends:
- .fdo.distribution-image@fedora - .fdo.distribution-image@fedora
variables: variables:
FDO_DISTRIBUTION_VERSION: '42' FDO_DISTRIBUTION_VERSION: '43'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs: needs:
- "tier1:fedora:42@prep" - "tier1:fedora:43@prep"
rules: rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != $CI_DEFAULT_BRANCH - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != $CI_DEFAULT_BRANCH
allow_failure: true allow_failure: true
@ -631,9 +575,9 @@ pages:
when: never when: never
- if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == 'main' - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == 'main'
dependencies: dependencies:
- "t_fedora:42: [meson+gcc+docs+valgrind]" - "t_fedora:43: [meson+gcc+docs+valgrind]"
needs: needs:
- "t_fedora:42: [meson+gcc+docs+valgrind]" - "t_fedora:43: [meson+gcc+docs+valgrind]"
triage:issues: triage:issues:
stage: triage stage: triage
@ -650,11 +594,11 @@ coverity:
extends: extends:
- .fdo.distribution-image@fedora - .fdo.distribution-image@fedora
variables: variables:
FDO_DISTRIBUTION_VERSION: '42' FDO_DISTRIBUTION_VERSION: '43'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_TAG: $FEDORA_TAG
stage: coverity stage: coverity
needs: needs:
- "tier1:fedora:42@prep" - "tier1:fedora:43@prep"
rules: rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULED_PIPELINE_NAME == "weekly" - if: $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULED_PIPELINE_NAME == "weekly"
script: script:

View file

@ -23,52 +23,38 @@ distributions:
- name: fedora - name: fedora
tier: 1 tier: 1
versions: versions:
- '42' - '43'
# TIER 2: distribution versions that will or might use the current NM version. # TIER 2: distribution versions that will or might use the current NM version.
# Run when doing a release. # 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. # 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. # Run when doing a release, but a failure won't be blocking for the release.
- name: fedora - name: fedora
tier: 3 tier: 3
versions: versions:
- '42'
- '41' - '41'
- name: ubuntu - name: ubuntu
tier: 3 tier: 3
versions: versions:
- '25.04' - '25.04'
- '24.10'
- '24.04' - '24.04'
- '22.04' - '22.04'
- name: debian - name: debian
tier: 3 tier: 3
versions: versions:
- '13'
- '12' - '12'
- name: alpine - name: alpine
tier: 3 tier: 3
versions: versions:
- '3.22'
- '3.21' - '3.21'
- '3.20' - '3.20'
- '3.19' - '3.19'
- name: centos
tier: 3
versions:
- 'stream10'
- 'stream9'

View file

@ -13,6 +13,8 @@ if [ $IS_CENTOS = 1 ]; then
CENTOS_VERSION=8 CENTOS_VERSION=8
elif grep -q '^VERSION_ID=.*\<9\>' /etc/os-release ; then elif grep -q '^VERSION_ID=.*\<9\>' /etc/os-release ; then
CENTOS_VERSION=9 CENTOS_VERSION=9
elif grep -q '^VERSION_ID=.*\<10\>' /etc/os-release ; then
CENTOS_VERSION=10
else else
exit 1 exit 1
fi fi
@ -33,6 +35,11 @@ fi
dnf install -y 'dnf-command(config-manager)' dnf install -y 'dnf-command(config-manager)'
dnf config-manager --set-enabled crb 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 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 else
exit 1 exit 1
fi fi

View file

@ -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=.*\(Fedora\)' /etc/os-release && IS_FEDORA=1
grep -q '^NAME=.*\(Alpine\)' /etc/os-release && IS_ALPINE=1 grep -q '^NAME=.*\(Alpine\)' /etc/os-release && IS_ALPINE=1
IS_CENTOS_7=0
if [ $IS_CENTOS = 1 ]; then if [ $IS_CENTOS = 1 ]; then
if grep -q '^VERSION_ID=.*\<7\>' /etc/os-release ; then CENTOS_VER_LINE="$(grep '^VERSION_ID=' /etc/os-release)"
IS_CENTOS_7=1 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
fi fi

View file

@ -11,6 +11,7 @@ apk add \
'clang' \ 'clang' \
'curl-dev' \ 'curl-dev' \
'dbus' \ 'dbus' \
'dbus-dev' \
'elogind-dev' \ 'elogind-dev' \
'eudev-dev' \ 'eudev-dev' \
'gcc' \ 'gcc' \

View file

@ -84,6 +84,14 @@ if [ "$CC" != gcc ]; then
_WITH_CRYPTO=nss _WITH_CRYPTO=nss
fi 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 [ "$WITH_DOCS" != "" ]; then
if _is_true "$WITH_DOCS"; then if _is_true "$WITH_DOCS"; then
_WITH_DOCS="true" _WITH_DOCS="true"