From 4c41d1900e58cb09501cbf113568645e70634aff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Thu, 6 Aug 2020 17:37:33 +0200 Subject: [PATCH] ci: Add jobs running ci-fairy checks These can catch various common issues in MR settings and Git commit logs. The "check mr" job only exists in pre-merge pipelines for MRs, and runs automatically. The "check commits" job only exists in pre-merge pipelines for MRs and in pipelines for forked branches. It runs automatically in the former case and can be manually triggered in the latter. v2: * Use git_archive docker image (Daniel Stone) * Use a single sanity stage for both jobs (Tomeu Vizoso) Reviewed-by: Peter Hutterer Part-of: --- .gitlab-ci.yml | 62 +++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 51 insertions(+), 11 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4ad29d71117..45204d1f4cb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -18,6 +18,7 @@ include: stages: - container - container-2 + - sanity - git-archive - deploy - meson-x86_64 @@ -462,6 +463,11 @@ git_archive: rules: - if: *is-scheduled-pipeline when: always + - if: *is-pre-merge + when: on_success + - if: *is-forked-branch + when: manual + # Other cases default to never variables: FDO_REPO_SUFFIX: &git-archive-suffix "alpine/git_archive" FDO_DISTRIBUTION_EXEC: 'pip3 install git+http://gitlab.freedesktop.org/freedesktop/ci-templates@6f5af7e5574509726c79109e3c147cee95e81366' @@ -470,24 +476,26 @@ git_archive: FDO_DISTRIBUTION_TAG: &git-archive-tag "2020-07-07" FDO_DISTRIBUTION_PACKAGES: git py3-pip - -# Git archive - -make git archive: - stage: git-archive +.use-git_archive: extends: .fdo.suffixed-image@alpine - rules: - - if: *is-scheduled-pipeline - when: on_success - # ensure we are running on packet - tags: - - packet.net variables: FDO_DISTRIBUTION_TAG: *git-archive-tag FDO_REPO_SUFFIX: *git-archive-suffix needs: - git_archive + +# Git archive + +make git archive: + extends: .use-git_archive + stage: git-archive + rules: + - if: *is-scheduled-pipeline + when: on_success + # ensure we are running on packet + tags: + - packet.net script: # compress the current folder - tar -cvzf ../$CI_PROJECT_NAME.tar.gz . @@ -497,6 +505,38 @@ make git archive: - ci-fairy minio cp ../$CI_PROJECT_NAME.tar.gz minio://minio-packet.freedesktop.org/git-cache/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/$CI_PROJECT_NAME.tar.gz +# Sanity checks of MR settings and commit logs +.sanity-check: + extends: .use-git_archive + stage: sanity + artifacts: + when: on_failure + reports: + junit: check-*.xml + +check mr: + extends: .sanity-check + rules: + - if: *is-pre-merge + when: on_success + # Other cases default to never + variables: + GIT_STRATEGY: none + script: + - ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request.xml + +check commits: + extends: .sanity-check + rules: + - if: *is-pre-merge + when: on_success + - if: *is-forked-branch + when: manual + # Other cases default to never + script: + - ci-fairy check-commits --junit-xml=check-commits.xml + + # BUILD # Shared between windows and Linux