My team wants to be consistent about how we use CircleCI across all our projects. We’d like to use a standard .circleci/config.yml file and include it in each project.
Requirements
The requirements would be:
We are able to maintain the .circleci/config.yml centrally and do appropriate change management.
We can make variations to the configuration for individual projects.
Possible approach
For our code quality tool, Rubocop, we can already do this. We have a centrally-maintained .rubocop.yml file that is included in each project using a private gem. Then the local .rubocop.yml file in each project includes it like this:
---
inherit_gem:
my_team_rubocop: .rubocop.yml
# local config goes below here
Yes, orbs are definitely designed to let you share config across projects. As of today you can write inline orbs, but we will soon allow you to add orbs to the orb registry and reference them in all your projects. See the linked thread above for details.