There is a feature to provide a group default `.gitlab-ci.yml` if none is provided in a project. We may consider doing this at some point.
# Trigger Rules
By default if you don't define any rules your job will run on any push (with file changes, possibly excluding push with just tags). One tricky scenario to be aware of is trying to avoid triggering a CI job when a push contains a change to only the README, CHANGELOG, Screenshot.png, or similar file. You might think this would work, but it doesn't:
```
rule:
- changes:
- "README.md"
- "CHANGELOG.md"
- "Screenshot.png"
when: never
- when: always
```
This doesn't work because changes are evaluated by looking for any file matches, and means if you have a commit with multiple files, some of which match and some of which are actual code files, this rule will prevent CI. Not what you want.
There are [complicated work-arounds](https://stackoverflow.com/questions/73298609/suppress-gitlab-ci-stage-if-push-only-changes-readme-md). A better solution may be to simply manually include `[ci skip]` in the commit message of changes you want to skip CI on.