Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
13ffe7dd
Commit
13ffe7dd
authored
Oct 02, 2019
by
Evan Read
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'docs-exists_rule' into 'master'
Documented the exists rule See merge request gitlab-org/gitlab!16884
parents
601e7e78
d4abff83
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
36 additions
and
1 deletion
+36
-1
doc/ci/yaml/README.md
doc/ci/yaml/README.md
+36
-1
No files found.
doc/ci/yaml/README.md
View file @
13ffe7dd
...
...
@@ -707,6 +707,7 @@ Available rule clauses include:
(similar to
[
`only:variables`
](
#onlyvariablesexceptvariables
)
).
-
[
`changes`
](
#ruleschanges
)
(same as
[
`only:changes`
](
#onlychangesexceptchanges
)
).
-
[
`exists`
](
#rulesexists
)
For example, using
`if`
. This configuration specifies that
`job`
should be built
and run for every pipeline on merge requests targeting
`master`
, regardless of
...
...
@@ -779,9 +780,42 @@ In this example, a job either set to:
-
Run manually if
`Dockerfile`
has changed OR
`$VAR == "string value"`
.
-
`when:on_success`
by the last rule, where no earlier clauses evaluate to true.
#### `rules:exists`
`exists`
accepts an array of paths and will match if any of these paths exist
as files in the repository.
For example:
```
yaml
job
:
script
:
docker build -t my-image:$CI_COMMIT_REF_SLUG .
rules
:
-
exists
:
-
Dockerfile
```
You can also use glob patterns to match multiple files in any directory within
the repository.
For example:
```
yaml
job
:
script
:
bundle exec rspec
rules
:
-
exists
:
-
spec/**.rb
```
NOTE:
**Note:**
For performance reasons, using
`exists`
with patterns is limited to 10000
checks. After the 10000th check, rules with patterned globs will always match.
#### Complex rule clauses
To conjoin
`if`
and
`changes`
clauses with an AND, use them in the same rule.
To conjoin
`if`
,
`changes`
, and
`exists`
clauses with an AND, use them in the
same rule.
In the following example:
...
...
@@ -805,6 +839,7 @@ The only clauses currently available are:
-
`if`
-
`changes`
-
`exists`
Keywords such as
`branches`
or
`refs`
that are currently available for
`only`
/
`except`
are not yet available in
`rules`
as they are being individually
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment