We're Bringing in YAML
TL;DR: Chipper CI has an (optional) Yaml configuration file you can add to your repository to define build environment and pipeline scripts. We're still keeping it simple. Docs here.
We want Chipper CI to be the simplest possible CI solution for Laravel developers. The goal is to be able to connect a Git repository, maybe tweak a setting, and be on your way.
When we first broke ground on Chipper CI, we were burnt out on CI apps that were difficult to configure.
Yaml configurations were difficult to get right. Good examples were hard to come by, and documentation felt scattered.
Yaml didn't feel simple, and so we avoided it.
Now, in 2022, after ~2.5 years of operating Chipper CI, we have some more perspective.
Yaml is complex when the application is complex
Larger CI apps have to be everything to everyone. They need to support any language, custom containers, dedicated build environments, on-premise runners, and so much more.
Some are on their 2nd and 3rd iterations of their core product. All of this means LOTS of features.
To distill so many features and configurations into a build pipeline necessitates a complicated Yaml file!
Chipper CI is still simple
Configuring a project in Chipper CI involves choosing your PHP/Node versions, maybe adding a database or cache, and pushing some code.
Chipper CI is simple. It turns out, that means we could make the Yaml file simple.
But why add Yaml now?
The idea of using a Yaml file came about after talking to customers! YAML does actually makes a ton of sense:
- It's easily portable across projects: copy and paste one file!
- It's configurable per branch: e.g. testing out a new PHP version in a feature branch
- It's more visible: others can see examples and use that in their own projects
Yaml in Chipper CI
You can now use Yaml-powered builds your Chipper CI projects. There's nothing to change in your Project Settings - all you'll need to do is create a .chipperci.yml file.
If Chipper CI finds that file in the root of your repository, it will use that. Otherwise it will fall back to current project settings.
This isn't a breaking change. For the time being, you can continue to use Chipper CI as-is, without a YAML file.
A final note: We'll keep some things in Project Settings, and out of Yaml:
- Environment variables
- Secrets (when this feature is released)
- Package authentication
- Build restrictions and post-build webhooks
P.S. If you didn't see the previous email about our 2022 roadmap, check it out here!
P.S.S. The Yaml looks something like this:
version: 1
environment:
php: 8.1
node: 16
services:
- mysql: 5.7
pipeline:
- name: Setup
cmd: |
cp -v .env.example .env
composer install
php artisan key:generate
- name: Test
cmd: phpunit