Skip to content

ci.skip behaviour when combined with merge_request.create

Not sure if this is intended behaviour, or requires some clarification.

GitLab version: 16.7-ee Omnibus install

To reproduce

(in a repository with a CI file that builds pipelines for both branches and merge requests)

  • Create two branches - A and B.
  • Create one or more commits in branch A.
  • Push commits with the following options:
    • ci.skip = true
    • merge_request.create
    • merge_request.target=B
    • merge_request.merge_when_pipeline_succeeds

Observed results:

  • Empty 'skipped' pipeline is created for branch A
  • Merge Request is created
  • Empty 'skipped' pipeline is created for Merge Request
  • Merge Request is never automatically merged

Desired results:

In our instance, our workflow uses the Maven release plugin, which creates a number of tags and version-change commits in the main branch. So we would want to see:

  • Pipeline skipped for branch A
  • Merge Request automatically created
  • Merge Requests pipeline runs (optional - our use case doesn't specifically require it)
  • Merge Request is auto-merged

Issue

I can't see a way to set options that either allow the MR pipeline to run, or to auto-merge, regardless of a pipeline running. Our only other options is to resort to the API to create the MR, which feels a little unnecessary.