# vim: set expandtab shiftwidth=2 tabstop=8 textwidth=0 filetype=yaml: ######################################## # # # THIS FILE IS GENERATED, DO NOT EDIT # # Edit .gitlab-ci/ci.template instead # # # # Regenerate with: # TEMPLATE_SHA="$(sed -n 's/^.templates_sha: *\&template_sha *\([0-9a-f]\+\) .*/\1/p' ./.gitlab-ci/ci.template)" # pip3 install "git+http://gitlab.freedesktop.org/freedesktop/ci-templates@$TEMPLATE_SHA" # ci-fairy generate-template # ######################################## .templates_sha: &template_sha ffe4d1b10aab7534489f0c4bbc4c5899df17d3f2 # see https://docs.gitlab.com/ee/ci/yaml/#includefile include: # Alpine container builder template - project: 'freedesktop/ci-templates' ref: *template_sha file: '/templates/alpine.yml' # Centos container builder template - project: 'freedesktop/ci-templates' ref: *template_sha file: '/templates/centos.yml' # Debian container builder template - project: 'freedesktop/ci-templates' ref: *template_sha file: '/templates/debian.yml' # Fedora container builder template - project: 'freedesktop/ci-templates' ref: *template_sha file: '/templates/fedora.yml' # Ubuntu container builder template - project: 'freedesktop/ci-templates' ref: *template_sha file: '/templates/ubuntu.yml' stages: - prep - tier1 - tier2 - tier3 - deploy - triage variables: FDO_UPSTREAM_REPO: NetworkManager/NetworkManager GIT_DEPTH: 1 # These tags should be updated each time the list of packages is updated # changing these will force rebuilding the associated image # Note: these tags have no meaning and are not tied to a particular NM version # # This is done by running `ci-fairy generate-template` and possibly bumping # ".default_tag". ALPINE_TAG: 'tag-372c77b49d01' CENTOS_TAG: 'tag-ab77da6a62d5' DEBIAN_TAG: 'tag-e7368fd611d6' FEDORA_TAG: 'tag-ab77da6a62d5' UBUNTU_TAG: 'tag-e7368fd611d6' 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' .nm_artifacts: variables: NM_BUILD_TARBALL: 1 artifacts: expire_in: 5 days when: always paths: - docs-html - NetworkManager-1*.tar.xz - NetworkManager-1*.src.rpm - nm-test.log .nm_artifacts_debug: artifacts: expire_in: 5 days when: always paths: - nm-test.log ################################################################# # # # prep stage # # # ################################################################# # Build a container for each distribution + version. The ci-templates # will re-use the containers if the tag doesn't change. tier1:fedora:37@prep: extends: - .fdo.container-build@fedora stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '37' FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC tier2:fedora:36@prep: extends: - .fdo.container-build@fedora stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '36' FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC when: manual 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 tier3:fedora:30@prep: extends: - .fdo.container-build@fedora stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '30' FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC when: manual tier3:fedora:31@prep: extends: - .fdo.container-build@fedora stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '31' FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC when: manual tier3:fedora:32@prep: extends: - .fdo.container-build@fedora stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '32' FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC when: manual tier3:fedora:33@prep: extends: - .fdo.container-build@fedora stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '33' FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC when: manual tier3:fedora:34@prep: extends: - .fdo.container-build@fedora stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '34' FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC when: manual tier3:fedora:35@prep: extends: - .fdo.container-build@fedora stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '35' FDO_DISTRIBUTION_TAG: $FEDORA_TAG FDO_DISTRIBUTION_EXEC: $FEDORA_EXEC when: manual tier2:ubuntu:18.04@prep: extends: - .fdo.container-build@ubuntu stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '18.04' FDO_DISTRIBUTION_TAG: $UBUNTU_TAG FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC when: manual tier2: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 tier2: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 tier2:ubuntu:devel@prep: extends: - .fdo.container-build@ubuntu stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: 'devel' FDO_DISTRIBUTION_TAG: $UBUNTU_TAG FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC when: manual tier2:ubuntu:rolling@prep: extends: - .fdo.container-build@ubuntu stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: 'rolling' FDO_DISTRIBUTION_TAG: $UBUNTU_TAG FDO_DISTRIBUTION_EXEC: $UBUNTU_EXEC when: manual tier2:debian:10@prep: extends: - .fdo.container-build@debian stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '10' FDO_DISTRIBUTION_TAG: $DEBIAN_TAG FDO_DISTRIBUTION_EXEC: $DEBIAN_EXEC when: manual tier2:debian:11@prep: extends: - .fdo.container-build@debian stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '11' 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:9@prep: extends: - .fdo.container-build@debian stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '9' 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:7.5.1804@prep: extends: - .fdo.container-build@centos stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '7.5.1804' FDO_DISTRIBUTION_TAG: $CENTOS_TAG FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC when: manual tier2:centos:7.9.2009@prep: extends: - .fdo.container-build@centos stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '7.9.2009' FDO_DISTRIBUTION_TAG: $CENTOS_TAG FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC when: manual tier2:centos:8.1.1911@prep: extends: - .fdo.container-build@centos stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '8.1.1911' FDO_DISTRIBUTION_TAG: $CENTOS_TAG FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC when: manual tier2:centos:8.3.2011@prep: extends: - .fdo.container-build@centos stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '8.3.2011' FDO_DISTRIBUTION_TAG: $CENTOS_TAG FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC when: manual tier3:centos:7.6.1810@prep: extends: - .fdo.container-build@centos stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '7.6.1810' FDO_DISTRIBUTION_TAG: $CENTOS_TAG FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC when: manual tier3:centos:7.7.1908@prep: extends: - .fdo.container-build@centos stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '7.7.1908' FDO_DISTRIBUTION_TAG: $CENTOS_TAG FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC when: manual tier3:centos:7.8.2003@prep: extends: - .fdo.container-build@centos stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '7.8.2003' FDO_DISTRIBUTION_TAG: $CENTOS_TAG FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC when: manual tier3:centos:8.2.2004@prep: extends: - .fdo.container-build@centos stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: '8.2.2004' FDO_DISTRIBUTION_TAG: $CENTOS_TAG FDO_DISTRIBUTION_EXEC: $CENTOS_EXEC when: manual tier2:alpine:latest@prep: extends: - .fdo.container-build@alpine stage: prep variables: GIT_STRATEGY: none FDO_DISTRIBUTION_VERSION: 'latest' FDO_DISTRIBUTION_TAG: $ALPINE_TAG FDO_DISTRIBUTION_EXEC: $ALPINE_EXEC when: manual ################################################################# # # # tierN stage # # # ################################################################# .build@template: script: - env - r=0 - .gitlab-ci/run-test.sh 2>&1 | tee /tmp/nm-test.log || r=$? - mv /tmp/nm-test.log . - exit $r dependencies: [] t_fedora:37: extends: - .build@template - .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 - subtree variables: FDO_DISTRIBUTION_VERSION: '37' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - "tier1:fedora:37@prep" t_fedora:36: extends: - .build@template - .fdo.distribution-image@fedora - .nm_artifacts_debug stage: tier2 variables: FDO_DISTRIBUTION_VERSION: '36' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - "tier2:fedora:36@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:30: extends: - .build@template - .fdo.distribution-image@fedora - .nm_artifacts_debug stage: tier3 variables: FDO_DISTRIBUTION_VERSION: '30' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - "tier3:fedora:30@prep" t_fedora:31: extends: - .build@template - .fdo.distribution-image@fedora - .nm_artifacts_debug stage: tier3 variables: FDO_DISTRIBUTION_VERSION: '31' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - "tier3:fedora:31@prep" t_fedora:32: extends: - .build@template - .fdo.distribution-image@fedora - .nm_artifacts_debug stage: tier3 variables: FDO_DISTRIBUTION_VERSION: '32' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - "tier3:fedora:32@prep" t_fedora:33: extends: - .build@template - .fdo.distribution-image@fedora - .nm_artifacts_debug stage: tier3 variables: FDO_DISTRIBUTION_VERSION: '33' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - "tier3:fedora:33@prep" t_fedora:34: extends: - .build@template - .fdo.distribution-image@fedora - .nm_artifacts_debug stage: tier3 variables: FDO_DISTRIBUTION_VERSION: '34' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - "tier3:fedora:34@prep" t_fedora:35: extends: - .build@template - .fdo.distribution-image@fedora - .nm_artifacts_debug stage: tier3 variables: FDO_DISTRIBUTION_VERSION: '35' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - "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: - "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: - "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: - "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" t_debian:sid: extends: - .build@template - .fdo.distribution-image@debian - .nm_artifacts_debug stage: tier2 variables: FDO_DISTRIBUTION_VERSION: 'sid' FDO_DISTRIBUTION_TAG: $DEBIAN_TAG needs: - "tier2:debian:sid@prep" t_debian:9: extends: - .build@template - .fdo.distribution-image@debian - .nm_artifacts_debug stage: tier3 variables: FDO_DISTRIBUTION_VERSION: '9' FDO_DISTRIBUTION_TAG: $DEBIAN_TAG needs: - "tier3:debian:9@prep" t_debian:testing: extends: - .build@template - .fdo.distribution-image@debian - .nm_artifacts_debug stage: tier3 variables: FDO_DISTRIBUTION_VERSION: 'testing' FDO_DISTRIBUTION_TAG: $DEBIAN_TAG needs: - "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: - "tier2:centos:7.5.1804@prep" t_centos:7.9.2009: extends: - .build@template - .fdo.distribution-image@centos - .nm_artifacts_debug stage: tier2 variables: FDO_DISTRIBUTION_VERSION: '7.9.2009' FDO_DISTRIBUTION_TAG: $CENTOS_TAG needs: - "tier2:centos:7.9.2009@prep" t_centos:8.1.1911: extends: - .build@template - .fdo.distribution-image@centos - .nm_artifacts_debug stage: tier2 variables: FDO_DISTRIBUTION_VERSION: '8.1.1911' FDO_DISTRIBUTION_TAG: $CENTOS_TAG needs: - "tier2:centos:8.1.1911@prep" t_centos:8.3.2011: extends: - .build@template - .fdo.distribution-image@centos - .nm_artifacts_debug stage: tier2 variables: FDO_DISTRIBUTION_VERSION: '8.3.2011' FDO_DISTRIBUTION_TAG: $CENTOS_TAG needs: - "tier2:centos:8.3.2011@prep" t_centos:7.6.1810: extends: - .build@template - .fdo.distribution-image@centos - .nm_artifacts_debug stage: tier3 variables: FDO_DISTRIBUTION_VERSION: '7.6.1810' FDO_DISTRIBUTION_TAG: $CENTOS_TAG needs: - "tier3:centos:7.6.1810@prep" t_centos:7.7.1908: extends: - .build@template - .fdo.distribution-image@centos - .nm_artifacts_debug stage: tier3 variables: FDO_DISTRIBUTION_VERSION: '7.7.1908' FDO_DISTRIBUTION_TAG: $CENTOS_TAG needs: - "tier3:centos:7.7.1908@prep" t_centos:7.8.2003: extends: - .build@template - .fdo.distribution-image@centos - .nm_artifacts_debug stage: tier3 variables: FDO_DISTRIBUTION_VERSION: '7.8.2003' FDO_DISTRIBUTION_TAG: $CENTOS_TAG needs: - "tier3:centos:7.8.2003@prep" t_centos:8.2.2004: extends: - .build@template - .fdo.distribution-image@centos - .nm_artifacts_debug stage: tier3 variables: FDO_DISTRIBUTION_VERSION: '8.2.2004' FDO_DISTRIBUTION_TAG: $CENTOS_TAG needs: - "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: - "tier2:alpine:latest@prep" ################################################################# # # # specific jobs # # # ################################################################# check-patch: extends: - .fdo.distribution-image@fedora variables: FDO_DISTRIBUTION_VERSION: '37' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - "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 check-tree: extends: - .fdo.distribution-image@fedora variables: FDO_DISTRIBUTION_VERSION: '37' FDO_DISTRIBUTION_TAG: $FEDORA_TAG needs: - "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 - date '+%Y%m%d-%H%M%S'; contrib/scripts/nm-code-format.sh -n - date '+%Y%m%d-%H%M%S'; ci-fairy generate-template && git diff --exit-code pages: stage: deploy script: - mv docs-html public artifacts: expire_in: 20 days paths: - public only: - main dependencies: - "t_fedora:37: [autotools+gcc+docs+valgrind]" needs: - "t_fedora:37: [autotools+gcc+docs+valgrind]" triage:issues: stage: triage image: ruby:2.7 script: - gem install gitlab-triage - gitlab-triage -d --token $API_TOKEN --source-id $SOURCE_ID only: - schedules # Have detached MR pipeline (https://docs.gitlab.com/ee/ci/pipelines/merge_request_pipelines.html) # https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/540#what-it-means-for-me-a-maintainer-of-a-project-part-of-gitlabfreedesktoporg workflow: rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' - if: $CI_PIPELINE_SOURCE == 'push'