diff options
Diffstat (limited to '.gitlab-ci/ci.template')
| -rw-r--r-- | .gitlab-ci/ci.template | 73 |
1 files changed, 59 insertions, 14 deletions
diff --git a/.gitlab-ci/ci.template b/.gitlab-ci/ci.template index 334b75a9..208c3490 100644 --- a/.gitlab-ci/ci.template +++ b/.gitlab-ci/ci.template @@ -43,6 +43,8 @@ include: ref: *template_sha file: '/templates/{{distro_group.name}}.yml' {% endfor %} + - project: 'freedesktop/ci-templates' + file: '/templates/ci-fairy.yml' stages: - prep @@ -51,6 +53,7 @@ stages: - tier3 - deploy - triage + - coverity variables: FDO_UPSTREAM_REPO: NetworkManager/NetworkManager @@ -113,8 +116,11 @@ tier{{distro.tier}}:{{distro.name}}:{{version}}@prep: FDO_DISTRIBUTION_VERSION: '{{version}}' FDO_DISTRIBUTION_TAG: ${{distro.name.upper()}}_TAG FDO_DISTRIBUTION_EXEC: ${{distro.name.upper()}}_EXEC + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' {% if distro.tier > 1 %} - when: manual + when: manual + allow_failure: true {% endif %} {% endfor %} {% endfor %} @@ -151,13 +157,9 @@ t_{{distro.name}}:{{version}}: 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 @@ -173,6 +175,8 @@ t_{{distro.name}}:{{version}}: {% endif %} needs: - "tier{{distro.tier}}:{{distro.name}}:{{version}}@prep" + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' {% endfor %} {% endfor %} @@ -190,6 +194,8 @@ check-patch: FDO_DISTRIBUTION_TAG: ${{default_distro.name.upper()}}_TAG needs: - "tier{{default_distro.tier}}:{{default_distro.name}}:{{default_distro.versions[0]}}@prep" + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' stage: tier1 script: - date '+%Y%m%d-%H%M%S'; NM_CHECKPATCH_FETCH_UPSTREAM=1 contrib/scripts/checkpatch-feature-branch.sh @@ -203,6 +209,8 @@ check-tree: FDO_DISTRIBUTION_TAG: ${{default_distro.name.upper()}}_TAG needs: - "tier{{default_distro.tier}}:{{default_distro.name}}:{{default_distro.versions[0]}}@prep" + rules: + - if: $CI_PIPELINE_SOURCE != 'schedule' stage: tier1 script: - date '+%Y%m%d-%H%M%S'; clang-format --version @@ -221,25 +229,62 @@ pages: expire_in: 20 days paths: - public - only: - - main + rules: + - if: $CI_PIPELINE_SOURCE == 'schedule' + when: never + - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == 'main' dependencies: - - "t_{{default_distro.name}}:{{default_distro.versions[0]}}: [autotools+gcc+docs+valgrind]" + - "t_{{default_distro.name}}:{{default_distro.versions[0]}}: [meson+gcc+docs+valgrind]" needs: - - "t_{{default_distro.name}}:{{default_distro.versions[0]}}: [autotools+gcc+docs+valgrind]" + - "t_{{default_distro.name}}:{{default_distro.versions[0]}}: [meson+gcc+docs+valgrind]" triage:issues: stage: triage - image: ruby:2.7 + image: ruby:3 + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULED_PIPELINE_NAME == "daily" + tags: + - placeholder-job # The job mostly waits on network requests, so use only one CPU: https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/1358#note_2457416 script: - gem install gitlab-triage - - gitlab-triage -d --token $API_TOKEN --source-id $SOURCE_ID - only: - - schedules + - gitlab-triage --debug --token $API_TOKEN --source-id $CI_PROJECT_ID + +coverity: + extends: + - .fdo.distribution-image@fedora + variables: + FDO_DISTRIBUTION_VERSION: '40' + FDO_DISTRIBUTION_TAG: $FEDORA_TAG + stage: coverity + needs: [] + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULED_PIPELINE_NAME == "weekly" + script: + - dnf install -y curl + - BUILD_TYPE=meson CC=gcc CONFIGURE_ONLY=1 contrib/scripts/nm-ci-run.sh + - cd build + - ../.gitlab-ci/coverity.sh download + - cov-analysis-linux64-*/bin/cov-build --dir cov-int ninja + - ../.gitlab-ci/coverity.sh upload + +# Clean the generated images periodically to get updated snapshots of the distribution images. +# Create an scheduled pipeline to run it, passing an AUTHFILE environment variable of type +# 'File' with an authentication token with API access level. +clean-images: + extends: + - .fdo.ci-fairy + stage: prep + rules: + - if: $CI_PIPELINE_SOURCE == "schedule" && $SCHEDULED_PIPELINE_NAME == "weekly" + script: + - ci-fairy -v --authfile $AUTHFILE delete-image --project NetworkManager/NetworkManager --all # 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' + - if: $CI_PIPELINE_SOURCE == 'schedule' + - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS + when: never + - if: $CI_COMMIT_BRANCH |