Go to file
Aidan Oldershaw c1cb440531 fly: behaviour: accept arbitrary length tokens, take 3
I'm surprised how difficult it's proven to be to just read input from
the terminal without hitting buffer limits. The unit tests on our
Windows worker highlighted some undesirable behaviour with the
peterh/liner library. It didn't seem to successfully detect the number
of columns (at least on Windows), which caused:

a) The password prompt to fail
b) The regular prompt, well, not printing the prompt
c) Not using raw mode, which defeats the whole purpose of this fix!

I'm not sure exactly why the columns were detected to be 0, and why the
library even cares about the number of columns for something as simple
as our use case. peterh/liner does a lot of cool stuff, but we were
using practically none of it - so why not go with a simpler solution
that we control!

In place of peterh/liner, just use a raw mode terminal + our own line
reading logic. Unfortunately, since we're using raw mode, new lines
don't also come with carriage returns, so I needed to manually add them
throughout the print statements.

Signed-off-by: Aidan Oldershaw <aoldershaw@pivotal.io>
2020-06-30 23:12:59 -04:00
.github issue template: reference CONTRIBUTING.md 2020-06-19 13:19:03 -04:00
atc atc/exec: set_pipeline does not fail 2020-06-30 12:14:37 -04:00
cmd Merge branch 'release/6.1.x' 2020-05-12 17:15:20 -04:00
fly fly: behaviour: accept arbitrary length tokens, take 3 2020-06-30 23:12:59 -04:00
go-concourse moving ListAllJobs from team to client.go 2020-06-19 15:22:32 +02:00
hack hack: add opa override and no-op setup 2020-06-19 10:49:30 -04:00
release-notes add release note 2020-06-24 18:22:02 -04:00
screenshots add 2x scaled screenshot for hidpi laptops 2018-09-19 10:36:30 -04:00
skymarshal fly: behavior: add validation for empty auth config 2020-05-20 17:50:47 +02:00
testflight Merge pull request #5822 from concourse/flaky-testflight-custom-resource-type 2020-06-25 16:29:24 -04:00
topgun Merge pull request #5511 from concourse/issue/5473 2020-06-10 15:25:22 -04:00
tracing Merge pull request #5579 from concourse/volume-streaming-tracing 2020-06-04 18:01:53 -05:00
tsa [#5082] Increase tsa/client keepalive timeout 2020-05-05 15:42:52 -05:00
vars vars: use go std err wrapping 2020-03-04 10:18:05 -05:00
web build(deps): bump rack from 2.0.8 to 2.2.3 in /web/acceptance 2020-06-25 04:00:10 +00:00
worker Merge pull request #5646 from concourse/fix-containerd-start-flake 2020-06-16 10:00:16 -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 move important docs to root 2018-11-20 11:17:20 -05:00
CONTRIBUTING.md clarify example job instructions in CONTRIBUTING.md 2020-05-17 18:54:52 -04: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 say "Present" in NOTICE.md 2019-04-09 16:08:20 -04:00
README.md Changing "$target" to "ci" in the readme 2020-05-21 15:42:03 -04:00
docker-compose.yml Revert "docker-compose: break worker/web dependency" 2020-06-23 13:32:19 -04:00
go.mod fly: behaviour: accept arbitrary length tokens, take 3 2020-06-30 23:12:59 -04:00
go.sum fly: behaviour: accept arbitrary length tokens, take 3 2020-06-30 23:12:59 -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 https-proxy-agent from 2.2.2 to 2.2.4 2020-04-16 14:22:39 +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.