Rather than a myriad of checkboxes, pipelines are defined as a single declarative config file, composing together just three core concepts.
As your project grows, your pipeline will grow with it, and remain understandable.
Concourse's user interface helps you find out what you need to know about your builds as quickly as possible.
For a live example, see Concourse's own pipeline.
Concourse controls the inputs to your pipeline so that the results are repeatable every time.
Rather than sharing state, every task runs in its own container, controlling its own dependencies.
Local changes can be tested with the Fly CLI, allowing you to see if they would succeed or fail in your pipeline ahead of time.
Interacting with the world is a crucial part of any pipeline. Concourse expresses these interactions as Resources, allowing you to delete your boring plumbing code and focus on your interesting code instead.
Concourse works out-of-the-box with Git repositories, S3 buckets, and other common external services. Custom resource types allow you to extend your pipeline with support for anything else.
vagrant init concourse/lite # creates ./Vagrantfilevagrant up # downloads the box and spins up the VM1
min
jobs:
- name: hello-world
plan:
- task: say-hello
config:
platform: linux
image_resource:
type: docker-image
source: {repository: ubuntu}
run:
path: echo
args: ["Hello, world!"]1
sec
fly -t lite login -c http://192.168.100.4:8080fly -t lite set-pipeline -p hello-world -c hello.yml
To chit chat, ask for help, or offer your own, join us in Slack.