Git Product home page Git Product logo

concourse / concourse Goto Github PK

View Code? Open in Web Editor NEW
7.2K 7.2K 846.0 175.67 MB

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

Home Page: https://concourse-ci.org

License: Apache License 2.0

Makefile 0.01% Shell 0.08% HTML 0.09% Go 74.58% Dockerfile 0.03% PLpgSQL 0.10% CSS 0.04% Elm 23.91% JavaScript 0.80% HCL 0.01% C 0.01% Open Policy Agent 0.01% Less 0.36%
ci ci-cd concourse continuous-delivery continuous-integration elm go hacktoberfest pipelines

concourse's Introduction

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

⚠️ If you are using an M1 mac: M1 macs are incompatible with the containerd runtime. After downloading the docker-compose file, change CONCOURSE_WORKER_RUNTIME: "containerd" to CONCOURSE_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

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.

concourse's People

Contributors

andrewedstrom avatar chenbh avatar clarafu avatar dependabot[bot] avatar estebanfs avatar evanchaoli avatar evashort avatar jmcarp avatar jmelchio avatar joshzarrabi avatar jtarchie avatar kcmannem avatar mariash avatar mhuangpivotal avatar mouellet avatar muntac avatar pivotal-ahirji avatar renovate[bot] avatar robdimsdale avatar shyx0rmz avatar tanglisha avatar taylorsilva avatar tobocop avatar vito avatar xenophex avatar xoebus avatar xtreme-sameer-vohra avatar xtremerui avatar youssb avatar zachgersh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

concourse's Issues

Retry hook

With the recent introduction of the try hook, it would be nice to be able to perform the attempt more than once - a retry hook with a property like attempts or times etc

Vagrant Provision Fails

I was trying to follow the README instructions to provision with Vagrant, and I got the following failure:

$ vagrant provision
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: stdin: is not a tty
==> default: Reading package lists...
==> default: Building dependency tree...
==> default: 
==> default: Reading state information...
==> default: linux-image-extra-3.13.0-46-generic is already the newest version.
==> default: 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
==> default: Running provisioner: bosh...
==> default: [2.18s] Uploading /opt/bosh-provisioner/assets... 4.28s
==> default: [6.48s] Creating new dev release for concourse... 2.20s
==> default: Rsyncing folder: /home/daniel/workspace/concourse/.dev_builds/ => /opt/bosh-provisioner/synced-releases/concourse/.dev_builds
==> default: Rsyncing folder: /home/daniel/workspace/concourse/.final_builds/ => /opt/bosh-provisioner/synced-releases/concourse/.final_builds
==> default: Rsyncing folder: /home/daniel/workspace/concourse/dev_releases/ => /opt/bosh-provisioner/synced-releases/concourse/dev_releases
==> default: [14.83s] Uploading /opt/bosh-provisioner/manifest.yml... 0.41s
==> default: [15.24s] Uploading /opt/bosh-provisioner/config.json... 0.36s
==> default: [15.82s] Started setting up instance > Reading deployment manifest
==> default: [15.82s] Finished setting up instance > Reading deployment manifest
==> default: [15.83s] Started setting up instance > Validating instance
==> default: [15.83s] Finished setting up instance > Validating instance
==> default: [15.83s] Started setting up vcap user > Adding vcap user
==> default: [15.86s] Finished setting up vcap user > Adding vcap user
==> default: [15.86s] Started setting up vcap user > Configuring locales
==> default: [16.53s] Finished setting up vcap user > Configuring locales
==> default: [16.53s] Started setting up vcap user > Harden permissions
==> default: [16.56s] Finished setting up vcap user > Harden permissions
==> default: [16.59s] Started installing dependencies > Package build-essential
==> default: [16.59s] Finished installing dependencies > Package build-essential
==> default: [16.59s] Started installing dependencies > Package cmake
==> default: [16.59s] Finished installing dependencies > Package cmake
==> default: [16.59s] Started installing dependencies > Package libcap2-bin
==> default: [16.59s] Finished installing dependencies > Package libcap2-bin
==> default: [16.59s] Started installing dependencies > Package libcap-dev
==> default: [16.59s] Finished installing dependencies > Package libcap-dev
==> default: [16.59s] Started installing dependencies > Package libbz2-1.0
==> default: [16.59s] Finished installing dependencies > Package libbz2-1.0
==> default: [16.59s] Started installing dependencies > Package libbz2-dev
==> default: [16.59s] Finished installing dependencies > Package libbz2-dev
==> default: [16.59s] Started installing dependencies > Package libxslt1-dev
==> default: [16.59s] Finished installing dependencies > Package libxslt1-dev
==> default: [16.59s] Started installing dependencies > Package libxml2-dev
==> default: [16.59s] Finished installing dependencies > Package libxml2-dev
==> default: [16.60s] Started installing dependencies > Package iputils-arping
==> default: [16.60s] Finished installing dependencies > Package iputils-arping
==> default: [16.60s] Started installing dependencies > Package quota
==> default: [16.60s] Finished installing dependencies > Package quota
==> default: [16.60s] Started installing dependencies > Package libssl-dev
==> default: [16.60s] Finished installing dependencies > Package libssl-dev
==> default: [16.60s] Started installing dependencies > Package bison
==> default: [16.60s] Finished installing dependencies > Package bison
==> default: [16.60s] Started installing dependencies > Package flex
==> default: [16.60s] Finished installing dependencies > Package flex
==> default: [16.60s] Started installing dependencies > Package gettext
==> default: [16.60s] Finished installing dependencies > Package gettext
==> default: [16.60s] Started installing dependencies > Package libreadline6-dev
==> default: [16.60s] Finished installing dependencies > Package libreadline6-dev
==> default: [16.60s] Started installing dependencies > Package libncurses5-dev
==> default: [16.61s] Finished installing dependencies > Package libncurses5-dev
==> default: [16.61s] Started installing dependencies > Package ruby1.9.3
==> default: [16.61s] Finished installing dependencies > Package ruby1.9.3
==> default: [17.63s] Started updating bosh agent > Placing binaries
==> default: [17.68s] Finished updating bosh agent > Placing binaries
==> default: [17.68s] Started updating bosh agent > Placing configuration files
==> default: [17.70s] Finished updating bosh agent > Placing configuration files
==> default: [17.70s] Started updating bosh agent > Registering monit service
==> default: [18.19s] Finished updating bosh agent > Registering monit service
==> default: [18.19s] Started updating bosh agent > Registering agent service
==> default: [18.66s] Finished updating bosh agent > Registering agent service
==> default: [18.67s] Started configuring bosh agent > Configuring infrastructure settings
==> default: [21.70s] Finished configuring bosh agent > Configuring infrastructure settings
==> default: [21.70s] Started tearing down instance concourse/0 > Draining
==> default: [22.71s] Finished tearing down instance concourse/0 > Draining
==> default: [22.71s] Started tearing down instance concourse/0 > Stopping
==> default: [23.72s] Finished tearing down instance concourse/0 > Stopping
==> default: [26.75s] Started updating bosh agent > Placing binaries
==> default: [26.81s] Finished updating bosh agent > Placing binaries
==> default: [26.81s] Started updating bosh agent > Placing configuration files
==> default: [26.85s] Finished updating bosh agent > Placing configuration files
==> default: [26.85s] Started updating bosh agent > Registering monit service
==> default: [27.31s] Finished updating bosh agent > Registering monit service
==> default: [27.31s] Started updating bosh agent > Registering agent service
==> default: [27.77s] Finished updating bosh agent > Registering agent service
==> default: [27.77s] Started configuring bosh agent > Configuring infrastructure settings
==> default: [28.80s] Finished configuring bosh agent > Configuring infrastructure settings
==> default: [28.80s] Started compiling release concourse/0.34.0+dev.2 > Package tracker_resource/9b8709aebbb278c78785f60a832a2269d3d6545c
==> default: [28.80s] Failed compiling release concourse/0.34.0+dev.2 > Package tracker_resource/9b8709aebbb278c78785f60a832a2269d3d6545c
==> default: [28.80s] 
==> default: [28.81s] -----
==> default: [28.81s] Error: Provisioning deployment: Compiling releases: Release concourse: Compiling release packages: Creating package source blob tracker_resource: Opening file for sha1 calculation: open : no such file or directory
==> default: [28.81s] ------
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

