diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2022-04-13 17:36:30 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-04-27 10:04:55 -0400 |
commit | c7ee0be6bc1573b024f425dcf5fe6d91389e8185 (patch) | |
tree | bf4650f870978efe5f33cc32b34c4741c7151648 | |
parent | 55c84123fd9af420de1600309a6fbe73f1975094 (diff) | |
download | haskell-c7ee0be6bc1573b024f425dcf5fe6d91389e8185.tar.gz |
ci: Add linting job which checks authors are not GHC CI
-rw-r--r-- | .gitlab-ci.yml | 18 | ||||
-rwxr-xr-x | .gitlab/ci.sh | 13 |
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 "$@" ;; |