Let's suppose I have this hidden "base" job.
.base_job:
rules:
- if: "$CI_COMMIT_TAG"
when: never
- if: '$CI_PIPELINE_SOURCE == "web"'
I'd like to add these rules to a new job and be able to extend them too, e.g.:
job_1:
rules:
- <add .base_job here>
- if: "$CI_MERGE_REQUEST_IID"
job_2:
rules:
- <add .base_job here>
- if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH"
Note that job_1 and job_2 have different rules, including the ones from .base_job.
If I were to use extends, the jobs would have only the custom rule because according to the docs:
You can use extends to merge hashes but not arrays.
My solution so far is to copy-paste the rules for both jobs but I'd like to keep it more DRY.
Any tips on how to do it?