/opt/bosh-provisioner/assets/bosh-provisioner -configPath=/opt/bosh-provisioner/config.json 2>/tmp/provisioner.log

Stdout from the command:

Started setting up instance > Reading deployment manifest
Finished setting up instance > Reading deployment manifest
Started setting up instance > Validating instance
Finished setting up instance > Validating instance
Started setting up vcap user > Adding vcap user
Finished setting up vcap user > Adding vcap user
Started setting up vcap user > Configuring locales
Finished setting up vcap user > Configuring locales
Started setting up vcap user > Harden permissions
Finished setting up vcap user > Harden permissions
Started installing dependencies > Package build-essential
Finished installing dependencies > Package build-essential
Started installing dependencies > Package cmake
Finished installing dependencies > Package cmake
Started installing dependencies > Package libcap2-bin
Finished installing dependencies > Package libcap2-bin
Started installing dependencies > Package libcap-dev
Finished installing dependencies > Package libcap-dev
Started installing dependencies > Package libbz2-1.0
Finished installing dependencies > Package libbz2-1.0
Started installing dependencies > Package libbz2-dev
Finished installing dependencies > Package libbz2-dev
Started installing dependencies > Package libxslt1-dev
Finished installing dependencies > Package libxslt1-dev
Started installing dependencies > Package libxml2-dev
Finished installing dependencies > Package libxml2-dev
Started installing dependencies > Package iputils-arping
Finished installing dependencies > Package iputils-arping
Started installing dependencies > Package quota
Finished installing dependencies > Package quota
Started installing dependencies > Package libssl-dev
Finished installing dependencies > Package libssl-dev
Started installing dependencies > Package bison
Finished installing dependencies > Package bison
Started installing dependencies > Package flex
Finished installing dependencies > Package flex
Started installing dependencies > Package gettext
Finished installing dependencies > Package gettext
Started installing dependencies > Package libreadline6-dev
Finished installing dependencies > Package libreadline6-dev
Started installing dependencies > Package libncurses5-dev
Finished installing dependencies > Package libncurses5-dev
Started installing dependencies > Package ruby1.9.3
Finished installing dependencies > Package ruby1.9.3
Started updating bosh agent > Placing binaries
Finished updating bosh agent > Placing binaries
Started updating bosh agent > Placing configuration files
Finished updating bosh agent > Placing configuration files
Started updating bosh agent > Registering monit service
Finished updating bosh agent > Registering monit service
Started updating bosh agent > Registering agent service
Finished updating bosh agent > Registering agent service
Started configuring bosh agent > Configuring infrastructure settings
Finished configuring bosh agent > Configuring infrastructure settings
Started tearing down instance concourse/0 > Draining
Finished tearing down instance concourse/0 > Draining
Started tearing down instance concourse/0 > Stopping
Finished tearing down instance concourse/0 > Stopping
Started updating bosh agent > Placing binaries
Finished updating bosh agent > Placing binaries
Started updating bosh agent > Placing configuration files
Finished updating bosh agent > Placing configuration files
Started updating bosh agent > Registering monit service
Finished updating bosh agent > Registering monit service
Started updating bosh agent > Registering agent service
Finished updating bosh agent > Registering agent service
Started configuring bosh agent > Configuring infrastructure settings
Finished configuring bosh agent > Configuring infrastructure settings
Started compiling release concourse/0.34.0+dev.2 > Package tracker_resource/9b8709aebbb278c78785f60a832a2269d3d6545c
Failed compiling release concourse/0.34.0+dev.2 > Package tracker_resource/9b8709aebbb278c78785f60a832a2269d3d6545c

-----
Error: Provisioning deployment: Compiling releases: Release concourse: Compiling release packages: Creating package source blob tracker_resource: Opening file for sha1 calculation: open : no such file or directory
------


Stderr from the command:

stdin: is not a tty

I don't think I did anything weird. I'm trying to assess Concourse for a client as a potential replacement for Bamboo.

Improve error message output

When loading pipeline with loading multiple parameters file through --vf options, if one of the loaded file is ill-formed (e.g. contain tabs instead of spaces), error message is spit out saying that file is bad, but it doesnt say which file. Needlessly to say, it would be useful to print out the filename which caused the problem.

support for bool and int parameters

This is from using --vars-from

Use case:
With cred.yml file

cf-api: https://api.10.244.0.34.xip.io
cf-username: admin
cf-password: admin
cf-organization: admin
cf-space: admin
skip-ssl-check: true

skip-ssl-check would actually be "true" and break cf resource

use-case: handling *lots* of git repos effectively (probably by caching)

I'd like to use Concourse to CI something like a full-stack OS integration - bootloader, kernel, middleware, apps. Based on practical experience some sizing of the typical load for this:

  • 100-1000 individual software components.
  • The components start life on one or more remote (possibly public) git servers - around 50-200GB of git data. Some of the repos change every day, some rarely.
  • Depending on number of cores, processor performance of build worker, building the full stack can take anywhere from 1-48 hours.

Ideally Concourse would allow a persistent local cached resource to serve the git data for a given build worker. Seems it needs to be local to the worker, because cloning 50-200GB from remote per worker per run will be a) slow and b) expensive on public infrastructure. Need to be able to check for updates to update the local mirror(s) too.

Also, would like to re-use artifacts (a cache of built components) from previous runs if nothing has changed, and drop old artifacts to avoid using an infinite amount of storage.

Generating a warden manifest fails

concourse git:(master) ./generate_deployment_manifest warden
2014/08/13 15:48:50 error generating manifest: unresolved nodes:
    (( merge )) in ./templates/jobs.yml jobs.[2].properties.atc.config
    (( merge )) in ./templates/jobs.yml jobs.[2].properties.atc.basic_auth_username
    (( merge )) in ./templates/jobs.yml jobs.[2].properties.atc.basic_auth_encrypted_password

Concourse Bosh release requires online apt repo access

Trying concourse in our private cloud (no internet connectivity).
Failure compiling btrfs. The concourse bosh release is not self-content ?

