v1.3.1

June 16, 2016

Release Notes

  • fix

Bumping Buildroot brought in git version 2.8.2, which breaks handling of nested submodules. We've moved ahead to master of Buildroot which bumps git to 2.8.3, which should fix the issue.

  • feature

The Github Release resource resource will now retry on failed uploads, up to 10 times.

  • fix

The build numbers made in automated commits to the Pool resource are now escaped with backticks so that GitHub doesn't auto-link them to bogus issues. Thanks @geramirez!

Downloadsv1.3.1

v1.3.0

June 13, 2016

Release Notes

  • feature

  • breaking

We have switched Garden backends to Garden runC. This new runC-based backend has proven in our testing to be far more portable, allowing our binaries to work on just about any stack that's using a recent enough Linux kernel (3.19+).

As part of this upgrade, your existing workers will need to be recreated.

With BOSH, you can do this with bosh deploy --recreate when deploying the new releases.

For the binaries, you'll need to stop the old worker, nuke the --work-dir, and then start the new one.

In addition, we now explicitly manage all aspects of container images. This should dramatically reduce disk usage on your workers, as there's no longer a redundant copy from importing the image into Garden's graph, as long as you're using image_resource. This also means we're now using btrfs for the whole stack, which makes running Docker in Concourse tasks much easier.

As part of this, the binary distribution no longer supports image. Supporting it has always been a portability nightmare, and we've been discouraging use of image for some time now.

  • feature

Jobs can now be configured with build_logs_to_retain, which is a number indicating how many builds for which to keep the build output. All build logs except for the most recent N builds will be reaped. You can flip this on for already-existing jobs with thousands of builds and we'll slowly reap them in batches.

  • feature

A task step in a plan can now be configured with an image field specifying an artifact source to use. This allows for build-and-test flows, where your pipeline produces an image and then propagates the exact image to a task that uses it as its rootfs.

  • feature

volumes now includes much more information about each volume, including its disk usage. This should help track down what's using so much disk, and whether you really just need more space to accomodate your workload.

  • feature

A Hg resource is now included as part of the core distribution.

  • feature

When a build is stuck "waiting for a suitable set of input versions", it will now show what input it cannot find versions for, and why.

  • feature

Previously workers could end up with very poor balancing of containers, in the worst case resulting in one worker handling the bulk of the resource checking load. We now balance checking across workers over time, by only reusing the check containers for up to an hour.

  • feature

The ATC itself can now be configured to listen with TLS, rather than relying on an upstream component like HAProxy or an ELB for SSL termination.

This also means the ATC can handle HTTP/2 traffic, thanks to Go's magic net/http package. We've seen noticeable speed boosts in the web UI from this alone.

When TLS is configured the ATC will redirect any non-HTTPS GET and HEAD requests to HTTPS.

  • feature

In addition to HTTP/2, we've done some optimizations that make the pipeline UI much faster and more responsive.

  • fix

intercept's help text now indicates that you can run an arbitrary command.

  • feature

The Git resource now includes branches and tags in its metadata for each commit.

  • fix

Previously the Time resource would accidentally report two versions within the boundary of a time range configured with start and stop. This has been fixed.

  • feature

The Docker Image resource can now be configured with SSL CA certs to trust when communicating with the registry. This allows you to use private registries securely, rather than listing the address as insecure.

  • fix

The Git resource will now detect the full history of tags when configured with tag_filter, rather than just the latest one.

  • feature

All core resources now include bash in their image, which should make hijacking more pleasant. We also stripped out extra stuff from some resources, so on the whole the resource images should be a bit smaller.

  • feature

We've bumped all core images to Buildroot v2016.05, and are now continously integrating with Buildroot.

  • feature

The Git resource can now be configured to NOT skip commits with [ci skip] in them, thanks to a PR from @zachgersh and @ryanmoran. This is useful when you're pointing at commits of an external repo with an unrelated CI.

  • feature

