Using "only merge_requests" in .gitlab-ci.yml behaves like a logical OR rather than AND

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.

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 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

Expand for output related to GitLab environment info

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

Results of GitLab application Check

Expand for output related to the GitLab application check
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