Go to file
Aidan Oldershaw 41c606daa6 vars: behaviour: properly handle local scope
I realized that local scope wasn't being handled properly before. We
created a clone of the local vars when we called `NewLocalScope`, but
local vars are typically populated at runtime - not in the
`engine/builder`. So, the clone was always empty. Instead, form a linked
list of `BuildVariables` that point to its parent scope.

This commit also renames `CredVarsTracker` to `BuildVariables`, and
exposes the struct directly rather than an interface. This commit is
incomplete in the sense that it doesn't perform that renaming
everywhere, but the diff got pretty huge and I wanted to separate out
just the behaviour aspect of this change.

Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>
2020-08-16 11:22:16 -04:00
.github add in pr feedback 2020-07-31 14:18:50 -04:00
atc atc: behaviour: config validation considers var scopes 2020-08-16 09:53:45 -04:00
cmd increase timeout for system claim startup error 2020-07-06 14:35:19 -04:00
fly Merge pull request #5957 from concourse/fly-ignore-parse-errors 2020-08-11 08:42:33 -05:00
go-concourse go-concourse: structure: use httpAgent for UserInfo 2020-08-05 17:43:39 -04:00
hack overrides: update containerd to use CONCOURE_RUNTIME 2020-08-07 11:21:32 -04:00
release-notes Merge branch 'master' into use-concourse-gclient 2020-07-31 12:23:06 -04:00
screenshots add 2x scaled screenshot for hidpi laptops 2018-09-19 10:36:30 -04:00
skymarshal atc: behaviour: track users on login 2020-07-30 12:11:20 -04:00
testflight testflight: prevent pipeline from getting GC'd 2020-08-04 21:06:48 -04:00
topgun k8s topgun: behaviour: skip containerd dns tests 2020-08-11 11:02:16 -05:00
tracing Merge pull request #5579 from concourse/volume-streaming-tracing 2020-06-04 18:01:53 -05:00
tsa Merge pull request #5845 from concourse/use-concourse-gclient 2020-08-04 16:28:57 -04:00
vars vars: behaviour: properly handle local scope 2020-08-16 11:22:16 -04:00
web web: behaviour: auto expand simple across substeps 2020-08-14 14:54:40 -04:00
worker Merge pull request #5911 from concourse/organize-flags 2020-08-07 15:31:52 -04:00
.dockerignore flesh out CONTRIBUTING.md 2018-09-25 14:18:48 -04:00
.env run watsjs/testflight against prebuilt Concourse 2018-10-01 17:10:35 -04:00
.gitignore worker: rename backend to runtime 2020-05-13 11:44:04 -04:00
CODE_OF_CONDUCT.md update notice and concourse email 2020-07-09 12:24:23 -04:00
CONTRIBUTING.md contributing: structure: remove newline 2020-07-13 19:08:54 -05:00
Dockerfile Dockerfile: set key env vars after generating keys 2020-04-22 11:52:35 -04:00
LICENSE.md re-init 2018-09-18 15:26:17 -04:00
NOTICE.md update notice and concourse email 2020-07-09 12:24:23 -04:00
README.md Changing "$target" to "ci" in the readme 2020-05-21 15:42:03 -04:00
SECURITY.md add SECURITY.md 2020-07-18 22:04:37 -04:00
docker-compose.yml atc: behaviour: feature flag across step 2020-08-16 09:53:45 -04:00
go.mod Merge pull request #5955 from concourse/fix-fly-tokens 2020-08-10 10:38:19 -04:00
go.sum bump baggageclaim to v1.8.0 2020-08-07 10:23:04 -04:00
package.json web: behaviour: bump @mdi/svg 4.5.95 -> 5.0.45 2020-04-02 19:59:42 +01:00
tools.go Add tools.go to keep track of tool versions 2019-04-08 15:57:27 -04:00
versions.go concourse/#3819 using zstd to streamIn/Out between workers 2019-06-24 23:08:10 -04:00
webpack.config.js web: babel-ify javascript bundle 2020-02-28 09:56:22 -05:00
yarn.lock build(deps): bump elliptic from 6.5.2 to 6.5.3 2020-08-01 15:19:55 +00:00

README.md

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.

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.