concourse

package module
v6.7.3-0...-1f455d7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 7, 2020 License: Apache-2.0 Imports: 2 Imported by: 0

README

Concourse: the continuous thing-doer.

Discord Build Contributors 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 complex.

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), TODO: #5814
Var sources for creds #39 ✔ v5.8.0 (experimental), TODO: #5813
Archiving pipelines #33 ✔ v6.5.0
Instanced pipelines #34 🚧 PR #5896 for backend, issue #5921 for UI
Static across step 🚧 #29 ✔ v6.5.0 (experimental)
Dynamic across step 🚧 #29 🙏 RFC needs feedback!
Projects 🚧 #32 🙏 RFC needs feedback!
load_var step #27 ✔ v6.0.0 (experimental)
get_var step #27 🙏 #5815 Looking for volunteers!
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 ⚠ Needs 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.

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

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.

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Version = "0.0.0-dev"

Version is the version of Concourse. This variable is overridden at build time in the pipeline using ldflags.

View Source
var WorkerVersion = "2.3"

WorkerVersion identifies compatibility between Concourse and a worker.

Backwards-incompatible changes to the worker API should result in a major version bump.

New features that are otherwise backwards-compatible should result in a minor version bump.

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
atc
api
api/accessor/accessorfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
api/auth/authfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
api/containerserver/containerserverfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
api/pipelineserver/pipelineserverfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
api/policychecker/policycheckerfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
auditor/auditorfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
compression/compressionfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
creds/credsfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
db
db/dbfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
db/encryption/encryptionfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
db/lock/lockfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
db/migration/migrationfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
engine/enginefakes
Code generated by counterfeiter.
Code generated by counterfeiter.
exec/build/buildfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
exec/execfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
gc
gc/gcfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
metric/emitter/emitterfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
metric/metricfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
policy/policyfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
resource/resourcefakes
Code generated by counterfeiter.
Code generated by counterfeiter.
runtime/runtimefakes
Code generated by counterfeiter.
Code generated by counterfeiter.
scheduler/schedulerfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
syslog/syslogfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
worker
Package worker will eventually evolve to becoming a concrete implementation of a runtime As such, Concourse core shouldn't depend on abstractions defined in this package or its child packages General Runtime abstractions will be ported over to the Runtime package The Client interface is the main interface that is consumed by Concourse core that will be shifted to the Runtime package
Package worker will eventually evolve to becoming a concrete implementation of a runtime As such, Concourse core shouldn't depend on abstractions defined in this package or its child packages General Runtime abstractions will be ported over to the Runtime package The Client interface is the main interface that is consumed by Concourse core that will be shifted to the Runtime package
worker/gclient/connection/connectionfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
worker/gclient/gclientfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
worker/transport/transportfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
worker/workerfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
wrappa/wrappafakes
Code generated by counterfeiter.
Code generated by counterfeiter.
cmd
fly
pty
rc
rc/rcfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
ui
go-concourse
concourse/concoursefakes
Code generated by counterfeiter.
Code generated by counterfeiter.
concourse/eventstream/eventstreamfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
concourse/internal/internalfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
skymarshal
token/tokenfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
Package tracing provides the means for creating traces and configuring trace exporters.
Package tracing provides the means for creating traces and configuring trace exporters.
tracingfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
tsa
tsafakes
Code generated by counterfeiter.
Code generated by counterfeiter.
varsfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
web
cmd
runtime
Package backend provides the implementation of a Garden server backed by containerd.
Package backend provides the implementation of a Garden server backed by containerd.
runtime/iptables/iptablesfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
runtime/libcontainerd/libcontainerdfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
runtime/runtimefakes
Code generated by counterfeiter.
Code generated by counterfeiter.
workerfakes
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL