summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-04-13 14:30:55 +0200
committerThomas Haller <thaller@redhat.com>2023-04-13 14:30:55 +0200
commit31b5bd72ebfc3c77ce3d80aaaaa06f1944dc7213 (patch)
tree2e791a99475c5ce729db00ad09f2bfe5183c0cdd
parent513c7f0280ceec0728a6e72d8a412d26ec77c279 (diff)
parent229163202dfc5e51b65c7c8e02b9df1880e1fb93 (diff)
downloadNetworkManager-31b5bd72ebfc3c77ce3d80aaaaa06f1944dc7213.tar.gz
gitlab: merge branch 'th/gitlab-ci-tiers'
Obsoletes: https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1595 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1601
-rw-r--r--.gitlab-ci.yml454
-rw-r--r--.gitlab-ci/ci.template92
-rw-r--r--.gitlab-ci/config.yml61
-rwxr-xr-x.gitlab-ci/run-test.sh89
-rwxr-xr-xcontrib/fedora/rpm/release.sh3
5 files changed, 412 insertions, 287 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 71fe4e4cd0..437f1961e1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -15,6 +15,8 @@
.templates_sha: &template_sha ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2 # see https://docs.gitlab.com/ee/ci/yaml/#includefile
+
+
include:
# Alpine container builder template
- project: 'freedesktop/ci-templates'
@@ -39,7 +41,9 @@ include:
stages:
- prep
- - test
+ - tier1
+ - tier2
+ - tier3
- deploy
- triage
- container_clean
@@ -53,17 +57,17 @@ variables:
#
# This is done by running `ci-fairy generate-template` and possibly bumping
# ".default_tag".
- FEDORA_TAG: '2023-01-18.0-82ad875db2dc'
- UBUNTU_TAG: '2023-01-18.0-b674114b79c1'
- DEBIAN_TAG: '2023-01-18.0-b674114b79c1'
- CENTOS_TAG: '2023-01-18.0-82ad875db2dc'
- ALPINE_TAG: '2023-01-18.0-14c807942fa4'
+ ALPINE_TAG: 'tag-c6ac275362b2'
+ CENTOS_TAG: 'tag-80e000f258af'
+ DEBIAN_TAG: 'tag-f961edd7a574'
+ FEDORA_TAG: 'tag-80e000f258af'
+ UBUNTU_TAG: 'tag-f961edd7a574'
+ ALPINE_EXEC: 'bash .gitlab-ci/alpine-install.sh'
+ CENTOS_EXEC: 'bash .gitlab-ci/fedora-install.sh'
+ DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh'
FEDORA_EXEC: 'bash .gitlab-ci/fedora-install.sh'
UBUNTU_EXEC: 'bash .gitlab-ci/debian-install.sh'
- DEBIAN_EXEC: 'bash .gitlab-ci/debian-install.sh'
- CENTOS_EXEC: 'bash .gitlab-ci/fedora-install.sh'
- ALPINE_EXEC: 'bash .gitlab-ci/alpine-install.sh'
.nm_artifacts:
variables:
@@ -93,97 +97,105 @@ variables:
# Build a container for each distribution + version. The ci-templates
# will re-use the containers if the tag doesn't change.
-fedora:30@container-prep:
+tier1:fedora:37@prep:
extends:
- .fdo.container-build@fedora
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '30'
+ FDO_DISTRIBUTION_VERSION: '37'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
-fedora:31@container-prep:
+tier2:fedora:36@prep:
extends:
- .fdo.container-build@fedora
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '31'
+ FDO_DISTRIBUTION_VERSION: '36'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
+ when: manual
-fedora:32@container-prep:
+tier2:fedora:38@prep:
extends:
- .fdo.container-build@fedora
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '32'
+ FDO_DISTRIBUTION_VERSION: '38'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
+ when: manual
-fedora:33@container-prep:
+tier3:fedora:30@prep:
extends:
- .fdo.container-build@fedora
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '33'
+ FDO_DISTRIBUTION_VERSION: '30'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
+ when: manual
-fedora:34@container-prep:
+tier3:fedora:31@prep:
extends:
- .fdo.container-build@fedora
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '34'
+ FDO_DISTRIBUTION_VERSION: '31'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
+ when: manual
-fedora:35@container-prep:
+tier3:fedora:32@prep:
extends:
- .fdo.container-build@fedora
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '35'
+ FDO_DISTRIBUTION_VERSION: '32'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
+ when: manual
-fedora:36@container-prep:
+tier3:fedora:33@prep:
extends:
- .fdo.container-build@fedora
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '36'
+ FDO_DISTRIBUTION_VERSION: '33'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
+ when: manual
-fedora:37@container-prep:
+tier3:fedora:34@prep:
extends:
- .fdo.container-build@fedora
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '37'
+ FDO_DISTRIBUTION_VERSION: '34'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
+ when: manual
-fedora:38@container-prep:
+tier3:fedora:35@prep:
extends:
- .fdo.container-build@fedora
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '38'
+ FDO_DISTRIBUTION_VERSION: '35'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC
+ when: manual
-ubuntu:18.04@container-prep:
+tier2:ubuntu:18.04@prep:
extends:
- .fdo.container-build@ubuntu
stage: prep
@@ -192,8 +204,9 @@ ubuntu:18.04@container-prep:
FDO_DISTRIBUTION_VERSION: '18.04'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC
+ when: manual
-ubuntu:20.04@container-prep:
+tier2:ubuntu:20.04@prep:
extends:
- .fdo.container-build@ubuntu
stage: prep
@@ -202,8 +215,9 @@ ubuntu:20.04@container-prep:
FDO_DISTRIBUTION_VERSION: '20.04'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC
+ when: manual
-ubuntu:22.04@container-prep:
+tier2:ubuntu:22.04@prep:
extends:
- .fdo.container-build@ubuntu
stage: prep
@@ -212,8 +226,9 @@ ubuntu:22.04@container-prep:
FDO_DISTRIBUTION_VERSION: '22.04'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC
+ when: manual
-ubuntu:devel@container-prep:
+tier2:ubuntu:devel@prep:
extends:
- .fdo.container-build@ubuntu
stage: prep
@@ -222,8 +237,9 @@ ubuntu:devel@container-prep:
FDO_DISTRIBUTION_VERSION: 'devel'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC
+ when: manual
-ubuntu:rolling@container-prep:
+tier2:ubuntu:rolling@prep:
extends:
- .fdo.container-build@ubuntu
stage: prep
@@ -232,58 +248,64 @@ ubuntu:rolling@container-prep:
FDO_DISTRIBUTION_VERSION: 'rolling'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC
+ when: manual
-debian:9@container-prep:
+tier2:debian:10@prep:
extends:
- .fdo.container-build@debian
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '9'
+ FDO_DISTRIBUTION_VERSION: '10'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
FDO_DISTRIBUTION_EXEC: $DEBIAN_EXEC
+ when: manual
-debian:10@container-prep:
+tier2:debian:11@prep:
extends:
- .fdo.container-build@debian
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '10'
+ FDO_DISTRIBUTION_VERSION: '11'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
FDO_DISTRIBUTION_EXEC: $DEBIAN_EXEC
+ when: manual
-debian:11@container-prep:
+tier2:debian:sid@prep:
extends:
- .fdo.container-build@debian
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '11'
+ FDO_DISTRIBUTION_VERSION: 'sid'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
FDO_DISTRIBUTION_EXEC: $DEBIAN_EXEC
+ when: manual
-debian:testing@container-prep:
+tier3:debian:9@prep:
extends:
- .fdo.container-build@debian
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: 'testing'
+ FDO_DISTRIBUTION_VERSION: '9'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
FDO_DISTRIBUTION_EXEC: $DEBIAN_EXEC
+ when: manual
-debian:sid@container-prep:
+tier3:debian:testing@prep:
extends:
- .fdo.container-build@debian
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: 'sid'
+ FDO_DISTRIBUTION_VERSION: 'testing'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
FDO_DISTRIBUTION_EXEC: $DEBIAN_EXEC
+ when: manual
-centos:7.5.1804@container-prep:
+tier2:centos:7.5.1804@prep:
extends:
- .fdo.container-build@centos
stage: prep
@@ -292,78 +314,86 @@ centos:7.5.1804@container-prep:
FDO_DISTRIBUTION_VERSION: '7.5.1804'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC
+ when: manual
-centos:7.6.1810@container-prep:
+tier2:centos:7.9.2009@prep:
extends:
- .fdo.container-build@centos
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '7.6.1810'
+ FDO_DISTRIBUTION_VERSION: '7.9.2009'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC
+ when: manual
-centos:7.7.1908@container-prep:
+tier2:centos:8.1.1911@prep:
extends:
- .fdo.container-build@centos
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '7.7.1908'
+ FDO_DISTRIBUTION_VERSION: '8.1.1911'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC
+ when: manual
-centos:7.8.2003@container-prep:
+tier2:centos:8.3.2011@prep:
extends:
- .fdo.container-build@centos
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '7.8.2003'
+ FDO_DISTRIBUTION_VERSION: '8.3.2011'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC
+ when: manual
-centos:7.9.2009@container-prep:
+tier3:centos:7.6.1810@prep:
extends:
- .fdo.container-build@centos
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '7.9.2009'
+ FDO_DISTRIBUTION_VERSION: '7.6.1810'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC
+ when: manual
-centos:8.1.1911@container-prep:
+tier3:centos:7.7.1908@prep:
extends:
- .fdo.container-build@centos
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '8.1.1911'
+ FDO_DISTRIBUTION_VERSION: '7.7.1908'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC
+ when: manual
-centos:8.2.2004@container-prep:
+tier3:centos:7.8.2003@prep:
extends:
- .fdo.container-build@centos
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '8.2.2004'
+ FDO_DISTRIBUTION_VERSION: '7.8.2003'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC
+ when: manual
-centos:8.3.2011@container-prep:
+tier3:centos:8.2.2004@prep:
extends:
- .fdo.container-build@centos
stage: prep
variables:
GIT_STRATEGY: none
- FDO_DISTRIBUTION_VERSION: '8.3.2011'
+ FDO_DISTRIBUTION_VERSION: '8.2.2004'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC
+ when: manual
-alpine:latest@container-prep:
+tier2:alpine:latest@prep:
extends:
- .fdo.container-build@alpine
stage: prep
@@ -372,6 +402,7 @@ alpine:latest@container-prep:
FDO_DISTRIBUTION_VERSION: 'latest'
FDO_DISTRIBUTION_TAG: $ALPINE_TAG
FDO_DISTRIBUTION_EXEC: $ALPINE_EXEC
+ when: manual
#################################################################
# #
@@ -407,85 +438,85 @@ alpine:latest@container-prep:
only:
- schedules
-fedora:30@container-clean:
+fedora:37@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '30'
+ FDO_DISTRIBUTION_VERSION: '37'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
-fedora:31@container-clean:
+fedora:36@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '31'
+ FDO_DISTRIBUTION_VERSION: '36'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
-fedora:32@container-clean:
+fedora:38@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '32'
+ FDO_DISTRIBUTION_VERSION: '38'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
-fedora:33@container-clean:
+fedora:30@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '33'
+ FDO_DISTRIBUTION_VERSION: '30'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
-fedora:34@container-clean:
+fedora:31@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '34'
+ FDO_DISTRIBUTION_VERSION: '31'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
-fedora:35@container-clean:
+fedora:32@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '35'
+ FDO_DISTRIBUTION_VERSION: '32'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
-fedora:36@container-clean:
+fedora:33@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '36'
+ FDO_DISTRIBUTION_VERSION: '33'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
-fedora:37@container-clean:
+fedora:34@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '37'
+ FDO_DISTRIBUTION_VERSION: '34'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
-fedora:38@container-clean:
+fedora:35@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/fedora/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '38'
+ FDO_DISTRIBUTION_VERSION: '35'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
ubuntu:18.04@container-clean:
@@ -533,49 +564,49 @@ ubuntu:rolling@container-clean:
FDO_DISTRIBUTION_VERSION: 'rolling'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
-debian:9@container-clean:
+debian:10@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/debian/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '9'
+ FDO_DISTRIBUTION_VERSION: '10'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
-debian:10@container-clean:
+debian:11@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/debian/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '10'
+ FDO_DISTRIBUTION_VERSION: '11'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
-debian:11@container-clean:
+debian:sid@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/debian/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '11'
+ FDO_DISTRIBUTION_VERSION: 'sid'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
-debian:testing@container-clean:
+debian:9@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/debian/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: 'testing'
+ FDO_DISTRIBUTION_VERSION: '9'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
-debian:sid@container-clean:
+debian:testing@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/debian/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: 'sid'
+ FDO_DISTRIBUTION_VERSION: 'testing'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
centos:7.5.1804@container-clean:
@@ -587,67 +618,67 @@ centos:7.5.1804@container-clean:
FDO_DISTRIBUTION_VERSION: '7.5.1804'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
-centos:7.6.1810@container-clean:
+centos:7.9.2009@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/centos/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '7.6.1810'
+ FDO_DISTRIBUTION_VERSION: '7.9.2009'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
-centos:7.7.1908@container-clean:
+centos:8.1.1911@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/centos/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '7.7.1908'
+ FDO_DISTRIBUTION_VERSION: '8.1.1911'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
-centos:7.8.2003@container-clean:
+centos:8.3.2011@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/centos/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '7.8.2003'
+ FDO_DISTRIBUTION_VERSION: '8.3.2011'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
-centos:7.9.2009@container-clean:
+centos:7.6.1810@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/centos/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '7.9.2009'
+ FDO_DISTRIBUTION_VERSION: '7.6.1810'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
-centos:8.1.1911@container-clean:
+centos:7.7.1908@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/centos/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '8.1.1911'
+ FDO_DISTRIBUTION_VERSION: '7.7.1908'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
-centos:8.2.2004@container-clean:
+centos:7.8.2003@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/centos/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '8.2.2004'
+ FDO_DISTRIBUTION_VERSION: '7.8.2003'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
-centos:8.3.2011@container-clean:
+centos:8.2.2004@container-clean:
extends:
- .container-clean
variables:
GIT_STRATEGY: none
CURRENT_CONTAINER_IMAGE: $CI_REGISTRY_IMAGE/centos/$FDO_DISTRIBUTION_VERSION:$FDO_DISTRIBUTION_TAG
- FDO_DISTRIBUTION_VERSION: '8.3.2011'
+ FDO_DISTRIBUTION_VERSION: '8.2.2004'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
alpine:latest@container-clean:
@@ -667,7 +698,6 @@ alpine:latest@container-clean:
#################################################################
.build@template:
- stage: test
script:
- env
- r=0
@@ -684,340 +714,352 @@ alpine:latest@container-clean:
#################################################################
-t_fedora:30:
+t_fedora:37:
extends:
- .build@template
- .fdo.distribution-image@fedora
- - .nm_artifacts_debug
+ - .nm_artifacts
+ stage: tier1
+ parallel:
+ matrix:
+ - NM_TEST_SELECT_RUN:
+ - autotools+gcc+docs+valgrind
+ - meson+gcc+docs+valgrind
+ - autotools+clang
+ - meson+clang
+ - rpm+autotools
+ - rpm+meson
+ - tarball
+ - subtree
variables:
- FDO_DISTRIBUTION_VERSION: '30'
+ FDO_DISTRIBUTION_VERSION: '37'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- - "fedora:30@container-prep"
- when: manual
+ - "tier1:fedora:37@prep"
-t_fedora:31:
+t_fedora:36:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .nm_artifacts_debug
+ stage: tier2
variables:
- FDO_DISTRIBUTION_VERSION: '31'
+ FDO_DISTRIBUTION_VERSION: '36'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- - "fedora:31@container-prep"
- when: manual
+ - "tier2:fedora:36@prep"
-t_fedora:32:
+t_fedora:38:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .nm_artifacts_debug
+ stage: tier2
variables:
- FDO_DISTRIBUTION_VERSION: '32'
+ FDO_DISTRIBUTION_VERSION: '38'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- - "fedora:32@container-prep"
- when: manual
+ - "tier2:fedora:38@prep"
-t_fedora:33:
+t_fedora:30:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .nm_artifacts_debug
+ stage: tier3
variables:
- FDO_DISTRIBUTION_VERSION: '33'
+ FDO_DISTRIBUTION_VERSION: '30'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- - "fedora:33@container-prep"
- when: manual
+ - "tier3:fedora:30@prep"
-t_fedora:34:
+t_fedora:31:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .nm_artifacts_debug
+ stage: tier3
variables:
- FDO_DISTRIBUTION_VERSION: '34'
+ FDO_DISTRIBUTION_VERSION: '31'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- - "fedora:34@container-prep"
- when: manual
+ - "tier3:fedora:31@prep"
-t_fedora:35:
+t_fedora:32:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .nm_artifacts_debug
+ stage: tier3
variables:
- FDO_DISTRIBUTION_VERSION: '35'
+ FDO_DISTRIBUTION_VERSION: '32'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- - "fedora:35@container-prep"
- when: manual
+ - "tier3:fedora:32@prep"
-t_fedora:36:
+t_fedora:33:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .nm_artifacts_debug
+ stage: tier3
variables:
- FDO_DISTRIBUTION_VERSION: '36'
+ FDO_DISTRIBUTION_VERSION: '33'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- - "fedora:36@container-prep"
- when: manual
+ - "tier3:fedora:33@prep"
-t_fedora:37:
+t_fedora:34:
extends:
- .build@template
- .fdo.distribution-image@fedora
- - .nm_artifacts
+ - .nm_artifacts_debug
+ stage: tier3
variables:
- FDO_DISTRIBUTION_VERSION: '37'
+ FDO_DISTRIBUTION_VERSION: '34'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- - "fedora:37@container-prep"
+ - "tier3:fedora:34@prep"
-t_fedora:38:
+t_fedora:35:
extends:
- .build@template
- .fdo.distribution-image@fedora
- .nm_artifacts_debug
+ stage: tier3
variables:
- FDO_DISTRIBUTION_VERSION: '38'
+ FDO_DISTRIBUTION_VERSION: '35'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- - "fedora:38@container-prep"
- when: manual
+ - "tier3:fedora:35@prep"
t_ubuntu:18.04:
extends:
- .build@template
- .fdo.distribution-image@ubuntu
- .nm_artifacts_debug
+ stage: tier2
variables:
FDO_DISTRIBUTION_VERSION: '18.04'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
needs:
- - "ubuntu:18.04@container-prep"
- when: manual
+ - "tier2:ubuntu:18.04@prep"
t_ubuntu:20.04:
extends:
- .build@template
- .fdo.distribution-image@ubuntu
- .nm_artifacts_debug
+ stage: tier2
variables:
FDO_DISTRIBUTION_VERSION: '20.04'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
needs:
- - "ubuntu:20.04@container-prep"
- when: manual
+ - "tier2:ubuntu:20.04@prep"
t_ubuntu:22.04:
extends:
- .build@template
- .fdo.distribution-image@ubuntu
- .nm_artifacts_debug
+ stage: tier2
variables:
FDO_DISTRIBUTION_VERSION: '22.04'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
needs:
- - "ubuntu:22.04@container-prep"
- when: manual
+ - "tier2:ubuntu:22.04@prep"
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:
- - "ubuntu:devel@container-prep"
- when: manual
+ - "tier2:ubuntu:devel@prep"
t_ubuntu:rolling:
extends:
- .build@template
- .fdo.distribution-image@ubuntu
- .nm_artifacts_debug
+ stage: tier2
variables:
FDO_DISTRIBUTION_VERSION: 'rolling'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
needs:
- - "ubuntu:rolling@container-prep"
- when: manual
+ - "tier2:ubuntu:rolling@prep"
-t_debian:9:
+t_debian:10:
extends:
- .build@template
- .fdo.distribution-image@debian
- .nm_artifacts_debug
+ stage: tier2
variables:
- FDO_DISTRIBUTION_VERSION: '9'
+ FDO_DISTRIBUTION_VERSION: '10'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
needs:
- - "debian:9@container-prep"
- when: manual
+ - "tier2:debian:10@prep"
-t_debian:10:
+t_debian:11:
extends:
- .build@template
- .fdo.distribution-image@debian
- .nm_artifacts_debug
+ stage: tier2
variables:
- FDO_DISTRIBUTION_VERSION: '10'
+ FDO_DISTRIBUTION_VERSION: '11'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
needs:
- - "debian:10@container-prep"
- when: manual
+ - "tier2:debian:11@prep"
-t_debian:11:
+t_debian:sid:
extends:
- .build@template
- .fdo.distribution-image@debian
- .nm_artifacts_debug
+ stage: tier2
variables:
- FDO_DISTRIBUTION_VERSION: '11'
+ FDO_DISTRIBUTION_VERSION: 'sid'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
needs:
- - "debian:11@container-prep"
- when: manual
+ - "tier2:debian:sid@prep"
-t_debian:testing:
+t_debian:9:
extends:
- .build@template
- .fdo.distribution-image@debian
- .nm_artifacts_debug
+ stage: tier3
variables:
- FDO_DISTRIBUTION_VERSION: 'testing'
+ FDO_DISTRIBUTION_VERSION: '9'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
needs:
- - "debian:testing@container-prep"
- when: manual
+ - "tier3:debian:9@prep"
-t_debian:sid:
+t_debian:testing:
extends:
- .build@template
- .fdo.distribution-image@debian
- .nm_artifacts_debug
+ stage: tier3
variables:
- FDO_DISTRIBUTION_VERSION: 'sid'
+ FDO_DISTRIBUTION_VERSION: 'testing'
FDO_DISTRIBUTION_TAG: $DEBIAN_TAG
needs:
- - "debian:sid@container-prep"
- when: manual
+ - "tier3:debian:testing@prep"
t_centos:7.5.1804:
extends:
- .build@template
- .fdo.distribution-image@centos
- .nm_artifacts_debug
+ stage: tier2
variables:
FDO_DISTRIBUTION_VERSION: '7.5.1804'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
needs:
- - "centos:7.5.1804@container-prep"
- when: manual
+ - "tier2:centos:7.5.1804@prep"
-t_centos:7.6.1810:
+t_centos:7.9.2009:
extends:
- .build@template
- .fdo.distribution-image@centos
- .nm_artifacts_debug
+ stage: tier2
variables:
- FDO_DISTRIBUTION_VERSION: '7.6.1810'
+ FDO_DISTRIBUTION_VERSION: '7.9.2009'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
needs:
- - "centos:7.6.1810@container-prep"
- when: manual
+ - "tier2:centos:7.9.2009@prep"
-t_centos:7.7.1908:
+t_centos:8.1.1911:
extends:
- .build@template
- .fdo.distribution-image@centos
- .nm_artifacts_debug
+ stage: tier2
variables:
- FDO_DISTRIBUTION_VERSION: '7.7.1908'
+ FDO_DISTRIBUTION_VERSION: '8.1.1911'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
needs:
- - "centos:7.7.1908@container-prep"
- when: manual
+ - "tier2:centos:8.1.1911@prep"
-t_centos:7.8.2003:
+t_centos:8.3.2011:
extends:
- .build@template
- .fdo.distribution-image@centos
- .nm_artifacts_debug
+ stage: tier2
variables:
- FDO_DISTRIBUTION_VERSION: '7.8.2003'
+ FDO_DISTRIBUTION_VERSION: '8.3.2011'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
needs:
- - "centos:7.8.2003@container-prep"
- when: manual
+ - "tier2:centos:8.3.2011@prep"
-t_centos:7.9.2009:
+t_centos:7.6.1810:
extends:
- .build@template
- .fdo.distribution-image@centos
- .nm_artifacts_debug
+ stage: tier3
variables:
- FDO_DISTRIBUTION_VERSION: '7.9.2009'
+ FDO_DISTRIBUTION_VERSION: '7.6.1810'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
needs:
- - "centos:7.9.2009@container-prep"
- when: manual
+ - "tier3:centos:7.6.1810@prep"
-t_centos:8.1.1911:
+t_centos:7.7.1908:
extends:
- .build@template
- .fdo.distribution-image@centos
- .nm_artifacts_debug
+ stage: tier3
variables:
- FDO_DISTRIBUTION_VERSION: '8.1.1911'
+ FDO_DISTRIBUTION_VERSION: '7.7.1908'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
needs:
- - "centos:8.1.1911@container-prep"
- when: manual
+ - "tier3:centos:7.7.1908@prep"
-t_centos:8.2.2004:
+t_centos:7.8.2003:
extends:
- .build@template
- .fdo.distribution-image@centos
- .nm_artifacts_debug
+ stage: tier3
variables:
- FDO_DISTRIBUTION_VERSION: '8.2.2004'
+ FDO_DISTRIBUTION_VERSION: '7.8.2003'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
needs:
- - "centos:8.2.2004@container-prep"
- when: manual
+ - "tier3:centos:7.8.2003@prep"
-t_centos:8.3.2011:
+t_centos:8.2.2004:
extends:
- .build@template
- .fdo.distribution-image@centos
- .nm_artifacts_debug
+ stage: tier3
variables:
- FDO_DISTRIBUTION_VERSION: '8.3.2011'
+ FDO_DISTRIBUTION_VERSION: '8.2.2004'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
needs:
- - "centos:8.3.2011@container-prep"
- when: manual
+ - "tier3:centos:8.2.2004@prep"
t_alpine:latest:
extends:
- .build@template
- .fdo.distribution-image@alpine
- .nm_artifacts_debug
+ stage: tier2
variables:
FDO_DISTRIBUTION_VERSION: 'latest'
FDO_DISTRIBUTION_TAG: $ALPINE_TAG
needs:
- - "alpine:latest@container-prep"
- when: manual
+ - "tier2:alpine:latest@prep"
#################################################################
# #
@@ -1032,8 +1074,8 @@ check-patch:
FDO_DISTRIBUTION_VERSION: '37'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- - "fedora:37@container-prep"
- stage: test
+ - "tier1:fedora:37@prep"
+ stage: tier1
script:
- date '+%Y%m%d-%H%M%S'; NM_CHECKPATCH_FETCH_UPSTREAM=1 contrib/scripts/checkpatch-feature-branch.sh
allow_failure: true
@@ -1045,8 +1087,8 @@ check-tree:
FDO_DISTRIBUTION_VERSION: '37'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- - "fedora:37@container-prep"
- stage: test
+ - "tier1:fedora:37@prep"
+ stage: tier1
script:
- date '+%Y%m%d-%H%M%S'; contrib/scripts/nm-python-black-format.sh --check
- date '+%Y%m%d-%H%M%S'; git ls-files -z -- 'po/*.po' | xargs -0 -n1 msgfmt -vc
@@ -1064,9 +1106,9 @@ pages:
only:
- main
dependencies:
- - t_fedora:37
+ - "t_fedora:37: [autotools+gcc+docs+valgrind]"
needs:
- - t_fedora:37
+ - "t_fedora:37: [autotools+gcc+docs+valgrind]"
triage:issues:
stage: triage
diff --git a/.gitlab-ci/ci.template b/.gitlab-ci/ci.template
index 02b33ff3bc..a62e9e58e4 100644
--- a/.gitlab-ci/ci.template
+++ b/.gitlab-ci/ci.template
@@ -17,17 +17,37 @@
.templates_sha: &template_sha ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2 # see https://docs.gitlab.com/ee/ci/yaml/#includefile
+{# Group distros by their common (name,) tuples.#}
+{% set distro_groups = [] %}
+{% for distro in distributions %}
+ {% set g = {'name':distro.name} %}
+ {% if g not in distro_groups %}
+ {% do distro_groups.append(g) %}
+ {% endif %}
+{% endfor %}
+
+{# The "default_distro" builds our pages and is used for check-{tree,patch} tests. It is the first distro with tier 1. #}
+{% set default_distro = [] %}
+{% for distro in distributions %}
+ {% if distro.tier == 1 and default_distro|length == 0 %}
+ {% do default_distro.append(distro) %}
+ {% endif %}
+{% endfor %}
+{% set default_distro = default_distro[0] %}
+
include:
-{% for distro in distributions|sort(attribute="name") %}
- # {{ distro.name.capitalize() }} container builder template
+{% for distro_group in distro_groups|sort(attribute='name') %}
+ # {{ distro_group.name.capitalize() }} container builder template
- project: 'freedesktop/ci-templates'
ref: *template_sha
- file: '/templates/{{distro.name}}.yml'
+ file: '/templates/{{distro_group.name}}.yml'
{% endfor %}
stages:
- prep
- - test
+ - tier1
+ - tier2
+ - tier3
- deploy
- triage
- container_clean
@@ -41,17 +61,17 @@ variables:
#
# This is done by running `ci-fairy generate-template` and possibly bumping
# ".default_tag".
-{% for distro in distributions %}
- {{"%-13s"| format(distro.name.upper() + '_TAG:')}}'{{distro.tag}}-{{
+{% for distro_group in distro_groups|sort(attribute='name') %}
+ {{"%-13s"| format(distro_group.name.upper() + '_TAG:')}}'tag-{{
(ci_fairy.hashfiles('./.gitlab-ci/config.yml',
'./.gitlab-ci/ci.template',
- './.gitlab-ci/' + distro.base_type + '-install.sh',
- './contrib/' + distro.base_type + '/REQUIRED_PACKAGES'))[0:12]
+ './.gitlab-ci/' + base_types[distro_group.name] + '-install.sh',
+ './contrib/' + base_types[distro_group.name] + '/REQUIRED_PACKAGES'))[0:12]
}}'
{% endfor %}
-{% for distro in distributions %}
- {{"%-13s"| format(distro.name.upper() + '_EXEC:')}}'bash .gitlab-ci/{{distro.base_type}}-install.sh'
+{% for distro_group in distro_groups|sort(attribute='name') %}
+ {{"%-13s"| format(distro_group.name.upper() + '_EXEC:')}}'bash .gitlab-ci/{{base_types[distro_group.name]}}-install.sh'
{% endfor %}
.nm_artifacts:
@@ -84,7 +104,7 @@ variables:
{% for distro in distributions %}
{% for version in distro.versions %}
-{{distro.name}}:{{version}}@container-prep:
+tier{{distro.tier}}:{{distro.name}}:{{version}}@prep:
extends:
- .fdo.container-build@{{distro.name}}
stage: prep
@@ -93,6 +113,9 @@ variables:
FDO_DISTRIBUTION_VERSION: '{{version}}'
FDO_DISTRIBUTION_TAG: ${{distro.name.upper()}}_TAG
FDO_DISTRIBUTION_EXEC: ${{distro.name.upper()}}_EXEC
+{% if distro.tier > 1 %}
+ when: manual
+{% endif %}
{% endfor %}
{% endfor %}
@@ -151,7 +174,6 @@ variables:
#################################################################
.build@template:
- stage: test
script:
- env
- r=0
@@ -174,12 +196,25 @@ t_{{distro.name}}:{{version}}:
extends:
- .build@template
- .fdo.distribution-image@{{distro.name}}
-{% if distro.name == pages_build.name and
- version == pages_build.version %}
+{% if distro == default_distro %}
- .nm_artifacts
{% else %}
- .nm_artifacts_debug
{% endif %}
+ stage: tier{{distro.tier}}
+{% if distro.tier <= 1 %}
+ parallel:
+ matrix:
+ - NM_TEST_SELECT_RUN:
+ - autotools+gcc+docs+valgrind
+ - meson+gcc+docs+valgrind
+ - autotools+clang
+ - meson+clang
+ - rpm+autotools
+ - rpm+meson
+ - tarball
+ - subtree
+{% endif %}
variables:
FDO_DISTRIBUTION_VERSION: '{{version}}'
FDO_DISTRIBUTION_TAG: ${{distro.name.upper()}}_TAG
@@ -190,10 +225,7 @@ t_{{distro.name}}:{{version}}:
{% endfor %}
{% endif %}
needs:
- - "{{distro.name}}:{{version}}@container-prep"
-{% if not version in distro.get('always', []) and (distro.name != pages_build.name or version != pages_build.version) %}
- when: manual
-{% endif %}
+ - "tier{{distro.tier}}:{{distro.name}}:{{version}}@prep"
{% endfor %}
{% endfor %}
@@ -205,26 +237,26 @@ t_{{distro.name}}:{{version}}:
check-patch:
extends:
- - .fdo.distribution-image@{{pages_build.name}}
+ - .fdo.distribution-image@{{default_distro.name}}
variables:
- FDO_DISTRIBUTION_VERSION: '{{pages_build.version}}'
- FDO_DISTRIBUTION_TAG: ${{pages_build.name.upper()}}_TAG
+ FDO_DISTRIBUTION_VERSION: '{{default_distro.versions[0]}}'
+ FDO_DISTRIBUTION_TAG: ${{default_distro.name.upper()}}_TAG
needs:
- - "{{pages_build.name}}:{{pages_build.version}}@container-prep"
- stage: test
+ - "tier{{default_distro.tier}}:{{default_distro.name}}:{{default_distro.versions[0]}}@prep"
+ stage: tier1
script:
- date '+%Y%m%d-%H%M%S'; NM_CHECKPATCH_FETCH_UPSTREAM=1 contrib/scripts/checkpatch-feature-branch.sh
allow_failure: true
check-tree:
extends:
- - .fdo.distribution-image@{{pages_build.name}}
+ - .fdo.distribution-image@{{default_distro.name}}
variables:
- FDO_DISTRIBUTION_VERSION: '{{pages_build.version}}'
- FDO_DISTRIBUTION_TAG: ${{pages_build.name.upper()}}_TAG
+ FDO_DISTRIBUTION_VERSION: '{{default_distro.versions[0]}}'
+ FDO_DISTRIBUTION_TAG: ${{default_distro.name.upper()}}_TAG
needs:
- - "{{pages_build.name}}:{{pages_build.version}}@container-prep"
- stage: test
+ - "tier{{default_distro.tier}}:{{default_distro.name}}:{{default_distro.versions[0]}}@prep"
+ stage: tier1
script:
- date '+%Y%m%d-%H%M%S'; contrib/scripts/nm-python-black-format.sh --check
- date '+%Y%m%d-%H%M%S'; git ls-files -z -- 'po/*.po' | xargs -0 -n1 msgfmt -vc
@@ -242,9 +274,9 @@ pages:
only:
- main
dependencies:
- - t_{{pages_build.name}}:{{pages_build.version}}
+ - "t_{{default_distro.name}}:{{default_distro.versions[0]}}: [autotools+gcc+docs+valgrind]"
needs:
- - t_{{pages_build.name}}:{{pages_build.version}}
+ - "t_{{default_distro.name}}:{{default_distro.versions[0]}}: [autotools+gcc+docs+valgrind]"
triage:issues:
stage: triage
diff --git a/.gitlab-ci/config.yml b/.gitlab-ci/config.yml
index 117785c8c3..8aafe0c48b 100644
--- a/.gitlab-ci/config.yml
+++ b/.gitlab-ci/config.yml
@@ -7,16 +7,29 @@
# https://gitlab.freedesktop.org/freedesktop/ci-templates
#
-# We're happy to rebuild all containers when one changes.
-.default_tag: &default_tag '2023-01-18.0'
-
+# Some distros are fairly similar, and we reuse similar scripts.
+# The base type maps the distro name to their base.
+base_types:
+ fedora: fedora
+ centos: fedora
+ debian: debian
+ ubuntu: debian
+ alpine: alpine
# The list of all distributions we want to create job for.
-# The template generates manual jobs for all these.
distributions:
- name: fedora
- tag: *default_tag
- base_type: fedora
+ # The first tier:1 in the list is used to build the pages and check-{tree,patch}
+ tier: 1
+ versions:
+ - '37'
+ - name: fedora
+ tier: 2
+ versions:
+ - '36'
+ - '38'
+ - name: fedora
+ tier: 3
versions:
- '30'
- '31'
@@ -24,12 +37,8 @@ distributions:
- '33'
- '34'
- '35'
- - '36'
- - '37'
- - '38'
- name: ubuntu
- tag: *default_tag
- base_type: debian
+ tier: 2
versions:
- '18.04'
- '20.04'
@@ -37,33 +46,31 @@ distributions:
- 'devel'
- 'rolling'
- name: debian
- tag: *default_tag
- base_type: debian
+ tier: 2
versions:
- - '9'
- '10'
- '11'
- - 'testing'
- 'sid'
+ - name: debian
+ tier: 3
+ versions:
+ - '9'
+ - 'testing'
- name: centos
- tag: *default_tag
- base_type: fedora
+ tier: 2
versions:
- '7.5.1804'
+ - '7.9.2009'
+ - '8.1.1911'
+ - '8.3.2011'
+ - name: centos
+ tier: 3
+ versions:
- '7.6.1810'
- '7.7.1908'
- '7.8.2003'
- - '7.9.2009'
- - '8.1.1911'
- '8.2.2004'
- - '8.3.2011'
- name: alpine
- tag: *default_tag
- base_type: alpine
+ tier: 2
versions:
- 'latest'
-
-# specifies which of the above distros is used as source for pages
-pages_build:
- name: fedora
- version: '37'
diff --git a/.gitlab-ci/run-test.sh b/.gitlab-ci/run-test.sh
index d991010dc1..50d0903619 100755
--- a/.gitlab-ci/run-test.sh
+++ b/.gitlab-ci/run-test.sh
@@ -2,6 +2,11 @@
set -ex
+die() {
+ printf "%s\n" "$*" >&2
+ exit 1
+}
+
export PAGER=cat
export OMP_NUM_THREADS=1
@@ -44,18 +49,58 @@ meson --version
# to run that test as part of the build. Disable it.
export NMTST_SKIP_CHECK_GITLAB_CI=1
+# Assert that "$1" is one of the valid values for NM_TEST_SELECT_RUN. die() otherwise.
+check_run_assert() {
+ { set +x; } 2>/dev/null
+ local run="$1"
+ local a
+
+ # These are the supported $NM_TEST_SELECT_RUN values.
+ local _CHECK_RUN_LIST=(
+ autotools+gcc+docs+valgrind
+ meson+gcc+docs+valgrind
+ autotools+clang
+ meson+clang
+ autotools+gcc+docs+el7+py2
+ rpm+autotools
+ rpm+meson
+ tarball
+ subtree
+
+ all
+ none
+ )
+
+ if [ "$run" = all ] ; then
+ set -x
+ return 0
+ fi
+
+ for a in "${_CHECK_RUN_LIST[@]}" ; do
+ if [ "$a" = "$run" ] ; then
+ set -x
+ return 0
+ fi
+ done
+ die "invalid NM_TEST_SELECT_RUN value \"$1\""
+}
+
+[ -z "$NM_TEST_SELECT_RUN" ] && NM_TEST_SELECT_RUN=all
+check_run_assert "$NM_TEST_SELECT_RUN"
+
check_run() {
local test_no="$1"
+ check_run_assert "$test_no"
+
# Usually, we run the build several times. However, for testing
# the build script manually, it can be useful to explicitly select
# one step to run. For example, if step 3 is known to fail, you
- # can still manually run step 4 by setting NM_TEST_SELECT_RUN=4.
+ # can still manually run step A by setting NM_TEST_SELECT_RUN=A.
- test -z "$NM_TEST_SELECT_RUN" -o "$NM_TEST_SELECT_RUN" = "$test_no"
+ test "$NM_TEST_SELECT_RUN" = all -o "$NM_TEST_SELECT_RUN" = "$test_no"
}
-
check_run_clean() {
if ! check_run "$1" ; then
return 1
@@ -64,21 +109,21 @@ check_run_clean() {
return 0
}
-if check_run_clean 1 ; then
+if check_run_clean autotools+gcc+docs+valgrind ; then
BUILD_TYPE=autotools CC=gcc WITH_DOCS=1 WITH_VALGRIND=1 contrib/scripts/nm-ci-run.sh
mv build/INST/share/gtk-doc/html "$ARTIFACT_DIR/docs-html"
fi
-check_run_clean 2 && BUILD_TYPE=meson CC=gcc WITH_DOCS=1 WITH_VALGRIND=1 contrib/scripts/nm-ci-run.sh
-check_run_clean 3 && BUILD_TYPE=autotools CC=clang WITH_DOCS=0 contrib/scripts/nm-ci-run.sh
-check_run_clean 4 && BUILD_TYPE=meson CC=clang WITH_DOCS=0 contrib/scripts/nm-ci-run.sh
+check_run_clean meson+gcc+docs+valgrind && BUILD_TYPE=meson CC=gcc WITH_DOCS=1 WITH_VALGRIND=1 contrib/scripts/nm-ci-run.sh
+check_run_clean autotools+clang && BUILD_TYPE=autotools CC=clang WITH_DOCS=0 contrib/scripts/nm-ci-run.sh
+check_run_clean meson+clang && BUILD_TYPE=meson CC=clang WITH_DOCS=0 contrib/scripts/nm-ci-run.sh
-check_run_clean 5 && test $IS_CENTOS_7 = 1 && PYTHON=python2 BUILD_TYPE=autotools CC=gcc WITH_DOCS=1 contrib/scripts/nm-ci-run.sh
+check_run_clean autotools+gcc+docs+el7+py2 && test $IS_CENTOS_7 = 1 && PYTHON=python2 BUILD_TYPE=autotools CC=gcc WITH_DOCS=1 contrib/scripts/nm-ci-run.sh
-check_run_clean 6 && test $IS_FEDORA = 1 -o $IS_CENTOS = 1 && ./contrib/fedora/rpm/build_clean.sh -g -w crypto_gnutls -w debug -w iwd -w test -W meson
-check_run_clean 7 && test $IS_FEDORA = 1 && ./contrib/fedora/rpm/build_clean.sh -g -w crypto_gnutls -w debug -w iwd -w test -w meson
+check_run_clean rpm+autotools && test $IS_FEDORA = 1 -o $IS_CENTOS = 1 && ./contrib/fedora/rpm/build_clean.sh -g -w crypto_gnutls -w debug -w iwd -w test -W meson
+check_run_clean rpm+meson && test $IS_FEDORA = 1 && ./contrib/fedora/rpm/build_clean.sh -g -w crypto_gnutls -w debug -w iwd -w test -w meson
-if check_run_clean 8 && [ "$NM_BUILD_TARBALL" = 1 ]; then
+if check_run_clean tarball && [ "$NM_BUILD_TARBALL" = 1 ]; then
SIGN_SOURCE=0 ./contrib/fedora/rpm/build_clean.sh -r
mv ./NetworkManager-1*.tar.xz "$ARTIFACT_DIR/"
mv ./contrib/fedora/rpm/latest/SRPMS/NetworkManager-1*.src.rpm "$ARTIFACT_DIR/"
@@ -110,7 +155,7 @@ test_subtree() {
popd
}
-if check_run_clean 10; then
+if check_run_clean subtree; then
for d in c-list c-rbtree c-siphash c-stdaux n-acd n-dhcp4 ; do
for cc in gcc clang; do
test_subtree "$d" "$cc"
@@ -120,18 +165,16 @@ fi
###############################################################################
-if [ -z "$NM_TEST_SELECT_RUN" ] ; then
+if [ "$NM_BUILD_TARBALL" = 1 ]; then
do_clean
- if [ "$NM_BUILD_TARBALL" = 1 ]; then
- if check_run 1 ; then
- mv "$ARTIFACT_DIR/docs-html/" ./
- fi
- if check_run 8 ; then
- mv \
- "$ARTIFACT_DIR"/NetworkManager-1*.tar.xz \
- "$ARTIFACT_DIR"/NetworkManager-1*.src.rpm \
- ./
- fi
+ if check_run autotools+gcc+docs+valgrind ; then
+ mv "$ARTIFACT_DIR/docs-html/" ./
+ fi
+ if check_run tarball ; then
+ mv \
+ "$ARTIFACT_DIR"/NetworkManager-1*.tar.xz \
+ "$ARTIFACT_DIR"/NetworkManager-1*.src.rpm \
+ ./
fi
fi
diff --git a/contrib/fedora/rpm/release.sh b/contrib/fedora/rpm/release.sh
index f4ee4cb65d..09e0417ceb 100755
--- a/contrib/fedora/rpm/release.sh
+++ b/contrib/fedora/rpm/release.sh
@@ -131,7 +131,7 @@ check_gitlab_pipeline() {
return 1
fi
- PIPELINE_STATUSES="$(curl --no-progress-meter "https://gitlab.freedesktop.org/api/v4/projects/411/pipelines/$PIPELINE_ID/jobs" 2>/dev/null | jq '.[].status')"
+ PIPELINE_STATUSES="$(curl --no-progress-meter "https://gitlab.freedesktop.org/api/v4/projects/411/pipelines/$PIPELINE_ID/jobs?per_page=100" 2>/dev/null | jq '.[] | select(.stage!="prep" and .stage!="tier3") | .status')"
if ! echo "$PIPELINE_STATUSES" | grep -q '^"success"$' ; then
echo "Cannot find successful jobs for branch $BRANCH. Check \"https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/pipelines/$PIPELINE_ID\""
@@ -414,6 +414,7 @@ fi
if [ $CHECK_GITLAB = 1 ]; then
if ! check_gitlab_pipeline "$CUR_BRANCH" "$CUR_HEAD" ; then
echo "Check the pipelines for branch \"$CUR_BRANCH\" at https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/pipelines?ref=$CUR_BRANCH"
+ echo "Wait for pipeline with \`ci-fairy wait-for-pipeline --project NetworkManager/NetworkManager --sha \"$CUR_HEAD\"\`"
die "It seems not all gitlab-ci jobs were running/succeeding. Skip this check with --no-check-gitlab"
fi
fi