GitLab: Prevent ci pipeline on branch creation - Mon, Aug 22, 2022
GitLab: Prevent ci pipeline on branch creation
While trying to optimize the Pipeline-Runs for a specific GitLab repository through the usage of rules
gitlab-ci.yml, I noticed that two identical pipelines were triggered when opening a merge request
- One pipeline is triggered when the branch for the merge request is created
- One pipeline is triggered when the merge request itself is created
Since the later one was being triggered by an event of type
merge_request_event which also triggers a pipeline when pushing a change to a branch of a merge request, I opted to remove the branch creation pipeline.
This turned out not to be that easy since the event type was
push which starts a pipeline every time something is pushed. So I needed a different way to not run this pipeline. I fond the solution in this stackoverflow post
CI_COMMIT_BEFORE_SHA variable for new branches is all
0. So I combined both variables in the rule for the jobs in the pipeline:
rules: - if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BEFORE_SHA == "0000000000000000000000000000000000000000" when: never
Now I only have a single pipeline when opening a merge request. There is one downside however. The rule above also does not trigger a pipeline run when a new branch is pushed manually the the GitLab server.