only:changes / except:changes advanced CI rules is not working as expected when triggered via web & schedule
Summary
only: changes
/ except: changes
CI rules are interacting with web
& schedule
trigger in an unexpected way.
web
trigger -> click on "Run Pipeline" from the pipeline page
schedule
trigger -> When the pipeline is triggered from pipeline_schedules page, either if pipeline fire on the scheduled time or forcing it via the pipeline schedules page
Steps to reproduce
Only_changes:
stage: build
only:
changes:
- trigger_change/*
script:
- echo "Only Changes Rules"
# | With changes in trigger change dir | No changes in trigger change dir |
---|---|---|
Triggered via commit | Expect: Triggered / Current: Triggered | Expect: No Trigger / Current: No Trigger |
Triggered via web/schedule | Expect: Triggered / Current: Triggered | Expect: No Trigger / Current: Triggered |
Except_changes:
stage: build
except:
changes:
- trigger_change/*
script:
- echo "Except Changes Rules"
# | With changes in trigger change dir | No changes in trigger change dir |
---|---|---|
Triggered via commit | Expect: No Trigger / Current: No Trigger | Expect: Triggered / Current: Triggered |
Triggered via web/schedule | Expect: No Trigger / Current: No Trigger | Expect: Triggered / Current: No Trigger |
Combine refs & except changes:
stage: build
only:
refs:
- web
- schedules
except:
changes:
- trigger_change/*
script:
- echo "Combine refs & except changes"
- Expectation: Pipeline triggers when it is stared from "web" and "schedule" except there are changes in the
trigger_change
directory - Reality: This is never triggered no matter what happened
Example Project
https://gitlab.com/awinata/issue-58961/pipelines -> Check the jobs on the pipelines. The jobs are named accordingly
Particularly: https://gitlab.com/awinata/issue-58961/pipelines/51819975 -> Triggered via Run Pipeline button on the web with no changes inside the trigger_changes directory. Except_changes
job should trigger, instead Only_changes
job triggered. The Combine_refs_except_changes
should trigger as well, but it didn't
Initially reported in a ticket from customer (Internal Only ZD: https://gitlab.zendesk.com/agent/tickets/114897)
Output of checks
This bug happens on GitLab.com