Started compiling packages > btrfs-progs/08e05d2d1544879180056b45b712b571266c0c9e. Failed: Action Failed get_task: Task eb16cce8-c8d0-4b11-485b-e8e00454119f result: Compiling package btrfs-progs: Running packaging script: Command exited with 100; Stdout:
Err http://archive.ubuntu.com trusty-updates InRelease

Err http://archive.ubuntu.com trusty Release.gpg
Could not resolve 'archive.ubuntu.com'
Err http://archive.ubuntu.com trusty-updates Release.gpg
Could not resolve 'archive.ubuntu.com'
Err http://security.ubuntu.com trusty-security InRelease

[req] Private Registry Support

The concepts in Concourse are really nice. Implementing resources as Docker containers is genius. Very promising project. I feel like its feature set is dearly missing from other CI tools. 😄 Unfortunately I ran into some showstoppers immediately.

We are running a private Docker registry. It uses a self-signed certificate. I couldn't get tasks with custom docker images to work. There was a timeout in garden-linux' logs.

I am currently using the Vagrant box. I modified /var/vcap/jobs/garden/bin/garden_ctl to include -insecureDockerRegistryList or -registry but that didn't make a difference. Are there any workarounds to inject our custom root CA certificate into it? And if so, I am probably going to have to add our corporate proxy next.

Concourse script output doesn't handle carriage returns

For instance, when downloading blobs bosh will use carriage returns to reprint the % downloaded. The output ends up looking craaaaazy:

[snip]
)downloading 280.6M (62%)downloading 280.6M (66%)downloading 280.6M (68%)downloading 280.6M (71%)downloading 280.6M (74%)downloading 280.6M (77%)downloading 280.6M (80%)downloading 280.6M (83%)downloading 280.6M (85%)downloading 280.6M (88%)downloading 280.6M (92%)downloading 280.6M (95%)downloading 280.6M (96%)downloading 280.6M (100%)downloading 280.6M (100%)downloading 280.6M (100%)downloadedstaticfile-buildpack/staticfile_buildpack... 
downloading 2.4Mdownloading 2.4M (0%)downloading 2.4M (64%)downloading 2.4M (100%)downloadednodejs-buildpack/nodejs_buildpack-cached-... 
downloading 38.9Mdownloading 38.9M (0%)downloading 38.9M (2%)downloading 38.9M (15%)downloading 38.9M (38%)downloading 38.9M (52%)downloading 38.9M (75%)downloading 38.9M (93%)downloading 38.9M (100%)downloadedpython-buildpack/python_buildpack-cached-... 
downloading 175.8Mdownloading 175.8M (0%)downloading 175.8M (0%)downloading 175.8M (0%)downloading 175.8M (5%)downloading 175.8M (8%)downloading 175.8M (12%)downloading 175.8M (15%)downloading 175.8M (19%)downloading 175.8M (23%)downloading 175.8M (27%)downloading 175.8M (27%)downloading 175.8M (27%)downloading 175.8M (33%)downloading 175.8M (37%)downloading 175.8M (41%)downloading 175.8M (45%)downloading 175.8M (49%)downloading 175.8M (53%)downloading 175.8M (57%)downloading 175.8M (61%)downloading 175.8M (66%)downloading 175.8M (70%)downloading 175.8M (76%)downloading 175.8M (80%)downloading 175.8M (85%)downloading 175.8M (91%)downloading 175.8M (96%)downloading 175.8M (100%)downloading 175.8M (100%)downloadedphp-buildpack/php_buildpack-cached-v4.0.0... 
downloading 449.4Mdownloading 449.4M (0%)downloading 449.4M (0%)downloading 449.4M (0%)downloading 449.4M (2%)downloading 449.4M (5%)downloading 449.4M (7%)downloading 449.4M (9%)downloading 449.4M (10%)downloading 449.4M (13%)downloading 449.4M (15%)downloading 449.4M (17%)downloading 449.4M (19%)downloading 449.4M (22%)downloading 449.4M (23%)downloading 449.4M (24%)downloading 449.4M (26%)downloading 449.4M (27%)downloading 449.4M (28%)downloading 449.4M (29%)downloading 449.4M (31%)downloading 449.4M (33%)downloading 449.4M (34%)downloading 449.4M (35%)downloading 449.4M (37%)downloading 449.4M (38%)downloading 449.4M (40%)downloading 449.4M (41%)downloading 449.4M (43%)downloading 449.4M (45%)downloading 449.4M (46%)downloading 449.4M (48%)downloading 449.4M (49%)downloading 449.4M (51%)downloading 449.4M (53%)downloading 449.4M (54%)downloading 449.4M (55%)downloading 449.4M (56%)downloading 449.4M (56%)downloading 449.4M (57%)downloading 449.4M (57%)downloading 449.4M (60%)downloading 449.4M (62%)downloading 449.4M (64%)downloading 449.4M (66%)downloading 449.4M (68%)downloading 449.4M (70%)downloading 449.4M (73%)downloading 449.4M (74%)downloading 449.4M (76%)downloading 449.4M (78%)downloading 449.4M (80%)downloading 449.4M (81%)downloading 449.4M (82%)downloading 449.4M (84%)downloading 449.4M (85%)downloading 449.4M (87%)downloading 449.4M (88%)downloading 449.4M (89%)downloading 449.4M (90%)downloading 449.4M (91%)downloading 449.4M (92%)downloading 449.4M (93%)downloading 449.4M (95%)downloading 449.4M (96%)downloading 449.4M (97%)downloading 449.4M (98%)downloading 449.4M (99%)downloading 449.4M (100%)downloading 449.4M (100%)downloading 449.4M (100%)downloading 449.4M (100%)downloadedTotal: 42, 2.4G
No blobs to upload

I'm not sure if there's an easy way to handle this when rendering the relevant HTML.

Worker randomly forgets about resources