The Git resource, S3 resource, and Semver resource now support basic auth when talking to Git repos, thanks to PRs from @MatthiasWinzeler and @JamesClonk.

  • feature

The Docker Image resource can now be configured with a registry mirror, thanks to a PR from @gregarcara.

Downloadsv1.3.0

v1.2.0

April 27, 2016

Release Notes

  • feature

fly learned the check-resource command, which allows you to force detection of versions, notably those in the past. This is useful if you've configured a new resource but want to use a version that's not the latest one.

As part of this change we've slightly tweaked how check works (in a backwards-compatible way). Your check script should now include the requested version in the response if it's still valid. This is so that you can run check-resource with the version that you want, rather than the one before it.

  • feature

get steps can now be pinned to a specific version.

Example:

plan:
- get: my-repo
  version: {ref: cb0ed22c4cfc6b7524bcafc1664b2d27035521f9}

This will lock the my-repo step to the specified version. Note that the version must be valid, must be collected in the resource's version history (which means you may want to use check-resource), and must also satisfy any passed constraints listed on the step.

See version for more information.

  • feature

get steps can now be configured to run with every version of its resource, rather than skipping to the latest.

Example:

plan:
- get: pull-requests
  version: every

This will allow the build to run with every version of the resource, which is probably a bad idea for certain git repos (where folks may push 100 commits at once), but can make a lot of sense for other things (security auditing, handling all pull requests, processing commits across multiple branches, etc.).

See version for more information.

  • fix

We've fixed the rendering of multi-field versions in the UI to be substantially less confusing.

As part of this we've tweaked how we render steps in the UI. The checkboxes are now more subtle and less button-like, and aggregate steps look cooler.

  • fix

The ATC now validates that its URL flags are valid URLs. Previously you could configure an --external-url of example.com, which is missing the scheme, so some things would break.

  • feature

We've bumped to Go 1.6.1. You probably don't care.

  • fix

The Docker Image resource now requests the correct schema version of manifests from the registry, which should fix cases where it would pull the wrong digest.

This is thanks to a PR from @databus23.

  • fix

The S3 resource now issues a shouty warning if you're still using from and to.

It's configured to blink but our web UI doesn't (YET) support blinking text. Consider this a warning. You have one release to comply or be met with red, blinking text in your builds.

  • fix

The Semver resource can now be configured with an identify for the commits made with the git backend, thanks to a PR from @shinji62.

  • feature

trigger-job now has a -w flag for watching the build that was created.

  • fix

fly now respects $http_proxy and $https_proxy for communication to the Concourse server, thanks to a PR from @ArthurHlt.

  • feature

The Docker Image resource now has a tag_as_latest param for tagging the image with latest, in addition to any specified tag, thanks to a PR from @shinji62.

Downloadsv1.2.0

v1.1.0

April 14, 2016

Release Notes

  • feature

Workers can now configure proxies to use for containers that are spun up on them.

If you're using the binaries, all you have to do is set the standard $http_proxy, $https_proxy, and $no_proxy environment variables. There are also equivalent flags you can pass to concourse worker, which were added for discoverability's sake.

If you're using BOSH, just set the http_proxy_url, https_proxy_url, and no_proxy properties on the groundcrew job.

  • feature

A task's run can now specify the working directory by setting dir.

  • feature

fly learned the targets command, which, surprise surprise, lists the currently saved targets.

  • fix

