Concourse alternatives and similar libraries
Based on the "Continuous Integration" category.
Alternatively, view Concourse alternatives based on common mentions on social networks and blogs.
-
Semaphore
Hosted CI/CD service, free for open-source and 100 private builds with native Docker support. -
Bamboo
Atlassian's solution with good integration of their other products. You can either apply for an open-source license or buy it. -
CircleCI
Hosted service that offers a free plan for small needs. Open source projects are given a free bigger plan. Designed to integrate with GitHub.
CodeRabbit: AI Code Reviews for Developers
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of Concourse or a related project?
README
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](screenshots/booklit-pipeline.png)
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!" 🙏
Installation
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 https://concourse-ci.org/docker-compose.yml
$ docker-compose up
Creating docs_concourse-db_1 ... done
Creating docs_concourse_1 ... done
Concourse will be running at 127.0.0.1:8080. You can
log in with the username/password as test
/test
.
:warning: If you are using an M1 mac: M1 macs are incompatible with the
containerd
runtime. After downloading the docker-compose file, changeCONCOURSE_WORKER_RUNTIME: "containerd"
toCONCOURSE_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 http://127.0.0.1:8080 -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:
resources:
- name: booklit
type: git
source: {uri: "https://github.com/vito/booklit"}
jobs:
- name: unit
plan:
- 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 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
- The Official Site for documentation, reference material, and example pipelines (which no longer live in this repository).
- The Concourse Tutorial by Stark & Wayne is great for a guided introduction to all the core concepts.
- See Concourse in action with our production pipelines
- Hang around in the GitHub discussions or in Discord.
- See what we're working on on the project board.
Contributing
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](CONTRIBUTING.md).