[glib: 3/4] ci: Fix running all jobs on merge requests
- From: Philip Withnall <pwithnall src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib: 3/4] ci: Fix running all jobs on merge requests
- Date: Wed, 27 Nov 2019 13:05:25 +0000 (UTC)
commit 2daebc767415adc4cf2d2a391e17b75cc1590303
Author: Philip Withnall <withnall endlessm com>
Date: Wed Nov 27 11:07:23 2019 +0000
ci: Fix running all jobs on merge requests
Since we added `only: [merge_requests]` for the `style-check-diff` job,
that started running detached pipelines only for merge requests and only
containing that job, and not running the other jobs for merge requests
(only for branches).
That wasn’t the intention.
Follow the guide on
https://docs.gitlab.com/ee/ci/merge_request_pipelines/index.html#excluding-certain-jobs
to ensure that all jobs (including `style-check-diff`) are run for merge
requests.
This means we can no longer unconditionally use
`${CI_MERGE_REQUEST_TARGET_BRANCH_{NAME,SHA}}`, since they are only
defined for jobs which are running against a merge request rather than a
branch. Instead, use some `git rev-list` magic from
https://stackoverflow.com/a/4991675/2931197 to find the newest common
ancestor commit between the detached head that CI is running on, and the
known or likely target branch. Do the style check against the diff
between the newest common ancestor commit and the detached head.
(Note that `${CI_MERGE_REQUEST_TARGET_BRANCH_SHA}` was never actually
defined for any of our pipelines, since it’s only available for CI
pipelines running on merged branches, which is a GitLab Premium
feature. Oops, my bad.)
In order to find the newest common ancestor commit, we need to pull the
upstream remote, since the CI pipeline might be running on a fork of the
main repository where various branches (particularly `master`) are out
of date.
Signed-off-by: Philip Withnall <withnall endlessm com>
.gitlab-ci.yml | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
---
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 367993c77..e3c18c952 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -21,13 +21,14 @@ variables:
- tags
style-check-diff:
+ <<: *only-default
image: registry.gitlab.gnome.org/gnome/glib/debian-stable:v5
stage: style-check
allow_failure: true
- only:
- - merge_request
script:
- - git diff -U0 --no-color ${CI_MERGE_REQUEST_TARGET_BRANCH_SHA} | ./clang-format-diff.py -binary
"clang-format-7" -p1
+ - git remote add upstream https://gitlab.gnome.org/GNOME/glib.git
+ - git fetch upstream
+ - git diff -U0 --no-color $(diff --old-line-format='' --new-line-format='' <(git rev-list --first-parent
upstream/${CI_MERGE_REQUEST_TARGET_BRANCH_NAME:-${CI_DEFAULT_BRANCH}}) <(git rev-list --first-parent HEAD) |
head -1) | ./clang-format-diff.py -binary "clang-format-7" -p1
fedora-x86_64:
<<: *only-default
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]