The blackbox job in the BOSH release will now once again emit logs, by autodiscovering them from /var/vcap/sys/log/*/*.log.

  • fix

Fixed rendering of leading whitespace on lines of output in build logs.

  • fix

Fixed the scrolling behavior of the pipelines sidebar list to not cut off the last couple of entries.

  • fix

The Docker Image resource is now durable to resource images that do not contain a /etc/password file.

  • fix

Previously renaming a pipeline made bad things happen to the automatic resource checking and scheduling for said pipeline. Instead of doing this it now renames the pipeline and the pipeline continues to work.

  • fix

Previously a put occurring at the start of the plan would not have its source directory created (as there were no artifacts), which would cause some resources to break. We now ensure this directory exists.

  • fix

You can now scroll up more easily when viewing a finished build. You are all free now!

  • feature

You can now run fly help and it'll show its help text instead of "unknown command."

  • fix

Previously if you had an entry in resource_types and resources with the same name the ATC catch on fire. It now doesn't.

  • fix

Users who are present in more than 30 GitHub organizations and/or teams can now authorize with Concourse. You should be rewarded for your popularity.

  • fix

Piping input into intercept will now send an EOF when the input is exhausted (e.g. echo foo | fly intercept ... cat).

Downloadsv1.1.0

v1.0.0

March 29, 2016

Release Notes

We made it!

This release, although relatively small on its own, is built on years of feedback and iteration. So these notes will be a bit more broad and cover all the things you may have missed since you last checked in on our little CI system.

First off, a huge thanks to Pivotal for sponsoring our project and letting us work on it full-time. Over the past year we've had 17 team members rotating through, including 2 designers. Pretty sweet.

With 1.0.0 comes a more rigid release policy on our end. You may see deprecations here and there, so keep an eye out for those via the tags next to each release note, but nothing should change backwards-incompatibly until 2.0.0. We'll still be releasing at the same cadence as before, so we'll probably end up at v1.23.0 pretty soon.

Here's a text-form 80's montage of all the things you may have missed since v0.17.0, our first release:

  • feature

Build Plans replaced the old style job config.

  • feature

A standalone binary distribution of Concourse has been introduced. (Download links to the right.)

  • feature

Caching and more efficient artifact propagation: resources fetched by get steps are cached on the workers and efficiently propagated throughout steps in the build plan.

  • feature

A single Concourse can be configured with multiple pipelines dynamically.

  • feature

Custom resource types can now be added via resource_types in the pipeline, rather than reconfiguring your workers.

  • fix

Lots of performance improvements and optimizations, and resilience to flaky networks.

  • feature

The fly CLI has been entirely rewritten and is much more consistent in UX.

  • feature

Concourse knows its own version number and will warn you if your CLI is out of date.

  • feature

Tasks have explicit inputs and outputs, making artifact consumption and production a lot easier to follow.

  • feature

A new color scheme that's more colorblind-friendly.

  • feature

A whole bunch of improvements to core resources.

...and now for the actual 1.0 release notes, if you're upgrading from v0.76.0:

  • feature

  • breaking

The Concourse BOSH release is now built for BOSH 2.0. You will need a recent director to upgrade. Consult Clusters with BOSH for information on the new BOSH 2.0 deployment scheme.

  • fix

Resources backed by a resource type defined in resource_types will now periodically check for new versions of the resource type and use the latest one for checking. Previously the same container would be reused forever even if a new version of the resource type was released.

  • feature

We've added aria-label attributes to all buttons in the UI, which should improve accessibiltiy for folks using screen readers. Still a ways to go overall, but this is a start.

  • fix

Lots of dots in sequence in build output will now word-wrap once again.

  • feature

The BOSH release can now be configured to use GitHub enterprise endpoints for GitHub auth.

  • fix

Connections from ATC to Baggage Claim will now retry on connection errors.

  • fix

Fixed an issue where volumes would "expire" even though a build was still using them. Did a bunch of refactoring and now it should all be pretty airtight.

  • fix

We've fixed a goroutine leak on the ATC which would occur every time image_resource was used.

Downloadsv1.0.0

v0.76.0

March 23, 2016

Release Notes

  • fix

v0.75.0 introduced a client-side limit of 64 connections to the database, which no one would ever hit so we didn't bother putting it in the release notes. Then a bunch of people with large deployments hit it and their Concourse went cold. Sorry.

We're removing the limit and are going to do some investigation into the ATC's connection pool characteristics before considering adding it back.

  • feature

The pipelines sidebar is now scrollable. Some of y'all had a lot of them and got tired of buying larger monitors.

  • feature

Jobs can now have their manual triggering disabled, via disable_manual_trigger.

  • feature

The BOSH deployment resource now supports BOSH 2.0 manifests. Previously it would explode instead.

  • feature

The ATC can now be configured to authenticate against a GitHub Enterprise deployment, thanks to @aequitas!

  • fix

Cleaned up some internals to fix the root cause some noisy but harmless log lines (failed-to-lookup-ttl).

  • feature

The Semver resource now supports OpenStack Swift as a storage backend, thanks to @ChrisPRobinson!

  • feature

The Time resource can now be configured to only yield new timestamps on certain days of the week, thanks to @joek!

  • feature

fly learned the rename-pipeline command, thanks to @zachgersh!

  • feature

The Docker Image resource should now be more durable to flaky Docker registries, by retrying with exponential backoff on network errors or 5xx responses.

  • feature

The BOSH deployment resource now downloads the deployment manifest when used as a get.

  • fix

Previously the Pool resource would require you to specify retry_delay in nanoseconds, which was a bit silly. It now accepts Go duration format, e.g. 30s.

  • fix

The Tracker resource now correctly handles rejected stories by only delivering them if a new commit has been made after they were rejected.

Downloadsv0.76.0

v0.75.0

March 9, 2016

Release Notes

  • feature

  • deprecation

The Semver resource now creates a file called version containing the version number, making it consistent with other resources that provide a version.

We still create number for backwards compatibility, but you should switch.

  • feature

  • deprecation

Specifying both file and config on a task step is now deprecated. You should receive warnings when running set-pipeline and when running a task that specifies both.

Instead, you should be specifying params, input_mapping, and output_mapping.

  • feature

The Fly CLI and the web UI now know their own version! We probably should have done this years ago. So fly -v now works instead of printing a shrugging emoticon, and the web UI now has the version at the bottom right (it even live updates, for all your CI monitors out there).

In addition, fly will print a warning if the versions are slightly out of sync (patch release), and straight up prevent itself from running if they're significantly out of sync (i.e. minor or major).

  • fix

Tagged workers are now supported by image_resource.

  • feature

The duration that containers stick around for after finishing is now configurable via new atc.retention.* BOSH properties (and corresponding flags to the ATC).

  • feature

intercept now sorts its container list, which should aid in frustration with finding the container to intercept.

  • feature

containers now shows the TTL (as we've configured it) and validity (actual expiration, which counts down to 0) for each container. This will be useful to know which ones are sticking around because they failed, and which ones are sticking around because of a build that's running too frequently.

  • feature

fly learned the abort-build command, thanks to a pull request from @zachgersh.

  • feature

fly learned the trigger-job command, thanks to a pull request from @aminjam.

  • feature

The BOSH deployment resource now supports deploying to a director using UAA client ID/secret for auth.

  • feature

We've bumped the version of Buildroot that many of our resources are based on, which should bring in updated CA certificates and other miscellaneous things.

  • fix

Previously resources that had params involving lists of objects would cause Concourse to blow up instead of working. It should now work.

Downloadsv0.75.0

v0.74.0

February 26, 2016

Release Notes

  • feature

You can now configure resource types in your pipeline rather than redeploying your workers with additional resource types. This should make it much easier to use the community resources that people have built!

  • feature

Autoscroll on a build page is back and is now implemented in a way that doesn't kill the browser when you have many build events.

  • feature

If the Docker image you specify in the image_resource section of your task has a custom user then we will now respect that when running the task. This user will also be used when hijacking in to a build container.

  • feature

Hijacked connections will no longer cause connection timeouts at interim load balancers if there is no input or output.

  • feature

The pipeline graph rendering now has large portions of the computation cached. This should provide a significant speedup and decrease in CPU load when viewing a pipeline.

  • feature

We've made some tweaks to the ATC's build scheduling that should fix "deadlock" scenarios with serial groups.

Previously, if a pipeline of "A -> B -> C" had all 3 jobs in a serial group, and the builds were enqueued in order of C, B, then A (manually), nothing could ever run, as the scheduling was based on the order of the builds being enqueued, and C would never be satisifed. This is now fixed by collecting inputs and then scheduling only once they're available, so that C never gets scheduled, and so A is able to be scheduled, followed by B, and then C.

  • fix

The icon font that was broken in Safari by v0.73.0 are now unbroken by v0.74.0.

  • fix

Interrupting a fly execute that was fetching outputs will no longer panic if you cancel it in the middle.

  • feature

If you try and trigger a build while you are not logged in then we'll now redirect you back to the build page you were on rather than the main pipeline page.

  • feature

The Pool resource will now ignore in-place modifications when working out if a log aquisition is still valid.

  • feature

The Fly CLI will now print the target it will be interacting with at the start of every command.

  • breaking

The Fly CLI default value of the -t flag has been removed. If you're using the VirtualBox distribution then you'll need to start logging in and supplying a target. This is to get people in this habit before they progress to a bigger deployment.

  • feature

The Fly CLI has a more sensible timeout and a better error message if it cannot reach the targeted Concourse.

  • feature

We bumped to Go 1.6. You should see absolutely no change.

Downloadsv0.74.0

v0.73.0

February 18, 2016

Release Notes

  • feature

  • breaking

The destroy-pipeline command now runs much quicker. Unfortunately to implement this there's a massive database migration. Expect anywhere from a few minutes of downtime up to a few hours when you upgrade to this version, depending on how many builds you have and how chatty they are. Sorry about that.

There is no way of predicting how long this migration may take for your instance. It depends on the chattiness of your builds and the performance of your database. For a rough approximation: running the migration on the Concourse team's server took 20 minutes to migrate 13 million build events.

You can find out how many build events you have by running the following query against your Concourse database:

SELECT relname, n_live_tup
FROM pg_stat_user_tables
WHERE relname = 'build_events';

The root of the issue is the amount of data in the build_events table. If you don't have many build logs then then you can probably just upgrade and not worry about the rest of this. If the upgrade is going to take too long then you'll need to find some way to reduce the rows in that table.

Before you delete any data from the system you should make sure to take a backup of your database and make doubly sure you can restore it while blind-folded and upside-down in case anything goes wrong.

If you don't care about your old build logs then you can simply run TRUNCATE build_events; before upgrading and the migration will be quick and painless.

Many of you probably do care about your build events but maybe only those which were created in the past X months. If this sounds like a good idea then have I got the SQL query for you! Run this against your Concourse database (change the X to the number of months you'd like to keep):

DELETE FROM build_events
WHERE build_id IN (
  SELECT builds.id
  FROM jobs JOIN builds ON jobs.id = builds.job_id
  WHERE builds.end_time < NOW() - INTERVAL 'X month'
  ORDER BY builds.id
);

This query may take a while to execute but your Concourse can be online the entire time that it is running.

If you want to keep all of your build logs and have a fast migration then I'm sorry, I can't help you. :( Maybe upgrade over a weekend?

  • breaking

The Docker Image resource no longer produces the docker saved image by default. This is to reduce disk usage when using the resource as an image_resource. You must now pass save: true as part of params on the get step to produce the image file.

  • feature

Inputs to jobs that are not configured to trigger the job when new versions appear will now be rendered with a dashed line. This makes it easier to see which resources automate the pipeline flow, and which jobs are only ever manually triggered.

  • feature

A pending build will now indicate why it's pending, via a checklist that appears at the top of the build output. (Yay!)

  • breaking

The theme selector is gone. So are all but one of the themes. This new theme is the product of our research and your feedback. I'm confident that it's perfect in every way. But let us know if you have any major problems with it.

  • fix

Improved the caching of resources used for image_resource. Previously if the same version was fetched multiple times on the same worker, we'd keep all of them around so long as they were the latest version. We'll now only keep one.

  • feature

The destroy-pipeline command learnt the -n option which when used will not ask you to confirm the deletion of the pipeline. Useful for scripts. Dangerous for users.

  • fix

The Docker Image resource no longer worked for images configured with ENTRYPOINTs as of v0.72.0, and ended up running whatever the entrypoint was, with our internal binary tool as an argument. It now works again. Our bad.

  • fix

The GitHub release resource would have issues when fetching artefacts from S3 via GitHub when using an access token. It no longer has these issues.

  • feature

The Docker Image resource now supports a dockerfile parameter for specifying a path to the Dockerfile to use.

  • feature

The Git resource now supports producing annotated tags via the annotate parameter.

  • feature

The Git resource now supports checking for tag patterns like *-production via the tag_filter source configuration.

  • feature

The Git resource now includes git lfs.

Downloadsv0.73.0

v0.72.1

February 8, 2016

Release Notes

  • fix

Fixed a bug that would cause containers used by the new image_resource not to be released.

  • fix

Removed a uniqueness constraint on the database that checked a huge number of columns which caused PostgreSQL to error for certain pipelines.

Downloadsv0.72.1

v0.72.0

February 6, 2016

Release Notes

  • feature

  • deprecation

We've added a new way of specifying the image for a task. You can now use image_resource which will use Concourse resources to pull the image down.

For example:

image: docker:///ubuntu#14.04

would now become:

image_resource:
  type: docker-image
  source:
    repository: ubuntu
    tag: 14.04

If those keys look familiar that's because they're the same ones you would specify if you were defining a resource in your pipeline. This means that because the Docker Image resource supports private repositories you can now use private repositories for your task images. There are more details in the Tasks section of the documentation.

Further improvements to this feature are coming soon!

  • feature

  • breaking

Resources now have access to the external URL of the Concourse that they are associated with in the environment variable ATC_EXTERNAL_URL.

The property atc.external_url is now required for ATC to start up.

  • breaking

In order for a task to make something for a later step in the plan it now must use outputs. Previously the task's entire working directory was made available if outputs were not configured, which led to more network traffic than necessary if you didn't intend for the task to actually propagate anything to later steps.

  • feature

We now validate task configuration at the start of a task. Sneaky things like typos and overlapping inputs and outputs are now hard errors.

  • feature

The new default theme concourse is the culmination of our work on color schemes. It will soon take its place as the one and only color scheme.

If you've been changing your theme around, make sure to manually switch to the concourse theme to check it out, otherwise it'll stick with whatever scheme you last selected.

  • feature

Failed jobs are now displayed with an additional border and a symbol above the column that they are contained in. This change along with the improved color scheme should help the 315,000,000 potential and current Concourse users around the globe who are color blind.

  • feature

The atc.publicly_viewable flag now applies to the API endpoints as well as the web interface. There was no secret information exposed by the API but potentially sensitive things like job names for unannounced projects were there.

  • fix

We fixed the bug that would show your entire pipeline in the diff when uploading changes to your pipeline.

  • fix

New line characters in resource metadata output are now preserved again when viewing them in the web build view.

  • fix

If a job has both pending and running build we will now show the running build animation on the dashboard rather than the less interesting pending animation.

  • fix

If you view a job or build in a paused pipeline then the top bar on the page will be blue again.

  • feature

fly now presents a far more helpful error message if you're not logged in.

  • feature

The pipeline layout algorithm has changed to draw resources at an appropriate height so that more of the lines are straighter.

  • fix

The list of containers returned when you try and hijack is now correctly filtered to the build number you ask for.

  • fix

The ATC doesn't panic anymore if the database disappears in the middle of a build. It still gets pretty mad though so try and keep your database disappearing to a minimum.

  • feature

The Tracker Resource now understands variations on the word "completed" when scanning commit messages.

  • fix

ATC will now handle if you supply an atc.external_url with a trailing slash rather than not letting GitHub users log in. A significant improvement if I do say so myself.

Downloadsv0.72.0