diff options
-rw-r--r-- | .gitlab-ci.yml | 454 | ||||
-rw-r--r-- | .gitlab-ci/ci.template | 92 | ||||
-rw-r--r-- | .gitlab-ci/config.yml | 61 | ||||
-rwxr-xr-x | .gitlab-ci/run-test.sh | 89 | ||||
-rwxr-xr-x | contrib/fedora/rpm/release.sh | 3 |
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 |