merge: branch 'ih/distros-update'

ci: update supported distros

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/2202
This commit is contained in:
Íñigo Huguet 2025-05-13 13:30:05 +00:00
commit 9e585b6cdc
15 changed files with 87 additions and 124 deletions

View file

@ -60,11 +60,11 @@ variables:
#
# This is done by running `ci-fairy generate-template` and possibly bumping
# ".default_tag".
ALPINE_TAG: 'tag-57edf560bf4f'
CENTOS_TAG: 'tag-7ea4f50c8578'
DEBIAN_TAG: 'tag-1601ce2572c5'
FEDORA_TAG: 'tag-7ea4f50c8578'
UBUNTU_TAG: 'tag-1601ce2572c5'
ALPINE_TAG: 'tag-da1ae96102c6'
CENTOS_TAG: 'tag-c8df7d2b249f'
DEBIAN_TAG: 'tag-e68f538711ec'
FEDORA_TAG: 'tag-c8df7d2b249f'
UBUNTU_TAG: 'tag-e68f538711ec'
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:41@prep:
tier1:fedora:42@prep:
extends:
- .fdo.container-build@fedora
stage: prep
variables:
GIT_STRATEGY: none
FDO_DISTRIBUTION_VERSION: '41'
FDO_DISTRIBUTION_VERSION: '42'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
rules:
@ -198,13 +198,13 @@ tier2:alpine:edge@prep:
when: manual
allow_failure: true
tier3:fedora:40@prep:
tier3:fedora:41@prep:
extends:
- .fdo.container-build@fedora
stage: prep
variables:
GIT_STRATEGY: none
FDO_DISTRIBUTION_VERSION: '40'
FDO_DISTRIBUTION_VERSION: '41'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
rules:
@ -212,6 +212,20 @@ tier3:fedora:40@prep:
when: manual
allow_failure: true
tier3:ubuntu:25.04@prep:
extends:
- .fdo.container-build@ubuntu
stage: prep
variables:
GIT_STRATEGY: none
FDO_DISTRIBUTION_VERSION: '25.04'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC
rules:
- if: $CI_PIPELINE_SOURCE != 'schedule'
when: manual
allow_failure: true
tier3:ubuntu:24.10@prep:
extends:
- .fdo.container-build@ubuntu
@ -254,20 +268,6 @@ tier3:ubuntu:22.04@prep:
when: manual
allow_failure: true
tier3:ubuntu:20.04@prep:
extends:
- .fdo.container-build@ubuntu
stage: prep
variables:
GIT_STRATEGY: none
FDO_DISTRIBUTION_VERSION: '20.04'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC
rules:
- if: $CI_PIPELINE_SOURCE != 'schedule'
when: manual
allow_failure: true
tier3:debian:12@prep:
extends:
- .fdo.container-build@debian
@ -324,20 +324,6 @@ tier3:alpine:3.19@prep:
when: manual
allow_failure: true
tier3:alpine:3.18@prep:
extends:
- .fdo.container-build@alpine
stage: prep
variables:
GIT_STRATEGY: none
FDO_DISTRIBUTION_VERSION: '3.18'
FDO_DISTRIBUTION_TAG: $ALPINE_TAG
FDO_DISTRIBUTION_EXEC: $ALPINE_EXEC
rules:
- if: $CI_PIPELINE_SOURCE != 'schedule'
when: manual
allow_failure: true
#################################################################
# #
# tierN stage #
@ -354,7 +340,7 @@ tier3:alpine:3.18@prep:
dependencies: []
t_fedora:41:
t_fedora:42:
extends:
- .build@template
- .fdo.distribution-image@fedora
@ -370,10 +356,10 @@ t_fedora:41:
- tarball
- subtree
variables:
FDO_DISTRIBUTION_VERSION: '41'
FDO_DISTRIBUTION_VERSION: '42'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- "tier1:fedora:41@prep"
- "tier1:fedora:42@prep"
rules:
- if: $CI_PIPELINE_SOURCE != 'schedule'
@ -461,17 +447,31 @@ t_alpine:edge:
rules:
- if: $CI_PIPELINE_SOURCE != 'schedule'
t_fedora:40:
t_fedora:41:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .nm_artifacts_debug
stage: tier3
variables:
FDO_DISTRIBUTION_VERSION: '40'
FDO_DISTRIBUTION_VERSION: '41'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- "tier3:fedora:40@prep"
- "tier3:fedora:41@prep"
rules:
- if: $CI_PIPELINE_SOURCE != 'schedule'
t_ubuntu:25.04:
extends:
- .build@template
- .fdo.distribution-image@ubuntu
- .nm_artifacts_debug
stage: tier3
variables:
FDO_DISTRIBUTION_VERSION: '25.04'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
needs:
- "tier3:ubuntu:25.04@prep"
rules:
- if: $CI_PIPELINE_SOURCE != 'schedule'
@ -517,20 +517,6 @@ t_ubuntu:22.04:
rules:
- if: $CI_PIPELINE_SOURCE != 'schedule'
t_ubuntu:20.04:
extends:
- .build@template
- .fdo.distribution-image@ubuntu
- .nm_artifacts_debug
stage: tier3
variables:
FDO_DISTRIBUTION_VERSION: '20.04'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
needs:
- "tier3:ubuntu:20.04@prep"
rules:
- if: $CI_PIPELINE_SOURCE != 'schedule'
t_debian:12:
extends:
- .build@template
@ -587,20 +573,6 @@ t_alpine:3.19:
rules:
- if: $CI_PIPELINE_SOURCE != 'schedule'
t_alpine:3.18:
extends:
- .build@template
- .fdo.distribution-image@alpine
- .nm_artifacts_debug
stage: tier3
variables:
FDO_DISTRIBUTION_VERSION: '3.18'
FDO_DISTRIBUTION_TAG: $ALPINE_TAG
needs:
- "tier3:alpine:3.18@prep"
rules:
- if: $CI_PIPELINE_SOURCE != 'schedule'
#################################################################
# #
# specific jobs #
@ -611,10 +583,10 @@ check-patch:
extends:
- .fdo.distribution-image@fedora
variables:
FDO_DISTRIBUTION_VERSION: '41'
FDO_DISTRIBUTION_VERSION: '42'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- "tier1:fedora:41@prep"
- "tier1:fedora:42@prep"
rules:
- if: $CI_PIPELINE_SOURCE != 'schedule'
stage: tier1
@ -626,10 +598,10 @@ check-tree:
extends:
- .fdo.distribution-image@fedora
variables:
FDO_DISTRIBUTION_VERSION: '41'
FDO_DISTRIBUTION_VERSION: '42'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- "tier1:fedora:41@prep"
- "tier1:fedora:42@prep"
rules:
- if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME != $CI_DEFAULT_BRANCH
allow_failure: true
@ -659,9 +631,9 @@ pages:
when: never
- if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == 'main'
dependencies:
- "t_fedora:41: [meson+gcc+docs+valgrind]"
- "t_fedora:42: [meson+gcc+docs+valgrind]"
needs:
- "t_fedora:41: [meson+gcc+docs+valgrind]"
- "t_fedora:42: [meson+gcc+docs+valgrind]"
triage:issues:
stage: triage
@ -678,11 +650,11 @@ coverity:
extends:
- .fdo.distribution-image@fedora
variables:
FDO_DISTRIBUTION_VERSION: '41'
FDO_DISTRIBUTION_VERSION: '42'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
stage: coverity
needs:
- "tier1:fedora:41@prep"
- "tier1:fedora:42@prep"
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULED_PIPELINE_NAME == "weekly"
script:

