mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-26 15:36:14 +01:00
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>
This commit is contained in:
parent
3156ea5be7
commit
2daebc7674
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user