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.
Jamie Klassen b380f5c1ba
Merge pull request #4443 from concourse/fix-more-topgun-paths
8 hours ago
.github remove *'s from CODEOWNERS 1 month ago
atc Merge pull request #4429 from concourse/fix-lidar-logging 15 hours ago
cmd pull out workercmd from cmd/concourse 4 days ago
fly Merge pull request #4392 from niall-byrne/documentation_issue_4348 3 days ago
go-concourse Merge pull request #4202 from concourse/feature/3788-checks 1 week ago
hack package mdi svg icons 5 months ago
release-notes add release notes for set-team docs fix 17 hours ago
screenshots add 2x scaled screenshot for hidpi laptops 1 year ago
skymarshal Documentation: 1 week ago
testflight fly,testflight: add --async and --shallow for check resource/type 3 weeks ago
topgun fix a bunch more topgun file paths 8 hours ago
tsa feat(log): Add --log-cluster-name option to enable including cluster name in log line. 6 days ago
vars feat: redacting secrets in build logs. 1 week ago
web Merge pull request #4314 from robwhitby/fly-login-link 5 days ago
worker pull out workercmd from cmd/concourse 4 days ago
.dockerignore flesh out 11 months ago
.env run watsjs/testflight against prebuilt Concourse 11 months ago
.gitignore ignore idea files 4 months ago move important docs to root 10 months ago chore: removed /ci folder reference from 6 days ago
Dockerfile ci: rework how we use Docker Compose in CI 6 months ago re-init 1 year ago say "Present" in 5 months ago Remove example dir 1 month ago
docker-compose.yml web: add cluster name to docker-compose.yml 4 months ago
go.mod bump baggageclaim to fix overlay mounts 1 week ago
go.sum bump baggageclaim to fix overlay mounts 1 week ago
package.json update wats npm deps and revisit dev dependencies 1 month ago
tools.go Add tools.go to keep track of tool versions 5 months ago
versions.go concourse/#3819 using zstd to streamIn/Out between workers 2 months ago
yarn.lock update wats npm deps and revisit dev dependencies 1 month 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 Releases 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.