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.
Rui Yang 788a440f0f
Merge pull request #8365 from concourse/pr-8342-topgun-test-fix
1 day ago
.github build(deps): bump github/codeql-action from 1 to 2 3 weeks ago
atc don't force resource type check on get step 2 days ago
cmd bump dex to 0.4.0 1 year ago
fly fix fly integration test in window OS 1 week ago
go-concourse regenerate go-concourse team fakes 1 month ago
hack Add tracing to volumeRepository funcs 9 months ago
integration Fix pipeline pauser edge case 4 months ago
screenshots add 2x scaled screenshot for hidpi laptops 4 years ago
skymarshal Merge pull request #8353 from danpilch/oidc-get-user-info 2 days ago
testflight goimports all files 7 months ago
topgun completely revert change in topgun resource types test 1 day ago
tracing batch opentelemetry requests 6 months ago
tsa goimports all files 7 months ago
vars B: unmarshal using json.Number rather than float64 11 months ago
web build(deps): bump puppeteer from 14.0.0 to 14.1.0 in /web/wats 3 days ago
worker turn golang buildvcs off for integration test 1 month ago
.agignore remove baggageclaim CI code 9 months ago
.deepsource.toml add deepsource config 2 years ago
.dockerignore don't rebuild on changes to docker-related files 1 year ago
.env run watsjs/testflight against prebuilt Concourse 4 years ago
.gitignore integration: re-add docker-compose.yml 1 year ago bump CoC to 2.0, use emails 1 year ago Use a version from dex 9 months ago
Dockerfile bump to go 1.17 in go.mod and add goproxy in dockerfile 5 months ago re-init 4 years ago update notice and concourse email 2 years ago add warning for M1 macs 1 month ago bump CoC to 2.0, use emails 1 year ago
docker-compose.yml add feature flag for resource causality 11 months ago
go.mod Merge pull request #8349 from concourse/dependabot/go_modules/ 5 days ago
go.sum Merge pull request #8349 from concourse/dependabot/go_modules/ 5 days ago
package.json build(deps-dev): bump @babel/preset-env from 7.17.10 to 7.17.12 3 days ago
tools.go goimports all files 7 months ago
versions.go bump worker version to 2.4 3 months ago
webpack.config.js web: babel-ify javascript bundle 2 years ago
yarn.lock build(deps-dev): bump @babel/preset-env from 7.17.10 to 7.17.12 3 days ago

Concourse: the continuous thing-doer.

Help Wanted

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

booklit pipeline

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

The road to Concourse v10

Concourse v10 is the code name for a set of features which, when used
in combination, will have a massive impact on Concourse's capabilities as a
generic continuous thing-doer. These features, and how they interact, are
described in detail in the Core roadmap: towards v10 and Re-inventing
resource types
blog posts. (These posts are slightly out of
date, but they get the idea across.)

Notably, v10 will make Concourse not suck for multi-branch and/or
pull-request driven workflows
- examples of spatial change, where the set
of things to automate grows and shrinks over time.

Because v10 is really an alias for a ton of separate features, there's a lot
to keep track of - here's an overview:

Feature RFC Status
set_pipeline step #31 ✔ v5.8.0 (experimental)
Var sources for creds #39 ✔ v5.8.0 (experimental), TODO: #5813
Archiving pipelines #33 ✔ v6.5.0
Instanced pipelines #34 ✔ v7.0.0 (experimental)
Static across step 🚧 #29 ✔ v6.5.0 (experimental)
Dynamic across step 🚧 #29 ✔ v7.4.0 (experimental, not released yet)
Projects 🚧 #32 🙏 RFC needs feedback!
load_var step #27 ✔ v6.0.0 (experimental)
get_var step #27 🚧 #5815 in progress!
Prototypes #37 ⚠ Pending first use of protocol (any of the below)
run step 🚧 #37 ⚠ Pending its own RFC, but feel free to experiment
Resource prototypes #38 🙏 #5870 looking for volunteers!
Var source prototypes 🚧 #6275 planned, may lead to RFC
Notifier prototypes 🚧 #28 ⚠ RFC not ready

The Concourse team at VMware will be working on these features, however in the
interest of growing a healthy community of contributors we would really
appreciate any volunteers. This roadmap is very easy to parallelize, as it is
comprised of many orthogonal features, so the faster we can power through it,
the faster we can all benefit. We want these for our own pipelines too! 😆

If you'd like to get involved, hop in Discord or leave a comment on
any of the issues linked above so we can coordinate. We're more than happy to
help figure things out or pick up any work that you don't feel comfortable
doing (e.g. UI, unfamiliar parts, etc.).

Thanks to everyone who has contributed so far, whether in code or in the
community, and thanks to everyone for their patience while we figure out how to
support such common functionality the "Concoursey way!" 🙏


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.

If you are using an M1 mac: M1 macs are incompatible with the containerd runtime. After downloading the docker-compose file, change CONCOURSE_WORKER_RUNTIME: "containerd" to CONCOURSE_WORKER_RUNTIME: "houdini".
This feature is experimental

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
, and then run:

fly -t ci 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

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