common-ci-tasks across all GitLab Engineering Projects
Related to #460
common-ci-tasks is a set of CI templates used by the Infrastructure Platforms department (although it's also used in some cases outside of the department, for instance AI Gateway).
The library encourages convention over configuration, thus encouraging many different projects to assume the same standards and "overall shape".
This approach has many advantages:
- Engineers can onboard to new projects without having to learn new structure.
- Fewer surprises between projects.
- Developers spend less time deciding on toolsets and adopt the standard.
- Migrations are performed across projects using Renovate and text manipulation, allowing project transformations across many projects without the need for manual transformations.
- New functionality can quickly be added to multiple projects simply by changing the common-ci-task templates.
- Sensible defaults can be applied as policy to many projects as once, without the need for manually interpreting those policies for each project separately.
- Security policies can be applied consistently across projects.
This approach has been very successful, and has been adopted by a many projects.
This raises a question (@pmartinsgl actually raised the question) -- why not advocate for using this common set of CI task definitions across all Engineering projects? If this approach has been successful for Infrastructure, applying the same approach would provide a method to encourage consistency and improve standards across all projects at GitLab.
cc @amyphillips for DevEx.
cc the common-ci-tasks unofficial maintainers @reprazent @pguinoiseau @fforster