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 <peter.hutterer@who-t.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6209>
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4ad29d7..45204d1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -18,6 +18,7 @@
stages:
- container
- container-2
+ - sanity
- git-archive
- deploy
- meson-x86_64
@@ -462,6 +463,11 @@
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 @@
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 @@
- 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