An open API service indexing awesome lists of open source software.

https://github.com/concourse/concourse

Concourse is a container-based continuous thing-doer written in Go.
https://github.com/concourse/concourse

ci ci-cd concourse continuous-delivery continuous-integration elm go hacktoberfest pipelines

Last synced: 7 days ago
JSON representation

Concourse is a container-based continuous thing-doer written in Go.

Awesome Lists containing this project

README

        

# Concourse

[![Discord](https://img.shields.io/discord/219899946617274369.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)][discord]
[![Build](https://ci.concourse-ci.org/api/v1/teams/main/pipelines/concourse/badge)](https://ci.concourse-ci.org/teams/main/pipelines/concourse)
[![Contributors](https://img.shields.io/github/contributors/concourse/concourse)](https://github.com/concourse/concourse/graphs/contributors)
[![Help Wanted](https://img.shields.io/github/labels/concourse/concourse/help%20wanted)](https://github.com/concourse/concourse/labels/help%20wanted)

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.

## Installation

Concourse is distributed as a single `concourse` binary, available on the [Releases page](https://github.com/concourse/concourse/releases/latest).

If you want to just kick the tires, jump ahead to the [Quick Start](#quick-start).

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

* [Docker image](https://github.com/concourse/concourse-docker)
* [BOSH release](https://github.com/concourse/concourse-bosh-release)
* [Kubernetes Helm chart](https://github.com/concourse/concourse-chart)

## Quick Start

```sh
$ wget https://concourse-ci.org/docker-compose.yml
$ docker-compose up -d
Creating docs_concourse-db_1 ... done
Creating docs_concourse_1 ... done
```

Concourse will be running at [localhost:8080](http://localhost:8080). You can
log in with the username/password as `test`/`test`.

> :warning: **If you are using an M-series mac**, note that they are
> incompatible with the `containerd` runtime until
> [#1379](https://github.com/concourse/concourse/issues/1379) is resolved.
> After downloading the docker-compose file, change:
>
> `CONCOURSE_WORKER_RUNTIME: "containerd"` to
>
> `CONCOURSE_WORKER_RUNTIME: "houdini"`.

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

```sh
$ fly -t ci login -c http://127.0.0.1:8080 -u test -p test
logging in to team 'main'

target saved
```

You can follow our [Getting Started Tutorial](https://concourse-ci.org/getting-started.html)
to learn how to write Concourse pipelines.

### Configuring a Pipeline

Concourse has no GUI for configuration. Instead, pipelines are defined in
declarative YAML files:

```yaml
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](https://concourse-ci.org/install.html), try saving the above example
as `booklit.yml`, [target your Concourse
instance](https://concourse-ci.org/fly.html#fly-login), and then run:

```sh
fly -t ci set-pipeline -p booklit -c booklit.yml
```

These pipeline files are self-contained, making them easily portable between
Concourse instances.

### Learn More

* The [Official Site](https://concourse-ci.org) for documentation,
reference material, and example pipelines.
* The [Getting Started Tutorial](https://concourse-ci.org/getting-started.html)
to learn the basics of pipelines
* See Concourse in action with our [own pipelines](https://ci.concourse-ci.org/)
* Hang around in the [GitHub discussions](https://github.com/concourse/concourse/discussions) or in
[Discord][discord]
* See what we're working on the [project board](https://github.com/orgs/concourse/projects).

## 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).

[discord]: https://discord.gg/MeRxXKW