I have custom resource configured (slack notification), which seems to be configured properly. It was also working fine. For past few builds, it actually stopped to work (no workers satisfying: resource type 'slack-notify') without me touching anything (I'm the only one with access to that installation). I re-checked configuration and restarted beacon, no success.

Interestlingly, it sometimes work half-way: 'put' works fine (and slack message is sent), but 'get' which automatically follows that says:

no workers satisfying: resource type 'slack-notify'

available workers: 
  - platform 'linux'

image

ginkgo -r failed

After a clean clone, I get a test failure to fetch a dependency:

$ git clone [email protected]:concourse/concourse.git
$ cd concourse
$ direnv allow
$ git submodule update --init --recursive
$ ginkgo -r
=== RUN TestBcryptingIsEasy
--- PASS: TestBcryptingIsEasy (0.93s)
...
Failed to compile pat:

can't load package: package github.com/bmizerany/assert: cannot find package "github.com/bmizerany/assert" in any of:
    /usr/local/go/src/github.com/bmizerany/assert (from $GOROOT)
    /Users/drnic/Projects/go/src/github.com/concourse/concourse/src/github.com/bmizerany/assert (from $GOPATH)

Email resource

An email resource would be useful, especially when combined with on_success and on_failure hooks to e.g. email notification with state of job

git and gist resources have perl warnings

using the @drnic examples, the git resource now outputs some perl warnings about the locale. happens with the gist as well.

Cloning into '/tmp/build/src'...
e8c6632 Added trigger: true to autostart both jobs after update.
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

Vagrant box does not work behind a proxy

As title, the Vagrant box is made to test it locally, but in many occasion there is a proxy in local networks.. I tried to set the proxy variables in the vagrant configuration but without success.

Also tried with a local bosh-lite deployment (behind a proxy too) but with no luck too.

In any case I get stuck when I try https://github.com/starkandwayne/concourse-tutorial/blob/master/01_task_hello_world/task_hello_world.yml
with

 initializing with docker:///busybox
repository_fetcher: GetRepositoryData: could not fetch image busybox from registry https://index.docker.io/v1/: Get https://index.docker.io/v1/repositories/busybox/images: dial tcp: lookup index.docker.io: no such host
errored

Handling failures is extremely inconvenient for complex jobs

Lets assume that there is a job which runs one task:

- task: task1
  file: foo/task1.yml

and we have some resource sending out notifications about success or failure (e.g. via email or slack). It goes like this (assuming that resources are configured):

- task: task1
  file: foo/task1.yml
- aggregate:
  - conditions: [success]
    put: email
    params:
      text: Success!
  - conditions: [failure]
    put: email
    params:
       text: Failure!

That already is increase from 2 lines to 11. Now, lets suppose that we have 2 tasks running inside job:

- task: task1
  file: foo/task1.yml
- aggregate:
  - conditions: [success]
    name: task1-succeeded
    do:
    - task: task2
      file: foo/task2.yml
    - aggregate:
      - conditions: [success]
        put: email
        params:
          text: Success!
      - conditions: [failure]
        put: email
        params:
           text: Failure!
  - conditions: [failure]
    put: email
    params:
       text: Failure!

Which is 21 lines. Adding 3rd and 4th tasks would be overkill.

I'm looking for try / catch / finally kind of approach, where one could add just one error handler at the end or something like this.

use c4.large instance types for compilation

They're newer and shinier.

The c4 instance types don't have any ephemeral disk so we will have to create a bosh disk pool for the compilation VMs.

I can submit a PR if wanted.

EDIT: I should clarify, in case it's not clear, this is about the compilation pool for compiling bosh release of concourse.

Stateful Hooks

Other CI systems have features like "perform some action (e.g. email/slack) on every failure and once when the build is fixed, but not every time the build passes."

Is something similar planned for concouse

vagrant up error because of too many redirects

this looks to be the culprit

Error: Provisioning deployment: Compiling releases: Release garden-linux: Reading release: Downloading release: Get url: Get https://s3.amazonaws.com/garden-linux-release/releases/garden-linux-0.34.0.tgz: dial tcp: lookup s3.amazonaws.com on [10.0.2.3]:53: too many redirects

full output below

$ vagrant reload --provision
==> default: Attempting graceful shutdown of VM...
==> default: Checking if box 'ubuntu/trusty64' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 8080 => 8080 (adapter 1)
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Remote connection disconnect. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => /Users/jamesbayer/workspace/concourse
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: stdin: is not a tty
==> default: Reading package lists...
==> default: Building dependency tree...
==> default: Reading state information...
==> default: linux-image-extra-3.13.0-35-generic is already the newest version.
==> default: 0 upgraded, 0 newly installed, 0 to remove and 113 not upgraded.
==> default: Running provisioner: bosh...
==> default: [10.25s] Uploading /opt/bosh-provisioner/assets... 2.96s
==> default: [13.22s] Creating new dev release for concourse... 9.83s
==> default: Rsyncing folder: /Users/jamesbayer/workspace/concourse/.dev_builds/ => /opt/bosh-provisioner/synced-releases/concourse/.dev_builds
==> default: Rsyncing folder: /Users/jamesbayer/workspace/concourse/.final_builds/ => /opt/bosh-provisioner/synced-releases/concourse/.final_builds
==> default: Rsyncing folder: /Users/jamesbayer/workspace/concourse/dev_releases/ => /opt/bosh-provisioner/synced-releases/concourse/dev_releases
==> default: [24.62s] Uploading /opt/bosh-provisioner/manifest.yml... 0.05s
==> default: [24.67s] Uploading /opt/bosh-provisioner/config.json... 0.08s
==> default: [24.78s] Started setting up instance > Reading deployment manifest
==> default: [24.78s] Finished setting up instance > Reading deployment manifest
==> default: [24.78s] Started setting up instance > Validating instance
==> default: [24.78s] Finished setting up instance > Validating instance
==> default: [24.79s] Started setting up vcap user > Adding vcap user
==> default: [24.82s] Finished setting up vcap user > Adding vcap user
==> default: [24.83s] Started setting up vcap user > Configuring locales
==> default: [25.20s] Finished setting up vcap user > Configuring locales
==> default: [25.20s] Started setting up vcap user > Harden permissions
==> default: [25.22s] Finished setting up vcap user > Harden permissions
==> default: [25.24s] Started installing dependencies > Package build-essential
==> default: [25.24s] Finished installing dependencies > Package build-essential
==> default: [25.24s] Started installing dependencies > Package cmake
==> default: [25.24s] Finished installing dependencies > Package cmake
==> default: [25.24s] Started installing dependencies > Package libcap2-bin
==> default: [25.24s] Finished installing dependencies > Package libcap2-bin
==> default: [25.24s] Started installing dependencies > Package libcap-dev
==> default: [25.24s] Finished installing dependencies > Package libcap-dev
==> default: [25.24s] Started installing dependencies > Package libbz2-1.0
==> default: [25.24s] Finished installing dependencies > Package libbz2-1.0
==> default: [25.24s] Started installing dependencies > Package libbz2-dev
==> default: [25.24s] Finished installing dependencies > Package libbz2-dev
==> default: [25.24s] Started installing dependencies > Package libxslt1-dev
==> default: [25.24s] Finished installing dependencies > Package libxslt1-dev
==> default: [25.24s] Started installing dependencies > Package libxml2-dev
==> default: [25.24s] Finished installing dependencies > Package libxml2-dev
==> default: [25.24s] Started installing dependencies > Package iputils-arping
==> default: [25.24s] Finished installing dependencies > Package iputils-arping
==> default: [25.24s] Started installing dependencies > Package quota
==> default: [25.24s] Finished installing dependencies > Package quota
==> default: [25.25s] Started installing dependencies > Package libssl-dev
==> default: [25.25s] Finished installing dependencies > Package libssl-dev
==> default: [25.25s] Started installing dependencies > Package bison
==> default: [25.25s] Finished installing dependencies > Package bison
==> default: [25.25s] Started installing dependencies > Package flex
==> default: [25.25s] Finished installing dependencies > Package flex
==> default: [25.25s] Started installing dependencies > Package gettext
==> default: [25.25s] Finished installing dependencies > Package gettext
==> default: [25.25s] Started installing dependencies > Package libreadline6-dev
==> default: [25.25s] Finished installing dependencies > Package libreadline6-dev
==> default: [25.25s] Started installing dependencies > Package libncurses5-dev
==> default: [25.25s] Finished installing dependencies > Package libncurses5-dev
==> default: [25.25s] Started installing dependencies > Package ruby1.9.3
==> default: [25.25s] Finished installing dependencies > Package ruby1.9.3
==> default: [29.26s] Started updating bosh agent > Placing binaries
==> default: [29.28s] Finished updating bosh agent > Placing binaries
==> default: [29.29s] Started updating bosh agent > Placing configuration files
==> default: [29.29s] Finished updating bosh agent > Placing configuration files
==> default: [29.29s] Started updating bosh agent > Registering monit service
==> default: [29.54s] Finished updating bosh agent > Registering monit service
==> default: [29.54s] Started updating bosh agent > Registering agent service
==> default: [29.78s] Finished updating bosh agent > Registering agent service
==> default: [29.78s] Started configuring bosh agent > Configuring infrastructure settings
==> default: [31.80s] Finished configuring bosh agent > Configuring infrastructure settings
==> default: [31.80s] Started tearing down instance concourse/0 > Draining
==> default: [32.81s] Finished tearing down instance concourse/0 > Draining
==> default: [32.81s] Started tearing down instance concourse/0 > Stopping
==> default: [33.81s] Finished tearing down instance concourse/0 > Stopping
==> default: [36.84s] Started updating bosh agent > Placing binaries
==> default: [36.87s] Finished updating bosh agent > Placing binaries
==> default: [36.87s] Started updating bosh agent > Placing configuration files
==> default: [36.87s] Finished updating bosh agent > Placing configuration files
==> default: [36.87s] Started updating bosh agent > Registering monit service
==> default: [37.14s] Finished updating bosh agent > Registering monit service
==> default: [37.14s] Started updating bosh agent > Registering agent service
==> default: [37.38s] Finished updating bosh agent > Registering agent service
==> default: [37.38s] Started configuring bosh agent > Configuring infrastructure settings
==> default: [38.40s] Finished configuring bosh agent > Configuring infrastructure settings
==> default: [38.40s] Started compiling release concourse/0.33.0+dev.2 > Package archive_resource/8bb3d5f22c35c0bdf3b27087423f75b43f21205c
==> default: [38.40s] Finished compiling release concourse/0.33.0+dev.2 > Package archive_resource/8bb3d5f22c35c0bdf3b27087423f75b43f21205c
==> default: [38.40s] Started compiling release concourse/0.33.0+dev.2 > Package cf_resource/6c51a23289a8015d3de2360afab56e8ada31fc68
==> default: [38.40s] Finished compiling release concourse/0.33.0+dev.2 > Package cf_resource/6c51a23289a8015d3de2360afab56e8ada31fc68
==> default: [38.40s] Started compiling release concourse/0.33.0+dev.2 > Package consul_0.4/3027815996223b560b97d45030636ef744b21bdc
==> default: [38.40s] Finished compiling release concourse/0.33.0+dev.2 > Package consul_0.4/3027815996223b560b97d45030636ef744b21bdc
==> default: [38.40s] Started compiling release concourse/0.33.0+dev.2 > Package docker_image_resource/3582106b76b9910a57e8885764cefe7048963c67
==> default: [38.40s] Finished compiling release concourse/0.33.0+dev.2 > Package docker_image_resource/3582106b76b9910a57e8885764cefe7048963c67
==> default: [38.40s] Started compiling release concourse/0.33.0+dev.2 > Package git_resource/7b6348b1a28a20e27acf9b0f17f009b0015094fe
==> default: [38.40s] Finished compiling release concourse/0.33.0+dev.2 > Package git_resource/7b6348b1a28a20e27acf9b0f17f009b0015094fe
==> default: [38.41s] Started compiling release concourse/0.33.0+dev.2 > Package github_release_resource/1c1557894276a4d6d0504a06e31f9490ae244a3d
==> default: [38.41s] Finished compiling release concourse/0.33.0+dev.2 > Package github_release_resource/1c1557894276a4d6d0504a06e31f9490ae244a3d
==> default: [38.41s] Started compiling release concourse/0.33.0+dev.2 > Package golang_1.3/fc3bc1b4431e8913d91362c1183c9852809d35f6
==> default: [38.41s] Finished compiling release concourse/0.33.0+dev.2 > Package golang_1.3/fc3bc1b4431e8913d91362c1183c9852809d35f6
==> default: [38.41s] Started compiling release concourse/0.33.0+dev.2 > Package pid_utils/5f649be178971572c34a2e64a453bf5b2eb798d1
==> default: [38.41s] Finished compiling release concourse/0.33.0+dev.2 > Package pid_utils/5f649be178971572c34a2e64a453bf5b2eb798d1
==> default: [38.41s] Started compiling release concourse/0.33.0+dev.2 > Package postgresql_9.3/f30f3a88010d8a158a23a3927be0b339f36caec0
==> default: [38.41s] Finished compiling release concourse/0.33.0+dev.2 > Package postgresql_9.3/f30f3a88010d8a158a23a3927be0b339f36caec0
==> default: [38.41s] Started compiling release concourse/0.33.0+dev.2 > Package s3_resource/f7a48068e74761c76adb15924118051486c5bbd4
==> default: [38.41s] Finished compiling release concourse/0.33.0+dev.2 > Package s3_resource/f7a48068e74761c76adb15924118051486c5bbd4
==> default: [38.41s] Started compiling release concourse/0.33.0+dev.2 > Package semver_resource/08e425a99a6b071d24553eebd89c65dc28a931a7
==> default: [38.41s] Finished compiling release concourse/0.33.0+dev.2 > Package semver_resource/08e425a99a6b071d24553eebd89c65dc28a931a7
==> default: [38.41s] Started compiling release concourse/0.33.0+dev.2 > Package time_resource/f84812d778f124b19236093449c21e1fd32e824f
==> default: [38.41s] Finished compiling release concourse/0.33.0+dev.2 > Package time_resource/f84812d778f124b19236093449c21e1fd32e824f
==> default: [38.41s] Started compiling release concourse/0.33.0+dev.2 > Package tracker_resource/9364331acde03c187758e962d3c16488e687079e
==> default: [38.41s] Finished compiling release concourse/0.33.0+dev.2 > Package tracker_resource/9364331acde03c187758e962d3c16488e687079e
==> default: [38.41s] Started compiling release concourse/0.33.0+dev.2 > Package vagrant_cloud_resource/48157af8b7cbdf43f81063d4d35e73f179241249
==> default: [38.41s] Finished compiling release concourse/0.33.0+dev.2 > Package vagrant_cloud_resource/48157af8b7cbdf43f81063d4d35e73f179241249
==> default: [38.41s] Started compiling release concourse/0.33.0+dev.2 > Package atc/91dd1f195406b750fe1fb396be6709c1b65300cb
==> default: [38.41s] Finished compiling release concourse/0.33.0+dev.2 > Package atc/91dd1f195406b750fe1fb396be6709c1b65300cb
==> default: [38.41s] Started compiling release concourse/0.33.0+dev.2 > Package blackbox/28609654330b22cdd78742cacb5b1b83fcebec7f
==> default: [38.41s] Finished compiling release concourse/0.33.0+dev.2 > Package blackbox/28609654330b22cdd78742cacb5b1b83fcebec7f
==> default: [38.41s] Started compiling release concourse/0.33.0+dev.2 > Package gate/aacf64628bc76a3a4fc652915624c1dfe1c8b52f
==> default: [38.41s] Finished compiling release concourse/0.33.0+dev.2 > Package gate/aacf64628bc76a3a4fc652915624c1dfe1c8b52f
==> default: [38.44s]
==> default: [38.44s] -----
==> default: [38.44s] Error: Provisioning deployment: Compiling releases: Release garden-linux: Reading release: Downloading release: Get url: Get https://s3.amazonaws.com/garden-linux-release/releases/garden-linux-0.34.0.tgz: dial tcp: lookup s3.amazonaws.com on [10.0.2.3]:53: too many redirects
==> default: [38.44s] ------
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

/opt/bosh-provisioner/assets/bosh-provisioner -configPath=/opt/bosh-provisioner/config.json 2>/tmp/provisioner.log

Stdout from the command:

Started setting up instance > Reading deployment manifest
Finished setting up instance > Reading deployment manifest
Started setting up instance > Validating instance
Finished setting up instance > Validating instance
Started setting up vcap user > Adding vcap user
Finished setting up vcap user > Adding vcap user
Started setting up vcap user > Configuring locales
Finished setting up vcap user > Configuring locales
Started setting up vcap user > Harden permissions
Finished setting up vcap user > Harden permissions
Started installing dependencies > Package build-essential
Finished installing dependencies > Package build-essential
Started installing dependencies > Package cmake
Finished installing dependencies > Package cmake
Started installing dependencies > Package libcap2-bin
Finished installing dependencies > Package libcap2-bin
Started installing dependencies > Package libcap-dev
Finished installing dependencies > Package libcap-dev
Started installing dependencies > Package libbz2-1.0
Finished installing dependencies > Package libbz2-1.0
Started installing dependencies > Package libbz2-dev
Finished installing dependencies > Package libbz2-dev
Started installing dependencies > Package libxslt1-dev
Finished installing dependencies > Package libxslt1-dev
Started installing dependencies > Package libxml2-dev
Finished installing dependencies > Package libxml2-dev
Started installing dependencies > Package iputils-arping
Finished installing dependencies > Package iputils-arping
Started installing dependencies > Package quota
Finished installing dependencies > Package quota
Started installing dependencies > Package libssl-dev
Finished installing dependencies > Package libssl-dev
Started installing dependencies > Package bison
Finished installing dependencies > Package bison
Started installing dependencies > Package flex
Finished installing dependencies > Package flex
Started installing dependencies > Package gettext
Finished installing dependencies > Package gettext
Started installing dependencies > Package libreadline6-dev
Finished installing dependencies > Package libreadline6-dev
Started installing dependencies > Package libncurses5-dev
Finished installing dependencies > Package libncurses5-dev
Started installing dependencies > Package ruby1.9.3
Finished installing dependencies > Package ruby1.9.3
Started updating bosh agent > Placing binaries
Finished updating bosh agent > Placing binaries
Started updating bosh agent > Placing configuration files
Finished updating bosh agent > Placing configuration files
Started updating bosh agent > Registering monit service
Finished updating bosh agent > Registering monit service
Started updating bosh agent > Registering agent service
Finished updating bosh agent > Registering agent service
Started configuring bosh agent > Configuring infrastructure settings
Finished configuring bosh agent > Configuring infrastructure settings
Started tearing down instance concourse/0 > Draining
Finished tearing down instance concourse/0 > Draining
Started tearing down instance concourse/0 > Stopping
Finished tearing down instance concourse/0 > Stopping
Started updating bosh agent > Placing binaries
Finished updating bosh agent > Placing binaries
Started updating bosh agent > Placing configuration files
Finished updating bosh agent > Placing configuration files
Started updating bosh agent > Registering monit service
Finished updating bosh agent > Registering monit service
Started updating bosh agent > Registering agent service
Finished updating bosh agent > Registering agent service
Started configuring bosh agent > Configuring infrastructure settings
Finished configuring bosh agent > Configuring infrastructure settings
Started compiling release concourse/0.33.0+dev.2 > Package archive_resource/8bb3d5f22c35c0bdf3b27087423f75b43f21205c
Finished compiling release concourse/0.33.0+dev.2 > Package archive_resource/8bb3d5f22c35c0bdf3b27087423f75b43f21205c
Started compiling release concourse/0.33.0+dev.2 > Package cf_resource/6c51a23289a8015d3de2360afab56e8ada31fc68
Finished compiling release concourse/0.33.0+dev.2 > Package cf_resource/6c51a23289a8015d3de2360afab56e8ada31fc68
Started compiling release concourse/0.33.0+dev.2 > Package consul_0.4/3027815996223b560b97d45030636ef744b21bdc
Finished compiling release concourse/0.33.0+dev.2 > Package consul_0.4/3027815996223b560b97d45030636ef744b21bdc
Started compiling release concourse/0.33.0+dev.2 > Package docker_image_resource/3582106b76b9910a57e8885764cefe7048963c67
Finished compiling release concourse/0.33.0+dev.2 > Package docker_image_resource/3582106b76b9910a57e8885764cefe7048963c67
Started compiling release concourse/0.33.0+dev.2 > Package git_resource/7b6348b1a28a20e27acf9b0f17f009b0015094fe
Finished compiling release concourse/0.33.0+dev.2 > Package git_resource/7b6348b1a28a20e27acf9b0f17f009b0015094fe
Started compiling release concourse/0.33.0+dev.2 > Package github_release_resource/1c1557894276a4d6d0504a06e31f9490ae244a3d
Finished compiling release concourse/0.33.0+dev.2 > Package github_release_resource/1c1557894276a4d6d0504a06e31f9490ae244a3d
Started compiling release concourse/0.33.0+dev.2 > Package golang_1.3/fc3bc1b4431e8913d91362c1183c9852809d35f6
Finished compiling release concourse/0.33.0+dev.2 > Package golang_1.3/fc3bc1b4431e8913d91362c1183c9852809d35f6
Started compiling release concourse/0.33.0+dev.2 > Package pid_utils/5f649be178971572c34a2e64a453bf5b2eb798d1
Finished compiling release concourse/0.33.0+dev.2 > Package pid_utils/5f649be178971572c34a2e64a453bf5b2eb798d1
Started compiling release concourse/0.33.0+dev.2 > Package postgresql_9.3/f30f3a88010d8a158a23a3927be0b339f36caec0
Finished compiling release concourse/0.33.0+dev.2 > Package postgresql_9.3/f30f3a88010d8a158a23a3927be0b339f36caec0
Started compiling release concourse/0.33.0+dev.2 > Package s3_resource/f7a48068e74761c76adb15924118051486c5bbd4
Finished compiling release concourse/0.33.0+dev.2 > Package s3_resource/f7a48068e74761c76adb15924118051486c5bbd4
Started compiling release concourse/0.33.0+dev.2 > Package semver_resource/08e425a99a6b071d24553eebd89c65dc28a931a7
Finished compiling release concourse/0.33.0+dev.2 > Package semver_resource/08e425a99a6b071d24553eebd89c65dc28a931a7
Started compiling release concourse/0.33.0+dev.2 > Package time_resource/f84812d778f124b19236093449c21e1fd32e824f
Finished compiling release concourse/0.33.0+dev.2 > Package time_resource/f84812d778f124b19236093449c21e1fd32e824f
Started compiling release concourse/0.33.0+dev.2 > Package tracker_resource/9364331acde03c187758e962d3c16488e687079e
Finished compiling release concourse/0.33.0+dev.2 > Package tracker_resource/9364331acde03c187758e962d3c16488e687079e
Started compiling release concourse/0.33.0+dev.2 > Package vagrant_cloud_resource/48157af8b7cbdf43f81063d4d35e73f179241249
Finished compiling release concourse/0.33.0+dev.2 > Package vagrant_cloud_resource/48157af8b7cbdf43f81063d4d35e73f179241249
Started compiling release concourse/0.33.0+dev.2 > Package atc/91dd1f195406b750fe1fb396be6709c1b65300cb
Finished compiling release concourse/0.33.0+dev.2 > Package atc/91dd1f195406b750fe1fb396be6709c1b65300cb
Started compiling release concourse/0.33.0+dev.2 > Package blackbox/28609654330b22cdd78742cacb5b1b83fcebec7f
Finished compiling release concourse/0.33.0+dev.2 > Package blackbox/28609654330b22cdd78742cacb5b1b83fcebec7f
Started compiling release concourse/0.33.0+dev.2 > Package gate/aacf64628bc76a3a4fc652915624c1dfe1c8b52f
Finished compiling release concourse/0.33.0+dev.2 > Package gate/aacf64628bc76a3a4fc652915624c1dfe1c8b52f

-----
Error: Provisioning deployment: Compiling releases: Release garden-linux: Reading release: Downloading release: Get url: Get https://s3.amazonaws.com/garden-linux-release/releases/garden-linux-0.34.0.tgz: dial tcp: lookup s3.amazonaws.com on [10.0.2.3]:53: too many redirects
------


Stderr from the command:

stdin: is not a tty

"fly configure" usage is missing correct syntax in fly help

the description shows how to name a pipeline, but the usage shows "command" instead of "fly" and is missing the PIPELINE_NAME.

i would expect to see:

USAGE:
   fly configure PIPELINE_NAME [command options] [arguments...]

but i actually see:

$ fly h c
NAME:
   configure - Update configuration

USAGE:
   command configure [command options] [arguments...]

DESCRIPTION:
   Specify a pipeline name to configure via `fly configure your-pipeline-name-here`

OPTIONS:
   --config, -c                         pipeline configuration file
   --json, -j                           print config as json instead of yaml
   --var, -v [--var option --var option]            variable flag that can be used for filling in template values in configuration (i.e. -var secret=key)
   --vars-from, --vf [--vars-from option --vars-from option]    variable flag that can be used for filling in template values in configuration from a YAML file
   --paused                         should the pipeline start out as paused or unpaused (true/false)

Enable retry from conditions: [error] task

Currently we can use conditions: [failure] but not conditions: [error].

The initial driver for this is when using concourse to redeploy itself - see #51. Currently the redeploy step will error, although the underlying bosh deploy succeeds. This feature would enable an automatic retry, which would be a no-op and hence the overall job succeeds.

However, there's a more general use case for this feature - it could be useful to run specific tasks if/when others error (e.g. notifications, or cleanup)

Add keyboard shortcut to switch to newer/older build

When I have some build page loaded, e.g. http://10.244.8.2:8080/pipelines/my-pipeline/jobs/my-testsuite/builds/9 and I do some commit, build 10 starts soon. So I found that I'm repeatedly reloading the page, waiting until 10 appears, and then clicking on its tab to see it. Having e.g. alt-left to view newer build and e.g. alt-right to see older build would be great.

help for "fly save-target" missing

i was not able to find any help about this command running concourse 0.54.0. it did not appear to set the .flyrc value as @drnic tutorial suggests.

$ fly help
NAME:
   fly - Concourse CLI

USAGE:
   fly [global options] command [command options] [arguments...]

VERSION:
   0.0.1

AUTHOR(S):

COMMANDS:
   execute, e   Execute a build
   hijack, i    Execute an interactive command in a build's container
   intercept, i Execute an interactive command in a build's container
   watch, w Stream a build's log
   configure, c Update configuration
   sync, s  download and replace the current fly from the target
   checklist, l print a Checkman checkfile for the pipeline configuration
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --config, -c "build.yml"         build configuration file
   --input, -i [--input option --input option]
   --insecure, -k               allow insecure SSL connections and transfers
   --exclude-ignored, -x            exclude vcs-ignored files from the build's inputs
   --privileged, -p             run the build or command with root privileges
   --target "http://192.168.100.4:8080"     address of the Concourse API server to use [$ATC_URL]
   --help, -h                   show help
   --version, -v                print the version

$ fly -v
fly version 0.0.1


Add metadata info available to resources

If one is using some resources sending notifications to external systems (Slack, email, etc.), it would be great to be able to send out info like:

Build #42 failed! _Click here_ to see the logs.

where _Click here_ would be the precise link to build 42, e.g. http://10.244.8.2:8080/pipelines/my-pipeline/jobs/my-testsuite/builds/42.

Currently it is not possible to do that at all. Exposing some metadata into tasks or resources, or creating some kind of meta-resource would solve this.

Unable to trigger job based on another job failure

For example, having single job sending out notifications about failures (e.g. put on hypothetical email-sending-resource) is not possible now. If failure could trigger some job, it should be possible to add some 'notify-about-fail' job to the pipeline and hook it up such way that any other failing job would trigger notification.

"fly save-target" help does not describe the TARGET_NAME

the current help does not show that you can or should provide a target name and "fly" is shown as "command". i would expect usage to look something like fly save-target TARGET_NAME [command options] [arguments...]

but it actually looks like this:

$ fly help save-target
NAME:
   save-target - save a fly target to the .flyrc

USAGE:
   command save-target [command options] [arguments...]

OPTIONS:
   --api        api url to target
   --username, --user   username for the api
   --password, --pass   password for the api
   --cert       directory to your cert

Cannot have a pipeline with a put as its (only) first step

example pipeline (from https://github.com/cloudfoundry-community/slack-notification-resource-boshrelease):


---
jobs:
- name: alert
  public: true
  plan:
  - put: alert
    params:
      text: Hi everybody!
      channel: "#general"
      username: concourse
      icon_url: http://cl.ly/image/3e1h0H3H2s0P/concourse-logo.png

resources:
- name: alert
  type: slack-notification
  source:
    url: https://hooks.slack.com/services/XXXX/XXX/XXXX

fails, with build log:

/opt/resource/out: line 5: cd: /tmp/build/put: No such file or directory

Develop/contributor documentation?

I don't see any documentation aimed at developers and contributors. Maybe I'm missing something that already exists, maybe it doesn't exist yet. Either way it would be helpful to link to it from the README.

What I'm looking to see is something like the following:

  • How can I validate that a deployment of concourse bosh-release runs fine against e.g. bosh-lite.
    • Are there are acceptance/end-to-end tests, perhaps against a bosh deployment?
    • How should I run tests against concourse submodules without running the tests against all the dependencies?
  • What is my development workflow?
    • What external, non-golang dependencies do I need to install and/or configure? For example I've already identified that ATC requires postgres and phantomjs
    • What (if any) githooks should I set up?
    • What scripts should I run before commiting
    • Should I run some/all tests in a docker container? I see various docker files, what are they all for?

Where/when is build-gate.yml task run?

Starting to review how concourse is built up/run. I see ci/build-gate.yml calls to ci/scripts/build-gate.sh but ci/build-gate.yml doesn't seem to be mentioned in either pipeline. When is it run?

[req] Status badges for readmes

As a project I'd like to show off my current CI pipeline status in my README. Ideally to distinguish that I'm using concourse I'd like the badge to be an actual view of the pipeline itself - green/orange/red boxes connected by lines - rather than a simplistic green/red badge. Concourse does more and so perhaps the badge could indicate this.

image

Add documentation on integrating and configuring blackbox

Understanding how to incorporate and configure blackbox is nothing short of black(box) magic.

Knowing that the adding blackbox release before the others results in automagical logging is not obvious.

Blackbox README also mentions paths for both datadog and papertrail - what are these for and how do we configure them?

No space left on device error

A Docker image build is failing in a Concourse job:

scons: *** [mongostat] No space left on device
scons: *** [mongooplog] No space left on device
scons: *** [mongotop] No space left on device
collect2: error: ld returned 1 exit status
scons: *** [build/linux2/ssl/mongo/mongofiles] Error 1

There is plenty of disk space on the worker nodes, this must be a limit imposed in Garden. Any idea on how we might increase it?

concourse fly not working on mac os X

sfo1502393292a:Downloads 502393292$ fly
fatal error: runtime: bsdthread_register error

runtime stack:
runtime.throw(0x633ed5)
/var/vcap/data/packages/golang/25b17958ab3f23231ddfe6bc2d15a8d20a96dcab.1-0ee6cbb73eed0f25c14cea9c6f3ec64b0f8b2787/src/runtime/panic.go:491 +0xad fp=0x7fff5fbffab0 sp=0x7fff5fbffa80
runtime.goenvs()
/var/vcap/data/packages/golang/25b17958ab3f23231ddfe6bc2d15a8d20a96dcab.1-0ee6cbb73eed0f25c14cea9c6f3ec64b0f8b2787/src/runtime/os_darwin.c:104 +0x70 fp=0x7fff5fbffac8 sp=0x7fff5fbffab0
runtime.schedinit()
/var/vcap/data/packages/golang/25b17958ab3f23231ddfe6bc2d15a8d20a96dcab.1-0ee6cbb73eed0f25c14cea9c6f3ec64b0f8b2787/src/runtime/proc.c:141 +0x5f fp=0x7fff5fbffaf0 sp=0x7fff5fbffac8
runtime.rt0_go(0x7fff5fbffb28, 0x1, 0x7fff5fbffb28, 0x0, 0x0, 0x1, 0x7fff5fbffc30, 0x0, 0x7fff5fbffc6c, 0x7fff5fbffc88, ...)
/var/vcap/data/packages/golang/25b17958ab3f23231ddfe6bc2d15a8d20a96dcab.1-0ee6cbb73eed0f25c14cea9c6f3ec64b0f8b2787/src/runtime/asm_amd64.s:95 +0x116 fp=0x7fff5fbffaf8 sp=0x7fff5fbffaf0

Unable to test tasks with `fly execute`

I've been trying to use fly execute to test out some tasks that I'm working on, connecting to a simple Concourse instance deployed on AWS via BOSH, as it suggests in the docs. However, that functionality seems to be completely broken (And I'm not sure if it's Fly or ATC or BOSH or what have you that's the problem, hence raising this against the Concourse Release).

When attempting to use the following command:

# fly -k -t https://<user>:<pass>@<blah>.elb.amazonaws.com execute -i <input>=`pwd`/ -c ci/deploy-to-aws.yml

I get the following output:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:01:01 --:--:--     02015/06/01 12:35:42 bad response when uploading bits: &{504 GATEWAY_TIMEOUT 504 HTTP/1.1 1 1 map[Content-Length:[0] Connection:[keep-alive]] 0x2087c4040 0 [] false map[] 0x2087a0410 0x20874c580}
HTTP/1.1 504 GATEWAY_TIMEOUT
Content-Length: 0
Connection: keep-alive

Which is not ideal. I've looked at AWS, and I have the Idle Timeout set to 3600 seconds in the Elastic Load Balance configuration, and it still consistently times out after a minute.

If I fiddle with the AWS configuration slightly and talk to ATC directly, I get the following:

# fly -k -t http://<user>:<pass>@<elastic_ip>:8080 execute -i <input>=`pwd`/ -c ci/deploy-to-aws.yml
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:--  0:02:06 --:--:--     0curl: (7) Failed to connect to <eip> port 8080: Connection timed out
gunzip: invalid magic
tar: short read
exit status 1
resource script '/opt/resource/in [/tmp/build/get]' failed: exit status 1
errored

Note how there is no movement in any of the numbers, either, so I'm not even sure if it's uploading.

Having a look with cURL, I get the following:

curl -k -v -X PUT http://<eip>:8080/api/v1/pipes/f2f65bc5-31cf-45a9-6c3b-8eb1fb4baf3f -u <user:pass> --data-binary @tmp.tgz > out
* About to connect() to <eip> port 8080 (#0)
*   Trying <eip>...
* Adding handle: conn: 0x7fc81c00aa00
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x7fc81c00aa00) send_pipe: 1, recv_pipe: 0
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0* Connected to <eip> (<eip>) port 8080 (#0)
* Server auth using Basic with user '<user>'
> PUT /api/v1/pipes/f2f65bc5-31cf-45a9-6c3b-8eb1fb4baf3f HTTP/1.1
> Authorization: Basic <auth>
> User-Agent: curl/7.30.0
> Host: <eip>:8080
> Accept: */*
> Content-Length: 56823313
> Content-Type: application/x-www-form-urlencoded
> Expect: 100-continue
>
  0 54.1M    0     0    0     0      0      0 --:--:--  0:00:01 --:--:--     0< HTTP/1.1 100 Continue
} [data not shown]
 22 54.1M    0     0   22 11.9M      0   6746  2:20:23  0:30:55  1:49:28     0

This time, we can see that it actually uploaded about 12M, and then stopped. Nothing else happened (running cURL against the ELB rather than the Elastic IP also produced a 504).

A smaller file set (<12MB) uploaded OK with cURL, but not with fly - fly execute still responded with the same gunzip: invalid magic, and did not appear to actually send any data (though tcpdump + WireShark suggests it should have).

Any idea what's going on? Any configuration I'm likely to be missing?

EDIT: This seems to occur when deploying to BOSH Lite as well, using the latest concourse + garden release combination (from https://github.com/concourse/concourse/releases)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.