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.
Nader Ziada aab8f4a85d
Merge pull request #4118 from Pix4D/active_tasks_lock_task_step
3 days ago
.github stop auto-labeling 'triage' 3 months ago
atc Rename fewest-active-tasks to limit-active-tasks. 5 days ago
cmd/concourse Merge pull request #3864 from concourse/fix-worker-private-key-flag 2 months ago
examples Rename Parallel to InParallel and nest yaml configuration 3 months ago
fly fly: print help for subcommands 5 days ago
go-concourse Rename fewest-active-tasks to limit-active-tasks. 5 days ago
hack package mdi svg icons 3 months ago
screenshots add 2x scaled screenshot for hidpi laptops 10 months ago
skymarshal web - add autocomplete off to password on login 2 months ago
testflight Update rename logic and add testflight test 3 months ago
topgun Merge pull request #4102 from concourse/topgun/4098 5 days ago
tsa Update tls & ssh config 2 months ago
web Merge branch 'master' into issue/3872 3 weeks ago
worker fix retire worker using tsa-team-authorized-keys only 1 month ago
.dockerignore flesh out 10 months ago
.env run watsjs/testflight against prebuilt Concourse 9 months ago
.gitignore ignore idea files 2 months ago move important docs to root 8 months ago Merge pull request #3870 from concourse/issue/3748 2 months ago
Dockerfile ci: rework how we use Docker Compose in CI 4 months ago re-init 10 months ago say "Present" in 3 months ago Update README Download Link 1 month ago
docker-compose.yml adding workaround for expired check sessions 1 month ago
go.mod concourse/#3819 using zstd to streamIn/Out between workers 4 weeks ago
go.sum concourse/#3819 using zstd to streamIn/Out between workers 4 weeks ago
package.json force less to use a newer version of request 1 month ago
tools.go Add tools.go to keep track of tool versions 3 months ago
versions.go concourse/#3819 using zstd to streamIn/Out between workers 4 weeks ago
yarn.lock force less to use a newer version of request 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.