View file

@ -23,7 +23,7 @@ distributions:
- name: fedora
tier: 1
versions:
- '41'
- '42'
# TIER 2: distribution versions that will or might use the current NM version.
# Run when doing a release.
@ -54,14 +54,14 @@ distributions:
- name: fedora
tier: 3
versions:
- '40'
- '41'
- name: ubuntu
tier: 3
versions:
- '25.04'
- '24.10'
- '24.04'
- '22.04'
- '20.04'
- name: debian
tier: 3
versions:
@ -72,4 +72,3 @@ distributions:
- '3.21'
- '3.20'
- '3.19'
- '3.18'

View file

@ -8,13 +8,13 @@ fedora:
- version: rawhide
support: yes
nm: main
- version: 42
support: 2026-05-13
nm: 1.52
tier1-default: yes
- version: 41
support: 2025-11-19
nm: 1.50
tier1-default: yes
- version: 40
support: 2025-05-13
nm: 1.46
# CentOS Stream
centos:
@ -77,6 +77,10 @@ ubuntu:
- version: devel
support: yes
nm: main
- version: 25.04
name: plucky
support: 2026-01-15
nm: 1.52
- version: 24.10
name: oracular
support: 2025-07-10
@ -91,11 +95,6 @@ ubuntu:
support: 2027-06-01
extended-support: 2032-04-21
nm: 1.36
- version: 20.04
name: focal
support: 2025-05-29
extended-support: 2030-04-23
nm: 1.22
# Debian:
# cadence: every 2 years
@ -140,6 +139,3 @@ alpine:
- version: 3.19
support: 2025-11-01
nm: 1.44
- version: 3.18
support: 2025-05-09
nm: 1.42

