summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2022-04-13 17:36:30 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-04-27 10:04:55 -0400
commitc7ee0be6bc1573b024f425dcf5fe6d91389e8185 (patch)
treebf4650f870978efe5f33cc32b34c4741c7151648
parent55c84123fd9af420de1600309a6fbe73f1975094 (diff)
downloadhaskell-c7ee0be6bc1573b024f425dcf5fe6d91389e8185.tar.gz
ci: Add linting job which checks authors are not GHC CI
-rw-r--r--.gitlab-ci.yml18
-rwxr-xr-x.gitlab/ci.sh13
2 files changed, 31 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a39ce85ce1..5df3afc8c1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -232,6 +232,24 @@ typecheck-testsuite:
- _build/stage0/bin/lint-submodule-refs . $(git rev-list $base..$CI_COMMIT_SHA)
dependencies: []
+# We allow the submodule checker to fail when run on merge requests (to
+# accommodate, e.g., haddock changes not yet upstream) but not on `master` or
+# Marge jobs.
+lint-author:
+ image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
+ extends: .lint-params
+ variables:
+ BUILD_FLAVOUR: default
+ script:
+ - git fetch "$CI_MERGE_REQUEST_PROJECT_URL" $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
+ - base="$(git merge-base FETCH_HEAD $CI_COMMIT_SHA)"
+ - "echo Linting authors between $base..$CI_COMMIT_SHA"
+ - .gitlab/ci.sh lint_author $base $CI_COMMIT_SHA
+ dependencies: []
+ rules:
+ - if: $CI_MERGE_REQUEST_ID
+ - *drafts-can-fail-lint
+
lint-submods:
extends: .lint-submods
# Allow failure on merge requests since any necessary submodule patches may
diff --git a/.gitlab/ci.sh b/.gitlab/ci.sh
index 917e9d5e4d..f04b3861e0 100755
--- a/.gitlab/ci.sh
+++ b/.gitlab/ci.sh
@@ -675,6 +675,18 @@ function shell() {
run "$cmd"
}
+function lint_author(){
+ base=$1
+ head=$2
+ for email in $(git log --format='%ae' $base..$head); do
+ if [ $email == "ghc-ci@gitlab-haskell.org" ];
+ then
+ fail "Commit has GHC CI author, please amend the author information."
+ fi
+ done
+}
+
+
setup_locale
# Platform-specific environment initialization
@@ -772,6 +784,7 @@ case $1 in
run_hadrian) shift; run_hadrian "$@" ;;
perf_test) run_perf_test ;;
cabal_test) cabal_test ;;
+ lint_author) shift; lint_author "$@" ;;
clean) clean ;;
save_cache) save_cache ;;
shell) shift; shell "$@" ;;