The release pipeline should start a deployment for specific branches.
This should not happen (skip the job), if there are only documentation changes. (*.md files)
If you change multiple files, but only one file ends in
.md, thebuildjob is still skipped. The job does not run for any of the files.
https://docs.gitlab.com/ee/ci/jobs/job_control.html#onlychanges--exceptchanges-examples
So, is it even possible to specifcy a rule as mentioned above?
So, if "*.md" doesn't work, is it possible to revert it?
"**/!(*.md)" # Every file except *.md
This does not execute anything
rules:
- if: $CI_COMMIT_BRANCH == "main"
changes:
- "**/!(*.md)" # Every file except *.md
This executes always
rules:
- if: $CI_COMMIT_BRANCH == "main"
- changes:
- "**/!(*.md)"
Do I have to use custom variables to solve this problem or is there a simpler way?
After contacting the GitLab Support, I can document here, that there is no way of doing that currently.
A new issue has been created for this specific use case:
https://gitlab.com/gitlab-org/gitlab/-/issues/198688
Below is the more elegant solution and is documented on the GitLab docs.
So there are two approaches.
To push a commit without triggering a pipeline, add [ci skip] or [skip ci], using any capitalization, to your commit message.
Alternatively, if you are using Git 2.10 or later, use the ci.skip Git push option. The ci.skip push option does not skip merge request pipelines.
git push --push-option=ci.skip
for GL version 2.18 and later, even the short version
git push -o ci.skip
Reference:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With