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