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
issue