gitlab-ci: Automatically run pipelines for Marge Bot pre-merge only

Marge only merges an MR if the pipeline passed. Running the pipeline
again after merging is redundant.

v2:
* Add rule to ensure docker images are up to date in the main project
  registry (Eric Anholt)

Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5680>
This commit is contained in:
Michel Dänzer 2020-06-29 11:33:13 +02:00 committed by Michel Dänzer
parent 8456ff75b3
commit 549b4a3dd4
1 changed files with 17 additions and 10 deletions

View File

@ -118,20 +118,27 @@ success:
extends:
- .ci-run-policy
rules:
# Run pipeline by default if it was triggered by Marge Bot, is for a
# merge request, and any files affecting it were changed
- if: '$GITLAB_USER_LOGIN == "marge-bot" && $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $CI_COMMIT_REF_NAME'
changes:
*all_paths
when: on_success
# Run pipeline by default in the main project if any files affecting it were
# changed
# Run pipeline by default in the main project if any CI pipeline
# configuration files were changed, to ensure docker images are up to date
- if: '$CI_PROJECT_PATH == "mesa/mesa"'
changes:
- .gitlab-ci.yml
- .gitlab-ci/**/*
when: on_success
# Run pipeline by default if it was triggered by Marge Bot, is for a
# merge request, and any files affecting the pipeline were changed
- if: '$GITLAB_USER_LOGIN == "marge-bot" && $CI_PROJECT_PATH != "mesa/mesa"'
changes:
*all_paths
when: on_success
# Allow triggering jobs manually for MRs or branches of forked projects if
# any files affecting the pipeline were changed
# Run pipeline by default in the main project if it was not triggered by
# Marge Bot, and any files affecting the pipeline were changed
- if: '$GITLAB_USER_LOGIN != "marge-bot" && $CI_PROJECT_PATH == "mesa/mesa"'
changes:
*all_paths
when: on_success
# Allow triggering jobs manually in other cases if any files affecting the
# pipeline were changed
- changes:
*all_paths
when: manual