From 85b254592b1664a3e2a45764631d77086f865eee Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Mon, 23 Aug 2021 15:03:41 +0200 Subject: [PATCH] [ci] Fix pre-commit jobs on fork pipelines. - Run jobs only in MR pipelines - More dynamic git merge-base (see https://gitlab.com/gitlab-org/gitlab-runner/-/issues/4557#note_197936132) --- scripts/ci/jobs/pre-commit.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/scripts/ci/jobs/pre-commit.yml b/scripts/ci/jobs/pre-commit.yml index f49d071eb8d..64caf85b504 100644 --- a/scripts/ci/jobs/pre-commit.yml +++ b/scripts/ci/jobs/pre-commit.yml @@ -1,21 +1,28 @@ pre commit: stage: preparation image: $PRECOMMIT_IMAGE + rules: + - if: $CI_MERGE_REQUEST_IID needs: [ci_images] variables: SKIP: clang-format script: - pre-commit install - - pre-commit run --from-ref `git merge-base origin/master HEAD` --to-ref HEAD - - git diff --check `git merge-base origin/master HEAD` HEAD -- . ':!*.md' ':!*.pandoc' ':!*.asc' ':!*.dat' ':!*.ts' + - TARGET_SHA1=$(git show-ref -s ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}) + - pre-commit run --from-ref `git merge-base ${TARGET_SHA1} HEAD` --to-ref HEAD + - echo "Target branch is ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}, target sha is ${TARGET_SHA1}." + - git diff --check `git merge-base ${TARGET_SHA1} HEAD` HEAD -- . ':!*.md' ':!*.pandoc' ':!*.asc' ':!*.dat' ':!*.ts' clang-format: stage: check image: $PRECOMMIT_IMAGE + rules: + - if: $CI_MERGE_REQUEST_IID needs: [ci_images] allow_failure: true script: - pre-commit install - - pre-commit run clang-format --from-ref `git merge-base origin/master HEAD` --to-ref HEAD + - TARGET_SHA1=$(git show-ref -s ${CI_MERGE_REQUEST_TARGET_BRANCH_NAME}) + - pre-commit run clang-format --from-ref `git merge-base ${TARGET_SHA1} HEAD` --to-ref HEAD after_script: - git diff -- GitLab