Using "only merge_requests" in .gitlab-ci.yml behaves like a logical OR rather than AND
<!---
Please read this!
Before opening a new issue, make sure to search for keywords in the issues
filtered by the "regression" or "bug" label.
For the Community Edition issue tracker:
- https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name%5B%5D=regression
- https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name%5B%5D=bug
For the Enterprise Edition issue tracker:
- https://gitlab.com/gitlab-org/gitlab-ee/issues?label_name%5B%5D=regression
- https://gitlab.com/gitlab-org/gitlab-ee/issues?label_name%5B%5D=bug
and verify the issue you're about to submit isn't a duplicate.
--->
### Summary
Strange behavior when combining `merge_requests` and `changes` under a `only` directive in gitlab runner `.gitlab-ci.yml`. `merge_requests` seems to behave like a logical OR, rather than AND as [specified in the documentation](https://docs.gitlab.com/ee/ci/yaml/#onlyexcept-advanced).
I have two different pipelines set up with the intention of being run upon a merge request that changes specified files (see example below). [This piece of documentation](https://docs.gitlab.com/ee/ci/yaml/#using-changes-with-merge_requests) specifies how to do it.
My configuration is very similar to the documentation, however, it seems that any push to a branch in a merge request (regardless of files changed) will trigger all pipelines labeled with `merge_requests`.
### Steps to reproduce
I am using `merge_requests` in combination with `changes` in an `only` block, like this:
```
pipeline_a:
script:
- ./script_a
only:
refs:
- merge_requests
changes:
- sections/section_a/**/*
- config_a.yml
pipeline_b:
script:
- ./script_b
only:
refs:
- merge_requests
changes:
- sections/section_b/**/*
- config_b.yml
```
When I make changes to `sections/section_b/file`, both `pipeline_a` and `pipeline_b` are run.
### What is the current *bug* behavior?
When I make changes to `sections/section_b/file`, both `pipeline_a` and `pipeline_b` are run.
### What is the expected *correct* behavior?
When I make changes to `sections/section_b/file`, only `pipeline_b` should run.
### Output of checks
#### Results of GitLab environment info
<details>
<summary>Expand for output related to GitLab environment info</summary>
<pre>
System information
System: Ubuntu 16.04
Current User: git
Using RVM: no
Ruby Version: 2.5.3p105
Gem Version: 2.7.6
Bundler Version:1.16.6
Rake Version: 12.3.2
Redis Version: 3.2.12
Git Version: 2.18.1
Sidekiq Version:5.2.3
Go Version: unknown
GitLab information
Version: 11.7.5
Revision: c5b5b18
Directory: /opt/gitlab/embedded/service/gitlab-rails
DB Adapter: postgresql
URL: https://gitlab.cs.wmich.edu
HTTP Clone URL: https://gitlab.cs.wmich.edu/some-group/some-project.git
SSH Clone URL: git@gitlab.cs.wmich.edu:some-group/some-project.git
Using LDAP: no
Using Omniauth: yes
Omniauth Providers:
GitLab Shell
Version: 8.4.4
Repository storage paths:
- default: /var/opt/gitlab/git-data/repositories
Hooks: /opt/gitlab/embedded/service/gitlab-shell/hooks
Git: /opt/gitlab/embedded/bin/git
</pre>
</details>
#### Results of GitLab application Check
<details>
<summary>Expand for output related to the GitLab application check</summary>
<pre>
Checking GitLab subtasks ...
Checking GitLab Shell ...
GitLab Shell: ... GitLab Shell version >= 8.4.4 ? ... OK (8.4.4)
Running /opt/gitlab/embedded/service/gitlab-shell/bin/check
Check GitLab API access: OK
Redis available via internal API: OK
Access to /var/opt/gitlab/.ssh/authorized_keys: OK
gitlab-shell self-check successful
Checking GitLab Shell ... Finished
Checking Gitaly ...
Gitaly: ... default ... OK
Checking Gitaly ... Finished
Checking Sidekiq ...
Sidekiq: ... Running? ... yes
Number of Sidekiq processes ... 1
Checking Sidekiq ... Finished
Checking Incoming Email ...
Incoming Email: ... Reply by email is disabled in config/gitlab.yml
Checking Incoming Email ... Finished
Checking LDAP ...
LDAP: ... LDAP is disabled in config/gitlab.yml
Checking LDAP ... Finished
Checking GitLab App ...
Git configured correctly? ... yes
Database config exists? ... yes
All migrations up? ... yes
Database contains orphaned GroupMembers? ... no
GitLab config exists? ... yes
GitLab config up to date? ... yes
Log directory writable? ... yes
Tmp directory writable? ... yes
Uploads directory exists? ... yes
Uploads directory has correct permissions? ... yes
Uploads directory tmp has correct permissions? ... yes
Init script exists? ... skipped (omnibus-gitlab has no init script)
Init script up-to-date? ... skipped (omnibus-gitlab has no init script)
Projects have namespace: ...
3/31 ... yes
3/32 ... yes
3/34 ... yes
3/39 ... yes
2/44 ... yes
2/46 ... yes
2/47 ... yes
2/49 ... yes
2/50 ... yes
2/51 ... yes
2/52 ... yes
2/53 ... yes
2/54 ... yes
2/55 ... yes
2/56 ... yes
2/57 ... yes
2/58 ... yes
2/59 ... yes
2/60 ... yes
2/61 ... yes
2/62 ... yes
2/63 ... yes
2/64 ... yes
2/65 ... yes
2/66 ... yes
2/67 ... yes
2/68 ... yes
2/69 ... yes
2/70 ... yes
2/71 ... yes
2/73 ... yes
2/74 ... yes
2/75 ... yes
2/76 ... yes
2/77 ... yes
2/78 ... yes
2/80 ... yes
2/81 ... yes
2/82 ... yes
2/83 ... yes
2/84 ... yes
2/85 ... yes
2/86 ... yes
2/87 ... yes
2/88 ... yes
2/89 ... yes
2/90 ... yes
2/91 ... yes
2/92 ... yes
2/93 ... yes
2/94 ... yes
2/95 ... yes
2/96 ... yes
2/97 ... yes
2/98 ... yes
2/99 ... yes
2/100 ... yes
2/101 ... yes
2/102 ... yes
2/103 ... yes
2/104 ... yes
2/105 ... yes
2/106 ... yes
2/107 ... yes
2/108 ... yes
2/110 ... yes
2/111 ... yes
2/112 ... yes
2/113 ... yes
2/114 ... yes
2/115 ... yes
2/116 ... yes
2/117 ... yes
2/118 ... yes
2/119 ... yes
2/120 ... yes
2/121 ... yes
2/123 ... yes
2/124 ... yes
2/125 ... yes
2/126 ... yes
2/127 ... yes
2/128 ... yes
2/129 ... yes
2/130 ... yes
2/131 ... yes
2/132 ... yes
2/133 ... yes
2/134 ... yes
2/135 ... yes
2/136 ... yes
2/137 ... yes
2/138 ... yes
2/139 ... yes
2/140 ... yes
2/141 ... yes
2/143 ... yes
2/144 ... yes
2/145 ... yes
2/146 ... yes
2/147 ... yes
2/148 ... yes
2/149 ... yes
2/150 ... yes
2/151 ... yes
2/153 ... yes
2/154 ... yes
2/156 ... yes
2/157 ... yes
2/158 ... yes
2/159 ... yes
2/160 ... yes
2/161 ... yes
2/162 ... yes
2/163 ... yes
2/164 ... yes
2/165 ... yes
2/168 ... yes
2/169 ... yes
2/170 ... yes
3/171 ... yes
3/172 ... yes
3/174 ... yes
2/189 ... yes
2/190 ... yes
2/191 ... yes
2/192 ... yes
2/194 ... yes
3/201 ... yes
2/203 ... yes
13/204 ... yes
14/205 ... yes
4/206 ... yes
4/207 ... yes
4/208 ... yes
4/209 ... yes
4/210 ... yes
4/212 ... yes
4/213 ... yes
2/214 ... yes
20/215 ... yes
2/216 ... yes
2/217 ... yes
2/218 ... yes
2/219 ... yes
2/220 ... yes
16/221 ... yes
2/222 ... yes
2/223 ... yes
24/224 ... yes
2/225 ... yes
3/226 ... yes
2/227 ... yes
1/228 ... yes
1/230 ... yes
2/231 ... yes
4/232 ... yes
6/233 ... yes
1/234 ... yes
6/235 ... yes
4/237 ... yes
4/238 ... yes
4/239 ... yes
2/240 ... yes
34/241 ... yes
34/242 ... yes
72/243 ... yes
35/245 ... yes
72/246 ... yes
1/247 ... yes
6/248 ... yes
28/249 ... yes
24/250 ... yes
1/251 ... yes
36/252 ... yes
1/253 ... yes
2/254 ... yes
2/255 ... yes
2/257 ... yes
35/263 ... yes
35/264 ... yes
2/265 ... yes
95/271 ... yes
72/272 ... yes
2/273 ... yes
34/274 ... yes
2/275 ... yes
102/276 ... yes
72/277 ... yes
72/278 ... yes
34/279 ... yes
34/280 ... yes
115/281 ... yes
109/283 ... yes
136/285 ... yes
172/286 ... yes
173/287 ... yes
122/288 ... yes
138/290 ... yes
144/291 ... yes
175/292 ... yes
135/293 ... yes
121/294 ... yes
143/295 ... yes
164/303 ... yes
34/314 ... yes
102/319 ... yes
174/321 ... yes
116/322 ... yes
102/324 ... yes
102/325 ... yes
120/326 ... yes
107/327 ... yes
134/328 ... yes
169/329 ... yes
112/331 ... yes
104/335 ... yes
180/336 ... yes
181/337 ... yes
179/338 ... yes
137/341 ... yes
182/342 ... yes
143/343 ... yes
124/344 ... yes
109/346 ... yes
2/347 ... yes
123/349 ... yes
135/350 ... yes
141/353 ... yes
144/355 ... yes
138/359 ... yes
164/360 ... yes
173/366 ... yes
94/368 ... yes
94/369 ... yes
94/370 ... yes
112/374 ... yes
179/376 ... yes
141/378 ... yes
107/383 ... yes
174/384 ... yes
104/385 ... yes
120/387 ... yes
134/388 ... yes
143/389 ... yes
101/390 ... yes
115/394 ... yes
175/395 ... yes
143/396 ... yes
118/400 ... yes
118/402 ... yes
175/403 ... yes
124/404 ... yes
169/405 ... yes
117/410 ... yes
117/412 ... yes
2/416 ... yes
36/417 ... yes
36/418 ... yes
36/419 ... yes
3/421 ... yes
2/422 ... yes
2/423 ... yes
35/428 ... yes
2/429 ... yes
187/430 ... yes
2/431 ... yes
189/432 ... yes
189/433 ... yes
102/434 ... yes
214/435 ... yes
190/436 ... yes
209/437 ... yes
200/438 ... yes
102/439 ... yes
199/440 ... yes
197/441 ... yes
191/442 ... yes
121/443 ... yes
201/444 ... yes
211/445 ... yes
111/448 ... yes
220/449 ... yes
194/450 ... yes
223/451 ... yes
218/452 ... yes
205/454 ... yes
226/455 ... yes
102/456 ... yes
2/458 ... yes
2/459 ... yes
2/460 ... yes
2/461 ... yes
220/463 ... yes
196/464 ... yes
208/467 ... yes
121/468 ... yes
220/469 ... yes
202/470 ... yes
225/472 ... yes
192/473 ... yes
1/474 ... yes
196/475 ... yes
224/476 ... yes
195/477 ... yes
209/479 ... yes
199/480 ... yes
221/482 ... yes
111/485 ... yes
211/486 ... yes
72/487 ... yes
217/488 ... yes
226/489 ... yes
197/490 ... yes
203/491 ... yes
204/492 ... yes
202/493 ... yes
208/494 ... yes
210/495 ... yes
191/496 ... yes
214/498 ... yes
216/499 ... yes
215/500 ... yes
225/501 ... yes
209/502 ... yes
220/503 ... yes
224/504 ... yes
202/506 ... yes
204/507 ... yes
192/508 ... yes
197/509 ... yes
200/510 ... yes
190/511 ... yes
199/512 ... yes
222/513 ... yes
227/514 ... yes
221/515 ... yes
215/516 ... yes
2/517 ... yes
203/518 ... yes
143/519 ... yes
143/520 ... yes
143/521 ... yes
2/522 ... yes
239/526 ... yes
72/527 ... yes
2/528 ... yes
2/529 ... yes
2/530 ... yes
2/531 ... yes
2/532 ... yes
2/533 ... yes
2/534 ... yes
2/535 ... yes
2/536 ... yes
2/537 ... yes
2/538 ... yes
239/539 ... yes
2/540 ... yes
2/541 ... yes
2/542 ... yes
239/543 ... yes
102/544 ... yes
2/545 ... yes
2/546 ... yes
2/547 ... yes
2/548 ... yes
289/549 ... yes
289/550 ... yes
2/551 ... yes
283/552 ... yes
276/553 ... yes
267/554 ... yes
281/555 ... yes
246/556 ... yes
264/557 ... yes
261/558 ... yes
256/562 ... yes
259/563 ... yes
261/564 ... yes
274/565 ... yes
282/566 ... yes
262/567 ... yes
288/568 ... yes
294/569 ... yes
275/571 ... yes
244/572 ... yes
265/574 ... yes
252/575 ... yes
273/576 ... yes
272/578 ... yes
295/580 ... yes
2/581 ... yes
277/584 ... yes
268/585 ... yes
232/586 ... yes
243/587 ... yes
243/588 ... yes
280/589 ... yes
297/592 ... yes
276/593 ... yes
258/594 ... yes
2/600 ... yes
2/601 ... yes
2/602 ... yes
2/603 ... yes
239/604 ... yes
72/605 ... yes
300/606 ... yes
2/609 ... yes
102/610 ... yes
102/611 ... yes
239/612 ... yes
265/613 ... yes
389/614 ... yes
381/615 ... yes
402/617 ... yes
400/621 ... yes
404/622 ... yes
399/623 ... yes
405/624 ... yes
402/625 ... yes
381/626 ... yes
403/627 ... yes
2/629 ... yes
417/630 ... yes
395/631 ... yes
384/632 ... yes
2/635 ... yes
421/636 ... yes
381/637 ... yes
391/638 ... yes
385/640 ... yes
381/641 ... yes
391/642 ... yes
390/643 ... yes
396/644 ... yes
241/645 ... yes
400/646 ... yes
403/647 ... yes
251/648 ... yes
415/649 ... yes
393/650 ... yes
384/651 ... yes
391/652 ... yes
421/653 ... yes
388/654 ... yes
389/655 ... yes
399/656 ... yes
402/657 ... yes
405/658 ... yes
400/659 ... yes
277/660 ... yes
404/661 ... yes
390/662 ... yes
383/663 ... yes
2/664 ... yes
239/665 ... yes
239/666 ... yes
390/667 ... yes
1/668 ... yes
395/669 ... yes
415/670 ... yes
396/671 ... yes
389/672 ... yes
382/673 ... yes
399/674 ... yes
251/675 ... yes
390/676 ... yes
403/677 ... yes
251/678 ... yes
391/679 ... yes
277/680 ... yes
406/681 ... yes
395/682 ... yes
384/683 ... yes
421/684 ... yes
405/685 ... yes
396/686 ... yes
382/687 ... yes
415/688 ... yes
2/689 ... yes
2/692 ... yes
72/693 ... yes
1/694 ... yes
72/695 ... yes
222/696 ... yes
423/698 ... yes
422/702 ... yes
239/703 ... yes
2/705 ... yes
232/711 ... yes
2/712 ... yes
2/713 ... yes
2/715 ... yes
232/716 ... yes
96/721 ... yes
442/722 ... yes
427/723 ... yes
432/724 ... yes
428/726 ... yes
96/727 ... yes
447/728 ... yes
443/729 ... yes
451/730 ... yes
440/731 ... yes
430/733 ... yes
452/734 ... yes
450/735 ... yes
455/736 ... yes
222/738 ... yes
434/743 ... yes
446/747 ... yes
449/748 ... yes
249/749 ... yes
450/752 ... yes
427/753 ... yes
287/754 ... yes
431/755 ... yes
431/756 ... yes
428/757 ... yes
451/758 ... yes
430/759 ... yes
452/760 ... yes
457/762 ... yes
450/764 ... yes
446/765 ... yes
439/766 ... yes
447/767 ... yes
427/768 ... yes
447/769 ... yes
449/770 ... yes
249/771 ... yes
443/772 ... yes
434/773 ... yes
432/774 ... yes
447/776 ... yes
289/777 ... yes
443/778 ... yes
430/779 ... yes
435/780 ... yes
435/781 ... yes
447/782 ... yes
447/783 ... yes
446/784 ... yes
439/785 ... yes
449/786 ... yes
428/787 ... yes
434/788 ... yes
438/789 ... yes
458/790 ... yes
450/792 ... yes
427/793 ... yes
249/794 ... yes
249/795 ... yes
432/796 ... yes
435/797 ... yes
435/798 ... yes
435/799 ... yes
287/800 ... yes
301/801 ... yes
468/804 ... yes
468/805 ... yes
468/806 ... yes
662/807 ... yes
468/808 ... yes
468/809 ... yes
301/810 ... yes
239/811 ... yes
239/814 ... yes
425/816 ... yes
34/818 ... yes
34/819 ... yes
124/820 ... yes
668/822 ... yes
642/823 ... yes
425/824 ... yes
667/825 ... yes
669/826 ... yes
669/827 ... yes
425/828 ... yes
537/829 ... yes
519/830 ... yes
624/831 ... yes
670/832 ... yes
591/833 ... yes
534/834 ... yes
528/835 ... yes
615/836 ... yes
514/837 ... yes
627/838 ... yes
591/839 ... yes
512/840 ... yes
577/841 ... yes
124/842 ... yes
124/843 ... yes
537/844 ... yes
624/846 ... yes
591/847 ... yes
670/848 ... yes
406/849 ... yes
626/850 ... yes
520/851 ... yes
665/852 ... yes
34/853 ... yes
562/855 ... yes
532/856 ... yes
669/857 ... yes
34/858 ... yes
568/859 ... yes
639/860 ... yes
124/861 ... yes
577/862 ... yes
642/863 ... yes
672/864 ... yes
672/865 ... yes
514/866 ... yes
627/867 ... yes
577/868 ... yes
627/869 ... yes
615/870 ... yes
528/871 ... yes
591/872 ... yes
626/873 ... yes
522/875 ... yes
526/876 ... yes
670/877 ... yes
522/878 ... yes
537/879 ... yes
608/880 ... yes
512/881 ... yes
406/882 ... yes
608/883 ... yes
608/884 ... yes
562/885 ... yes
514/886 ... yes
533/887 ... yes
124/888 ... yes
557/889 ... yes
520/890 ... yes
561/891 ... yes
615/892 ... yes
642/893 ... yes
669/894 ... yes
577/896 ... yes
301/897 ... yes
Redis version >= 2.8.0? ... yes
Ruby version >= 2.3.5 ? ... yes (2.5.3)
Git version >= 2.18.0 ? ... yes (2.18.1)
Git user has default SSH configuration? ... yes
Active users: ... 515
Checking GitLab App ... Finished
Checking GitLab subtasks ... Finished
</pre>
</details>
issue