You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Alex Suraci d61d5dab80
Merge pull request #3830 from concourse/feature/3811-task-cache
16 hours ago
.github stop auto-labeling 'triage' 1 month ago
atc Merge pull request #3830 from concourse/feature/3811-task-cache 16 hours ago
ci ci: build fly with cgo on Darwin 1 day ago
cmd/concourse --external-garden-address -> --external-garden-url 1 week ago
examples Rename Parallel to InParallel and nest yaml configuration 1 month ago
fly Merge pull request #3801 from cappyzawa/feature/get-team 1 week ago
go-concourse Config => Team 2 weeks ago
hack package mdi svg icons 1 month ago
screenshots add 2x scaled screenshot for hidpi laptops 8 months ago
skymarshal web - add autocomplete off to password on login 1 day ago
testflight Update rename logic and add testflight test 1 month ago
topgun topgun/k8s: update worklifecycle tests to be more succint 2 weeks ago
tsa Update tls & ssh config 4 weeks ago
web web: fixed login wats tests 1 day ago
worker Add tools.go to keep track of tool versions 1 month ago
.dockerignore flesh out 7 months ago
.env run watsjs/testflight against prebuilt Concourse 7 months ago
.gitignore ignore idea files 1 week ago move important docs to root 6 months ago Merge pull request #3870 from concourse/issue/3748 5 days ago
Dockerfile ci: rework how we use Docker Compose in CI 2 months ago re-init 8 months ago say "Present" in 1 month ago README: include a link to the public GH Project board 5 months ago
docker-compose.yml minor naming changes 2 weeks ago
go.mod Merge branch 'cache-cred-mgr-lookups' of into ralekseenkov-cache-cred-mgr-lookups 3 weeks ago
go.sum Merge branch 'cache-cred-mgr-lookups' of into ralekseenkov-cache-cred-mgr-lookups 3 weeks ago
package.json web: fix ambiguous benchmark module name 6 days ago
tools.go Add tools.go to keep track of tool versions 1 month ago
versions.go atc: permanent unique version history for base types 3 months ago
yarn.lock ci, web: add elm benchmarking 1 week ago

Concourse: the continuous thing-doer.

Concourse is an automation system written in Go. It is most commonly used for CI/CD, and is built to scale to any kind of automation pipeline, from simple to complex.

booklit pipeline

Concourse is very opinionated about a few things: idempotency, immutability, declarative config, stateless workers, and reproducible builds.


Concourse is distributed as a single concourse binary, available on the Downloads page.

If you want to just kick the tires, jump ahead to the Quick Start.

In addition to the concourse binary, there are a few other supported formats. Consult their GitHub repos for more information:

Quick Start

$ wget
$ docker-compose up
Creating docs_concourse-db_1 ... done
Creating docs_concourse_1    ... done

Concourse will be running at You can log in with the username/password as test/test.

Next, install fly by downloading it from the web UI and target your local Concourse as the test user:

$ fly -t ci login -c -u test -p test
logging in to team 'main'

target saved

Configuring a Pipeline

There is no GUI for configuring Concourse. Instead, pipelines are configured as declarative YAML files:

- name: booklit
  type: git
  source: {uri: ""}

- name: unit
  - get: booklit
    trigger: true
  - task: test
    file: booklit/ci/test.yml

Most operations are done via the accompanying fly CLI. If you’ve got Concourse installed, try saving the above example as booklit.yml, target your Concourse instance, and then run:

fly -t $target set-pipeline -p booklit -c booklit.yml

These pipeline files are self-contained, maximizing portability from one Concourse instance to the next.

Learn More


Our user base is basically everyone that develops software (and wants it to work).

It’s a lot of work, and we need your help! If you’re interested, check out our contributing docs.