diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c283cc2769..8e2a4e171a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -57,11 +57,11 @@ variables: # # This is done by running `ci-fairy generate-template` and possibly bumping # ".default_tag". - ALPINE_TAG: 'tag-84d008505f54' - CENTOS_TAG: 'tag-eb0b116664f7' - DEBIAN_TAG: 'tag-183208b2b592' - FEDORA_TAG: 'tag-eb0b116664f7' - UBUNTU_TAG: 'tag-183208b2b592' + ALPINE_TAG: 'tag-ec0f564800e3' + CENTOS_TAG: 'tag-b114f45d4a4e' + DEBIAN_TAG: 'tag-318ea804326f' + FEDORA_TAG: 'tag-b114f45d4a4e' + UBUNTU_TAG: 'tag-318ea804326f' ALPINE_EXEC: 'bash .gitlab-ci/alpine-install.sh' CENTOS_EXEC: 'bash .gitlab-ci/fedora-install.sh' @@ -97,28 +97,7 @@ variables: # Build a container for each distribution + version. The ci-templates # will re-use the containers if the tag doesn't change. -tier1:fedora:39@prep: - extends: - - .fdo.container-build@fedora - stage: prep - variables: - GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: '39' - FDO_DISTRIBUTION_TAG: $FEDORA_TAG - FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC - -tier2:fedora:38@prep: - extends: - - .fdo.container-build@fedora - stage: prep - variables: - GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: '38' - FDO_DISTRIBUTION_TAG: $FEDORA_TAG - FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC - when: manual - -tier2:fedora:40@prep: +tier1:fedora:40@prep: extends: - .fdo.container-build@fedora stage: prep @@ -127,28 +106,47 @@ tier2:fedora:40@prep: FDO_DISTRIBUTION_VERSION: '40' FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC - when: manual -tier2:ubuntu:20.04@prep: +tier1:fedora:rawhide@prep: extends: - - .fdo.container-build@ubuntu + - .fdo.container-build@fedora stage: prep variables: GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: '20.04' - FDO_DISTRIBUTION_TAG: $UBUNTU_TAG - FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC - when: manual + FDO_DISTRIBUTION_VERSION: 'rawhide' + FDO_DISTRIBUTION_TAG: $FEDORA_TAG + FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC -tier2:ubuntu:22.04@prep: +tier1:centos:stream9@prep: extends: - - .fdo.container-build@ubuntu + - .fdo.container-build@centos stage: prep variables: GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: '22.04' - FDO_DISTRIBUTION_TAG: $UBUNTU_TAG - FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC + FDO_DISTRIBUTION_VERSION: 'stream9' + FDO_DISTRIBUTION_TAG: $CENTOS_TAG + FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC + +tier2:debian:sid@prep: + extends: + - .fdo.container-build@debian + stage: prep + variables: + GIT_STRATEGY: none + FDO_DISTRIBUTION_VERSION: 'sid' + FDO_DISTRIBUTION_TAG: $DEBIAN_TAG + FDO_DISTRIBUTION_EXEC: $DEBIAN_EXEC + when: manual + +tier2:debian:testing@prep: + extends: + - .fdo.container-build@debian + stage: prep + variables: + GIT_STRATEGY: none + FDO_DISTRIBUTION_VERSION: 'testing' + FDO_DISTRIBUTION_TAG: $DEBIAN_TAG + FDO_DISTRIBUTION_EXEC: $DEBIAN_EXEC when: manual tier2:ubuntu:devel@prep: @@ -162,7 +160,62 @@ tier2:ubuntu:devel@prep: FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC when: manual -tier2:ubuntu:rolling@prep: +tier2:alpine:edge@prep: + extends: + - .fdo.container-build@alpine + stage: prep + variables: + GIT_STRATEGY: none + FDO_DISTRIBUTION_VERSION: 'edge' + FDO_DISTRIBUTION_TAG: $ALPINE_TAG + FDO_DISTRIBUTION_EXEC: $ALPINE_EXEC + when: manual + +tier3:fedora:39@prep: + extends: + - .fdo.container-build@fedora + stage: prep + variables: + GIT_STRATEGY: none + FDO_DISTRIBUTION_VERSION: '39' + FDO_DISTRIBUTION_TAG: $FEDORA_TAG + FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC + when: manual + +tier3:ubuntu:20.04@prep: + extends: + - .fdo.container-build@ubuntu + stage: prep + variables: + GIT_STRATEGY: none + FDO_DISTRIBUTION_VERSION: '20.04' + FDO_DISTRIBUTION_TAG: $UBUNTU_TAG + FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC + when: manual + +tier3:ubuntu:22.04@prep: + extends: + - .fdo.container-build@ubuntu + stage: prep + variables: + GIT_STRATEGY: none + FDO_DISTRIBUTION_VERSION: '22.04' + FDO_DISTRIBUTION_TAG: $UBUNTU_TAG + FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC + when: manual + +tier3:ubuntu:24.04@prep: + extends: + - .fdo.container-build@ubuntu + stage: prep + variables: + GIT_STRATEGY: none + FDO_DISTRIBUTION_VERSION: '24.04' + FDO_DISTRIBUTION_TAG: $UBUNTU_TAG + FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC + when: manual + +tier3:ubuntu:rolling@prep: extends: - .fdo.container-build@ubuntu stage: prep @@ -173,51 +226,29 @@ tier2:ubuntu:rolling@prep: FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC when: manual -tier2:debian:10@prep: +tier3:debian:stable@prep: extends: - .fdo.container-build@debian stage: prep variables: GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: '10' + FDO_DISTRIBUTION_VERSION: 'stable' FDO_DISTRIBUTION_TAG: $DEBIAN_TAG FDO_DISTRIBUTION_EXEC: $DEBIAN_EXEC when: manual -tier2:debian:11@prep: +tier3:debian:oldstable@prep: extends: - .fdo.container-build@debian stage: prep variables: GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: '11' + FDO_DISTRIBUTION_VERSION: 'oldstable' FDO_DISTRIBUTION_TAG: $DEBIAN_TAG FDO_DISTRIBUTION_EXEC: $DEBIAN_EXEC when: manual -tier2:debian:sid@prep: - extends: - - .fdo.container-build@debian - stage: prep - variables: - GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: 'sid' - FDO_DISTRIBUTION_TAG: $DEBIAN_TAG - FDO_DISTRIBUTION_EXEC: $DEBIAN_EXEC - when: manual - -tier3:debian:testing@prep: - extends: - - .fdo.container-build@debian - stage: prep - variables: - GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: 'testing' - FDO_DISTRIBUTION_TAG: $DEBIAN_TAG - FDO_DISTRIBUTION_EXEC: $DEBIAN_EXEC - when: manual - -tier2:centos:stream8@prep: +tier3:centos:stream8@prep: extends: - .fdo.container-build@centos stage: prep @@ -228,18 +259,7 @@ tier2:centos:stream8@prep: FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC when: manual -tier2:centos:stream9@prep: - extends: - - .fdo.container-build@centos - stage: prep - variables: - GIT_STRATEGY: none - FDO_DISTRIBUTION_VERSION: 'stream9' - FDO_DISTRIBUTION_TAG: $CENTOS_TAG - FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC - when: manual - -tier2:alpine:latest@prep: +tier3:alpine:latest@prep: extends: - .fdo.container-build@alpine stage: prep @@ -266,7 +286,7 @@ tier2:alpine:latest@prep: dependencies: [] -t_fedora:39: +t_fedora:40: extends: - .build@template - .fdo.distribution-image@fedora @@ -285,107 +305,61 @@ t_fedora:39: - tarball+meson - tarball - subtree - variables: - FDO_DISTRIBUTION_VERSION: '39' - FDO_DISTRIBUTION_TAG: $FEDORA_TAG - needs: - - "tier1:fedora:39@prep" - -t_fedora:38: - extends: - - .build@template - - .fdo.distribution-image@fedora - - .nm_artifacts_debug - stage: tier2 - variables: - FDO_DISTRIBUTION_VERSION: '38' - FDO_DISTRIBUTION_TAG: $FEDORA_TAG - needs: - - "tier2:fedora:38@prep" - -t_fedora:40: - extends: - - .build@template - - .fdo.distribution-image@fedora - - .nm_artifacts_debug - stage: tier2 variables: FDO_DISTRIBUTION_VERSION: '40' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - - "tier2:fedora:40@prep" + - "tier1:fedora:40@prep" -t_ubuntu:20.04: +t_fedora:rawhide: extends: - .build@template - - .fdo.distribution-image@ubuntu - - .nm_artifacts_debug - stage: tier2 + - .fdo.distribution-image@fedora + - .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+autotools + - tarball+meson + - tarball + - subtree variables: - FDO_DISTRIBUTION_VERSION: '20.04' - FDO_DISTRIBUTION_TAG: $UBUNTU_TAG + FDO_DISTRIBUTION_VERSION: 'rawhide' + FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - - "tier2:ubuntu:20.04@prep" + - "tier1:fedora:rawhide@prep" -t_ubuntu:22.04: +t_centos:stream9: extends: - .build@template - - .fdo.distribution-image@ubuntu + - .fdo.distribution-image@centos - .nm_artifacts_debug - stage: tier2 + 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+autotools + - tarball+meson + - tarball + - subtree variables: - FDO_DISTRIBUTION_VERSION: '22.04' - FDO_DISTRIBUTION_TAG: $UBUNTU_TAG + FDO_DISTRIBUTION_VERSION: 'stream9' + FDO_DISTRIBUTION_TAG: $CENTOS_TAG needs: - - "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: - - "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: - - "tier2:ubuntu:rolling@prep" - -t_debian:10: - extends: - - .build@template - - .fdo.distribution-image@debian - - .nm_artifacts_debug - stage: tier2 - variables: - FDO_DISTRIBUTION_VERSION: '10' - FDO_DISTRIBUTION_TAG: $DEBIAN_TAG - needs: - - "tier2:debian:10@prep" - -t_debian:11: - extends: - - .build@template - - .fdo.distribution-image@debian - - .nm_artifacts_debug - stage: tier2 - variables: - FDO_DISTRIBUTION_VERSION: '11' - FDO_DISTRIBUTION_TAG: $DEBIAN_TAG - needs: - - "tier2:debian:11@prep" + - "tier1:centos:stream9@prep" t_debian:sid: extends: @@ -404,48 +378,144 @@ t_debian:testing: - .build@template - .fdo.distribution-image@debian - .nm_artifacts_debug - stage: tier3 + stage: tier2 variables: FDO_DISTRIBUTION_VERSION: 'testing' FDO_DISTRIBUTION_TAG: $DEBIAN_TAG needs: - - "tier3:debian:testing@prep" + - "tier2:debian:testing@prep" -t_centos:stream8: +t_ubuntu:devel: extends: - .build@template - - .fdo.distribution-image@centos + - .fdo.distribution-image@ubuntu - .nm_artifacts_debug stage: tier2 variables: - FDO_DISTRIBUTION_VERSION: 'stream8' - FDO_DISTRIBUTION_TAG: $CENTOS_TAG + FDO_DISTRIBUTION_VERSION: 'devel' + FDO_DISTRIBUTION_TAG: $UBUNTU_TAG needs: - - "tier2:centos:stream8@prep" + - "tier2:ubuntu:devel@prep" -t_centos:stream9: - extends: - - .build@template - - .fdo.distribution-image@centos - - .nm_artifacts_debug - stage: tier2 - variables: - FDO_DISTRIBUTION_VERSION: 'stream9' - FDO_DISTRIBUTION_TAG: $CENTOS_TAG - needs: - - "tier2:centos:stream9@prep" - -t_alpine:latest: +t_alpine:edge: extends: - .build@template - .fdo.distribution-image@alpine - .nm_artifacts_debug stage: tier2 + variables: + FDO_DISTRIBUTION_VERSION: 'edge' + FDO_DISTRIBUTION_TAG: $ALPINE_TAG + needs: + - "tier2:alpine:edge@prep" + +t_fedora:39: + extends: + - .build@template + - .fdo.distribution-image@fedora + - .nm_artifacts_debug + stage: tier3 + variables: + FDO_DISTRIBUTION_VERSION: '39' + FDO_DISTRIBUTION_TAG: $FEDORA_TAG + needs: + - "tier3:fedora:39@prep" + +t_ubuntu:20.04: + extends: + - .build@template + - .fdo.distribution-image@ubuntu + - .nm_artifacts_debug + stage: tier3 + variables: + FDO_DISTRIBUTION_VERSION: '20.04' + FDO_DISTRIBUTION_TAG: $UBUNTU_TAG + needs: + - "tier3:ubuntu:20.04@prep" + +t_ubuntu:22.04: + extends: + - .build@template + - .fdo.distribution-image@ubuntu + - .nm_artifacts_debug + stage: tier3 + variables: + FDO_DISTRIBUTION_VERSION: '22.04' + FDO_DISTRIBUTION_TAG: $UBUNTU_TAG + needs: + - "tier3:ubuntu:22.04@prep" + +t_ubuntu:24.04: + extends: + - .build@template + - .fdo.distribution-image@ubuntu + - .nm_artifacts_debug + stage: tier3 + variables: + FDO_DISTRIBUTION_VERSION: '24.04' + FDO_DISTRIBUTION_TAG: $UBUNTU_TAG + needs: + - "tier3:ubuntu:24.04@prep" + +t_ubuntu:rolling: + extends: + - .build@template + - .fdo.distribution-image@ubuntu + - .nm_artifacts_debug + stage: tier3 + variables: + FDO_DISTRIBUTION_VERSION: 'rolling' + FDO_DISTRIBUTION_TAG: $UBUNTU_TAG + needs: + - "tier3:ubuntu:rolling@prep" + +t_debian:stable: + extends: + - .build@template + - .fdo.distribution-image@debian + - .nm_artifacts_debug + stage: tier3 + variables: + FDO_DISTRIBUTION_VERSION: 'stable' + FDO_DISTRIBUTION_TAG: $DEBIAN_TAG + needs: + - "tier3:debian:stable@prep" + +t_debian:oldstable: + extends: + - .build@template + - .fdo.distribution-image@debian + - .nm_artifacts_debug + stage: tier3 + variables: + FDO_DISTRIBUTION_VERSION: 'oldstable' + FDO_DISTRIBUTION_TAG: $DEBIAN_TAG + needs: + - "tier3:debian:oldstable@prep" + +t_centos:stream8: + extends: + - .build@template + - .fdo.distribution-image@centos + - .nm_artifacts_debug + stage: tier3 + variables: + FDO_DISTRIBUTION_VERSION: 'stream8' + FDO_DISTRIBUTION_TAG: $CENTOS_TAG + needs: + - "tier3:centos:stream8@prep" + +t_alpine:latest: + extends: + - .build@template + - .fdo.distribution-image@alpine + - .nm_artifacts_debug + stage: tier3 variables: FDO_DISTRIBUTION_VERSION: 'latest' FDO_DISTRIBUTION_TAG: $ALPINE_TAG needs: - - "tier2:alpine:latest@prep" + - "tier3:alpine:latest@prep" ################################################################# # # @@ -457,10 +527,10 @@ check-patch: extends: - .fdo.distribution-image@fedora variables: - FDO_DISTRIBUTION_VERSION: '39' + FDO_DISTRIBUTION_VERSION: '40' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - - "tier1:fedora:39@prep" + - "tier1:fedora:40@prep" stage: tier1 script: - date '+%Y%m%d-%H%M%S'; NM_CHECKPATCH_FETCH_UPSTREAM=1 contrib/scripts/checkpatch-feature-branch.sh @@ -470,10 +540,10 @@ check-tree: extends: - .fdo.distribution-image@fedora variables: - FDO_DISTRIBUTION_VERSION: '39' + FDO_DISTRIBUTION_VERSION: '40' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - - "tier1:fedora:39@prep" + - "tier1:fedora:40@prep" stage: tier1 script: - date '+%Y%m%d-%H%M%S'; clang-format --version @@ -495,9 +565,9 @@ pages: only: - main dependencies: - - "t_fedora:39: [autotools+gcc+docs+valgrind]" + - "t_fedora:40: [autotools+gcc+docs+valgrind]" needs: - - "t_fedora:39: [autotools+gcc+docs+valgrind]" + - "t_fedora:40: [autotools+gcc+docs+valgrind]" triage:issues: stage: triage diff --git a/.gitlab-ci/config.yml b/.gitlab-ci/config.yml index 3e83f48073..4e97ecf187 100644 --- a/.gitlab-ci/config.yml +++ b/.gitlab-ci/config.yml @@ -18,39 +18,57 @@ base_types: # The list of all distributions we want to create job for. distributions: + # TIER 1: CI run for all MRs. + # The first tier:1 in the list is used to build the pages and check-{tree,patch}. - name: fedora - # The first tier:1 in the list is used to build the pages and check-{tree,patch} tier: 1 versions: - - '39' - - name: fedora + - '40' + - rawhide + - name: centos + tier: 1 + versions: + - 'stream9' + + # TIER 2: distribution versions that will or might use the current NM version. + # Run when doing a release. + - name: debian tier: 2 versions: - - '38' - - '40' + - sid + - testing - name: ubuntu tier: 2 versions: - - '20.04' - - '22.04' - - 'devel' - - 'rolling' - - name: debian - tier: 2 - versions: - - '10' - - '11' - - 'sid' - - name: debian - tier: 3 - versions: - - 'testing' - - name: centos - tier: 2 - versions: - - 'stream8' - - 'stream9' + - devel - name: alpine tier: 2 + versions: + - edge + + # TIER 3: distribution versions not in EOL but don't use the current NM version. + # Run when doing a release, but a failure won't be blocking for the release. + - name: fedora + tier: 3 + versions: + - '39' + - name: ubuntu + tier: 3 + versions: + - '20.04' + - '22.04' + - '24.04' + - 'rolling' # latest non-LTS + - name: debian + tier: 3 + versions: + - 'stable' + - 'oldstable' + - name: centos + tier: 3 + versions: + - 'stream8' + - name: alpine + tier: 3 versions: - 'latest'