3 ms·
Allow me to shill for Concourse[0]. It's oriented around 'tasks' composed into 'pipelines'. Each task either fails or succeeds with the yaml pipeline definition
by Everlag 9y ago
Allow me to shill for Concourse[0]. It's oriented around 'tasks' composed into 'pipelines'. Each task either fails or succeeds with the yaml pipeline definition providing hooks into either state to proc other tasks. A task is a yaml definition that invokes a bash script. Each task runs inside a preconfigured docker container for full reproducibility.
It's declarative and everything needed to bring up a pipeline can be stored in git alongside the software it supports. For an example pipeline definition, check out the one for bosh-gcscli[1] and its accompanying tasks[2].
Now, there is the downside that upkeep is a hassle because it requires buying into the BOSH ecosystem to deploy Concourse. That pays for itself by being explicitly anti-brittle, with support for migrations and canary rollouts builtin.
Disclaimer: I worked with Concourse at my previous position but currently have no financial stake in its success.
[0] https://concourse.ci/ https://concourse.ci/
[1] https://github.com/cloudfoundry/bosh-gcscli/blob/c908176/ci/pipeline.yml https://github.com/cloudfoundry/bosh-gcscli/blob/c908176/ci/...
[2] https://github.com/cloudfoundry/bosh-gcscli/tree/30316d6/ci/tasks https://github.com/cloudfoundry/bosh-gcscli/tree/30316d6/ci/...