meta data for this page
This is an old revision of the document!
rules
Use rules:if clauses to specify when to add a job to a pipeline:
If an if statement is true, add the job to the pipeline.
If an if statement is true, but it’s combined with when: never, do not add the job to the pipeline.
If no if statements are true, do not add the job to the pipeline.
negate glob?
How to negate rules:changes pattern?
Not possible. rules:changes takes glob patterns and they are inclusive only.
You have to specify all paths/patterns to match one by one.
BUT:
Glob patterns are interpreted with Ruby’s File.fnmatch with the flags File::FNM_PATHNAME | File::FNM_DOTMATCH | File::FNM_EXTGLOB.
Ruby's fnmatch is used to handle patterns. It doesn't support ! character.
To write rule to do not match changes in src//* directory but matches s, sr, src2'':
<code yaml>
rules:
- changes:
- “{[^s]*,s,s[^r]*,sr,sr[^c]*,src?*}//*”
</code>
More:
* Is there a way to write a glob pattern that matches all files except those in a folder?
* gitlab CI/CD rules:changes negate glob