View file

@ -117,7 +117,7 @@ ip6_address_delete(NMPlatform *platform, int ifindex, struct in6_addr addr, guin
const int _dirfd = (dirfd); \
const char *const _path = (path); \
\
g_assert(_path &&_path[0]); \
g_assert(_path && _path[0]); \
g_assert(!strstr(_path, "/../")); \
if (_dirfd < 0) { \
g_assert(!_pathid); \

View file

@ -255,8 +255,8 @@ _assert_expected_content(NMConnection *connection, const char *filename, const c
GError *_error = NULL; \
gboolean _success; \
\
g_assert(_ifcfg_dir &&_ifcfg_dir[0]); \
g_assert(_filename &&_filename[0]); \
g_assert(_ifcfg_dir && _ifcfg_dir[0]); \
g_assert(_filename && _filename[0]); \
\
_success = nms_ifcfg_rh_writer_write_connection(_connection, \
_ifcfg_dir, \
@ -9533,12 +9533,10 @@ test_svUnescape(void)
.exp = v_expected, \
.can_concat = !!v_expected, \
}
#define V2(v_value, v_expected) \
{ \
.val = "" v_value "", \
.exp = v_expected, \
.can_concat = TRUE, \
.needs_ascii_separator = TRUE, \
#define V2(v_value, v_expected) \
{ \
.val = "" v_value "", .exp = v_expected, .can_concat = TRUE, \
.needs_ascii_separator = TRUE, \
}
const UnescapeTestData data_full[] = {
V1("", ""),

View file

@ -61,7 +61,7 @@ check_ip_route(NMSettingIPConfig *config,
gs_free_error GError *_error = NULL; \
NMConnection *_connection; \
\
g_assert(full_filename &&full_filename[0] == '/'); \
g_assert(full_filename && full_filename[0] == '/'); \
\
_connection = \
nms_keyfile_reader_from_file(full_filename, \

View file

@ -8205,7 +8205,7 @@ const NMLDBusMetaIface _nml_dbus_meta_iface_nm_settings = NML_DBUS_META_IFACE_IN
_priv.settings.connections,
nm_remote_connection_get_type,
.notify_changed_ao = _property_ao_notify_changed_connections_cb,
.check_nmobj_visible_fcn = (gboolean(*)(GObject *)) nm_remote_connection_get_visible),
.check_nmobj_visible_fcn = (gboolean (*)(GObject *)) nm_remote_connection_get_visible),
NML_DBUS_META_PROPERTY_INIT_S("Hostname",
PROP_HOSTNAME,
NMClient,

View file

@ -1684,7 +1684,7 @@ nm_keyfile_detect_unqualified_path_scheme(const char *base_dir,
const char *const _bin = (bin); \
const gsize _bin_len = (bin_len); \
\
nm_assert(_bin &&_bin_len > 0); \
nm_assert(_bin && _bin_len > 0); \
\
(_bin_len > NM_STRLEN(scheme) + 1 && _bin[_bin_len - 1] == '\0' \
&& memcmp(_bin, scheme, NM_STRLEN(scheme)) == 0); \

View file

@ -8680,11 +8680,9 @@ test_nm_utils_ascii_str_to_int64(void)
static void
test_nm_utils_strstrdictkey(void)
{
#define _VALUES_STATIC(_v1, _v2) \
{ \
.v1 = _v1, \
.v2 = _v2, \
.v_static = _nm_utils_strstrdictkey_static(_v1, _v2), \
#define _VALUES_STATIC(_v1, _v2) \
{ \
.v1 = _v1, .v2 = _v2, .v_static = _nm_utils_strstrdictkey_static(_v1, _v2), \
}
const struct {
const char *v1;

View file

@ -212,10 +212,10 @@ nm_hash_update_str(NMHashState *state, const char *str)
/* Like nm_hash_update_str(), but restricted to arrays only. nm_hash_update_str() only works
* with a @str argument that cannot be NULL. If you have a string pointer, that is never NULL, use
* nm_hash_update() instead. */
#define nm_hash_update_strarr(state, str) \
(_Generic(&(str), \
const char(*)[sizeof(str)]: nm_hash_update_str((state), (str)), \
char(*)[sizeof(str)]: nm_hash_update_str((state), (str))))
#define nm_hash_update_strarr(state, str) \
(_Generic(&(str), \
const char (*)[sizeof(str)]: nm_hash_update_str((state), (str)), \
char (*)[sizeof(str)]: nm_hash_update_str((state), (str))))
#else
#define nm_hash_update_strarr(state, str) nm_hash_update_str((state), (str))
#endif
@ -224,7 +224,7 @@ guint nm_hash_ptr(gconstpointer ptr);
#define nm_direct_hash nm_hash_ptr
guint nm_hash_str(const char *str);
#define nm_str_hash ((guint(*)(gconstpointer str)) nm_hash_str)
#define nm_str_hash ((guint (*)(gconstpointer str)) nm_hash_str)
#define nm_hash_vals(static_seed, ...) \
({ \

View file

@ -1504,7 +1504,7 @@ _nmtst_main_loop_quit_on_notify(GObject *object, GParamSpec *pspec, gpointer use
(timeout_msec), \
(poll_msec), \
condition)) \
g_assert(FALSE &&#condition); \
g_assert(FALSE && #condition); \
} \
G_STMT_END

View file

@ -641,7 +641,7 @@ _nm_printf(3, 4) static void _iovec_set_format(struct iovec *iov,
{ \
const char *_str_arg = (str_arg); \
\
nm_assert(_str_arg &&strlen(_str_arg) < (max_str_len)); \
nm_assert(_str_arg && strlen(_str_arg) < (max_str_len)); \
_iovec_set_format_a((iov), (max_str_len), format, str_arg); \
} \
G_STMT_END

View file

@ -6143,7 +6143,7 @@ nla_put_failure:
const int _dirfd = (dirfd); \
const char *const _path = (path); \
\
nm_assert(_path &&_path[0]); \
nm_assert(_path && _path[0]); \
g_assert(!strstr(_path, "/../")); \
if (_dirfd < 0) { \
nm_assert(!_pathid); \
@ -6151,7 +6151,7 @@ nla_put_failure:
nm_assert(NM_STR_HAS_PREFIX(_path, "/proc/sys/") || NM_STR_HAS_PREFIX(_path, "/sys/") \
|| NM_STR_HAS_PREFIX(_path, "/proc/net")); \
} else { \
nm_assert(_pathid &&_pathid[0] && _pathid[0] != '/'); \
nm_assert(_pathid && _pathid[0] && _pathid[0] != '/'); \
nm_assert(_path[0] != '/'); \
} \
} \

View file

@ -2007,8 +2007,8 @@ _vt_dedup_obj_clone(const NMDedupMultiObj *obj)
.obj_destroy = _vt_dedup_obj_destroy, \
.obj_full_hash_update = \
(void (*)(const NMDedupMultiObj *obj, NMHashState *h)) nmp_object_hash_update, \
.obj_full_equal = (gboolean(*)(const NMDedupMultiObj *obj_a, \
const NMDedupMultiObj *obj_b)) nmp_object_equal, \
.obj_full_equal = (gboolean (*)(const NMDedupMultiObj *obj_a, \
const NMDedupMultiObj *obj_b)) nmp_object_equal, \
}
/*****************************************************************************/

View file

@ -163,7 +163,7 @@ struct Request {
const ScriptInfo *const _script = (x_script); \
const Request *const _request = _script ? _script->request : NULL; \
\
nm_assert(_script &&_request); \
nm_assert(_script && _request); \
if (enabled_cmd) \
__LOG_print_S(print_cmd, _request, _script, ": "__VA_ARGS__); \
} \