summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-04-11 12:23:30 +0200
committerThomas Haller <thaller@redhat.com>2023-04-13 09:08:03 +0200
commitb06ddab9d42a3ca3379ff6f6d5997a0fd5cc5bea (patch)
tree152dd40088fd1c6c82548729f32e0e1ecfc93cbc
parentd39fb6f0148af24d3325b9ea91e3c0a0ea873306 (diff)
downloadNetworkManager-b06ddab9d42a3ca3379ff6f6d5997a0fd5cc5bea.tar.gz
gitlab-ci: add multiple stages/tiers for tests
We have many test configurations (i.e. distros like fedora:37, debian:9). Almost all of them run manually triggered, because running them every time would be wasteful. Still, even as we trigger those tests only seldom, whenever we trigger them all together, they consume still too many resources of the freedesktop.org gitlab infrastructure. One possibility would be to just drop old distros (e.g. fedora:30). Which tests are setup in gitlab-ci is constantly refined and adjusted. So dropping some distros is not necessarily wrong and bound to happen eventually. However, I also don't find it great to just disable tests that are still passing. If we want to avoid consuming too many resources, we can just choose not to run those tests. We don't need to enforce that by deleting tests. Once deleted, such a configuration cannot be tested anymore as it would be too cumbersome to recreate the setup manually. Instead, introduce stages/tiers to clearer mark configuration that we should test even less frequently. Note that it is still required from the developer to not trigger too many tests at once, to not monopolize the CI resources. The stages should make that clearer to see, but don't solve it. Deleting tests might solve it, but only if we delete a significant number of those tests, which seems not desirable.
-rw-r--r--.gitlab-ci.yml355
-rw-r--r--.gitlab-ci/ci.template71
-rw-r--r--.gitlab-ci/config.yml49
3 files changed, 273 insertions, 202 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 71fe4e4cd0..eeae024b6b 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: '2023-04-11.0-c319e2a8ce5b'
+ CENTOS_TAG: '2023-04-11.0-3322a2e54777'
+ DEBIAN_TAG: '2023-04-11.0-b529fd8eba83'
+ FEDORA_TAG: '2023-04-11.0-3322a2e54777'
+ UBUNTU_TAG: '2023-04-11.0-b529fd8eba83'
+ 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,93 +97,93 @@ 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:
+fedora:37@container-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:
+fedora:36@container-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
-fedora:32@container-prep:
+fedora:38@container-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
-fedora:33@container-prep:
+fedora:30@container-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
-fedora:34@container-prep:
+fedora:31@container-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
-fedora:35@container-prep:
+fedora:32@container-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
-fedora:36@container-prep:
+fedora:33@container-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
-fedora:37@container-prep:
+fedora:34@container-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
-fedora:38@container-prep:
+fedora:35@container-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
@@ -233,53 +237,53 @@ ubuntu:rolling@container-prep:
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC
-debian:9@container-prep:
+debian:10@container-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
-debian:10@container-prep:
+debian:11@container-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
-debian:11@container-prep:
+debian:sid@container-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
-debian:testing@container-prep:
+debian:9@container-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
-debian:sid@container-prep:
+debian:testing@container-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
@@ -293,73 +297,73 @@ centos:7.5.1804@container-prep:
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC
-centos:7.6.1810@container-prep:
+centos:7.9.2009@container-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
-centos:7.7.1908@container-prep:
+centos:8.1.1911@container-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
-centos:7.8.2003@container-prep:
+centos:8.3.2011@container-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
-centos:7.9.2009@container-prep:
+centos:7.6.1810@container-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
-centos:8.1.1911@container-prep:
+centos:7.7.1908@container-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
-centos:8.2.2004@container-prep:
+centos:7.8.2003@container-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
-centos:8.3.2011@container-prep:
+centos:8.2.2004@container-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
@@ -407,85 +411,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 +537,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 +591,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 +671,6 @@ alpine:latest@container-clean:
#################################################################
.build@template:
- stage: test
script:
- env
- r=0
@@ -684,111 +687,120 @@ alpine:latest@container-clean:
#################################################################
-t_fedora:30:
+t_fedora:37:
extends:
- .build@template
- .fdo.distribution-image@fedora
- - .nm_artifacts_debug
+ - .nm_artifacts
+ stage: tier1
variables:
- FDO_DISTRIBUTION_VERSION: '30'
+ FDO_DISTRIBUTION_VERSION: '37'
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- - "fedora:30@container-prep"
- when: manual
+ - "fedora:37@container-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"
+ - "fedora:36@container-prep"
when: manual
-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"
+ - "fedora:38@container-prep"
when: manual
-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"
+ - "fedora:30@container-prep"
when: manual
-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"
+ - "fedora:31@container-prep"
when: manual
-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"
+ - "fedora:32@container-prep"
when: manual
-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"
+ - "fedora:33@container-prep"
when: manual
-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"
+ - "fedora:34@container-prep"
+ when: manual
-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"
+ - "fedora:35@container-prep"
when: manual
t_ubuntu:18.04:
@@ -796,6 +808,7 @@ t_ubuntu:18.04:
- .build@template
- .fdo.distribution-image@ubuntu
- .nm_artifacts_debug
+ stage: tier2
variables:
FDO_DISTRIBUTION_VERSION: '18.04'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
@@ -808,6 +821,7 @@ t_ubuntu:20.04:
- .build@template
- .fdo.distribution-image@ubuntu
- .nm_artifacts_debug
+ stage: tier2
variables:
FDO_DISTRIBUTION_VERSION: '20.04'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
@@ -820,6 +834,7 @@ t_ubuntu:22.04:
- .build@template
- .fdo.distribution-image@ubuntu
- .nm_artifacts_debug
+ stage: tier2
variables:
FDO_DISTRIBUTION_VERSION: '22.04'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
@@ -832,6 +847,7 @@ t_ubuntu:devel:
- .build@template
- .fdo.distribution-image@ubuntu
- .nm_artifacts_debug
+ stage: tier2
variables:
FDO_DISTRIBUTION_VERSION: 'devel'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
@@ -844,6 +860,7 @@ t_ubuntu:rolling:
- .build@template
- .fdo.distribution-image@ubuntu
- .nm_artifacts_debug
+ stage: tier2
variables:
FDO_DISTRIBUTION_VERSION: 'rolling'
FDO_DISTRIBUTION_TAG: $UBUNTU_TAG
@@ -851,64 +868,69 @@ t_ubuntu:rolling:
- "ubuntu:rolling@container-prep"
when: manual
-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"
+ - "debian:10@container-prep"
when: manual
-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"
+ - "debian:11@container-prep"
when: manual
-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"
+ - "debian:sid@container-prep"
when: manual
-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"
+ - "debian:9@container-prep"
when: manual
-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"
+ - "debian:testing@container-prep"
when: manual
t_centos:7.5.1804:
@@ -916,6 +938,7 @@ t_centos:7.5.1804:
- .build@template
- .fdo.distribution-image@centos
- .nm_artifacts_debug
+ stage: tier2
variables:
FDO_DISTRIBUTION_VERSION: '7.5.1804'
FDO_DISTRIBUTION_TAG: $CENTOS_TAG
@@ -923,88 +946,95 @@ t_centos:7.5.1804:
- "centos:7.5.1804@container-prep"
when: manual
-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"
+ - "centos:7.9.2009@container-prep"
when: manual
-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"
+ - "centos:8.1.1911@container-prep"
when: manual
-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"
+ - "centos:8.3.2011@container-prep"
when: manual
-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"
+ - "centos:7.6.1810@container-prep"
when: manual
-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"
+ - "centos:7.7.1908@container-prep"
when: manual
-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"
+ - "centos:7.8.2003@container-prep"
when: manual
-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"
+ - "centos:8.2.2004@container-prep"
when: manual
t_alpine:latest:
@@ -1012,6 +1042,7 @@ t_alpine:latest:
- .build@template
- .fdo.distribution-image@alpine
- .nm_artifacts_debug
+ stage: tier2
variables:
FDO_DISTRIBUTION_VERSION: 'latest'
FDO_DISTRIBUTION_TAG: $ALPINE_TAG
@@ -1033,7 +1064,7 @@ check-patch:
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- "fedora:37@container-prep"
- stage: test
+ stage: tier1
script:
- date '+%Y%m%d-%H%M%S'; NM_CHECKPATCH_FETCH_UPSTREAM=1 contrib/scripts/checkpatch-feature-branch.sh
allow_failure: true
@@ -1046,7 +1077,7 @@ check-tree:
FDO_DISTRIBUTION_TAG: $FEDORA_TAG
needs:
- "fedora:37@container-prep"
- stage: test
+ 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
diff --git a/.gitlab-ci/ci.template b/.gitlab-ci/ci.template
index 02b33ff3bc..e06b9210c5 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,base_type,tag) tuples.#}
+{% set distro_groups = [] %}
+{% for distro in distributions %}
+ {% set g = {'name':distro.name,'base_type':distro.base_type,'tag':distro.tag} %}
+ {% 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:')}}'{{distro_group.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/' + distro_group.base_type + '-install.sh',
+ './contrib/' + distro_group.base_type + '/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/{{distro_group.base_type}}-install.sh'
{% endfor %}
.nm_artifacts:
@@ -151,7 +171,6 @@ variables:
#################################################################
.build@template:
- stage: test
script:
- env
- r=0
@@ -174,12 +193,12 @@ 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}}
variables:
FDO_DISTRIBUTION_VERSION: '{{version}}'
FDO_DISTRIBUTION_TAG: ${{distro.name.upper()}}_TAG
@@ -191,7 +210,7 @@ t_{{distro.name}}:{{version}}:
{% 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) %}
+{% if distro.tier > 1 %}
when: manual
{% endif %}
{% endfor %}
@@ -205,26 +224,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
+ - "{{default_distro.name}}:{{default_distro.versions[0]}}@container-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
+ - "{{default_distro.name}}:{{default_distro.versions[0]}}@container-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 +261,9 @@ pages:
only:
- main
dependencies:
- - t_{{pages_build.name}}:{{pages_build.version}}
+ - t_{{default_distro.name}}:{{default_distro.versions[0]}}
needs:
- - t_{{pages_build.name}}:{{pages_build.version}}
+ - t_{{default_distro.name}}:{{default_distro.versions[0]}}
triage:issues:
stage: triage
diff --git a/.gitlab-ci/config.yml b/.gitlab-ci/config.yml
index 117785c8c3..7508fec74b 100644
--- a/.gitlab-ci/config.yml
+++ b/.gitlab-ci/config.yml
@@ -8,7 +8,7 @@
#
# We're happy to rebuild all containers when one changes.
-.default_tag: &default_tag '2023-01-18.0'
+.default_tag: &default_tag '2023-04-11.0'
# The list of all distributions we want to create job for.
@@ -17,6 +17,21 @@ distributions:
- name: fedora
tag: *default_tag
base_type: fedora
+ # Tier1 is used to build the pages and check-{tree,patch}
+ tier: 1
+ versions:
+ - '37'
+ - name: fedora
+ tag: *default_tag
+ base_type: fedora
+ tier: 2
+ versions:
+ - '36'
+ - '38'
+ - name: fedora
+ tag: *default_tag
+ base_type: fedora
+ tier: 3
versions:
- '30'
- '31'
@@ -24,12 +39,10 @@ distributions:
- '33'
- '34'
- '35'
- - '36'
- - '37'
- - '38'
- name: ubuntu
tag: *default_tag
base_type: debian
+ tier: 2
versions:
- '18.04'
- '20.04'
@@ -39,31 +52,39 @@ distributions:
- name: debian
tag: *default_tag
base_type: debian
+ tier: 2
versions:
- - '9'
- '10'
- '11'
- - 'testing'
- 'sid'
+ - name: debian
+ tag: *default_tag
+ base_type: 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
+ tag: *default_tag
+ base_type: fedora
+ 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'