Buildkite Agent 2.2

We’ve just released Buildkite Agent v2.2 (Brangelina) 💑💔

So what's changed since Buildkite Agent 2.1.14?

Features

  • :golang: The buildkite-agent binary is now built with Golang 1.7 giving us support for macOS Sierra
  • 💨 The agent now talks HTTP2 making calls to the Agent API that little bit faster
  • 📦 The binary is a statically compiled (no longer requiring libc)
  • :amazon-ec2: meta-data-ec2 and meta-data-ec2-tags can now be configured using BUILDKITE_AGENT_META_DATA_EC2 and BUILDKITE_AGENT_META_DATA_EC2_TAGS environment variables

(Possible)? Breaking changes

We've removed our dependency of libc for greater compatibly across *nix systems which has had a few side effects:

  • We've had to remove support for changing the process title when an agent starts running a job since it required libc to work. This feature has only ever been available to users running 64-bit Ubuntu. We'd like to bring this feature back in the future in a way that doesn't have us relying on libc
  • The agent will now use Golangs internal DNS resolver instead of the one on your system. This probably won't effect you in any real way, unless you've setup some funky DNS settings for agent.buildkite.com

The release has been published to the Buildkite package repositories. For instructions on upgrading your agent please see the Upgrading section in the corresponding section of our installation documentation.

Keith

Improved organization invitation system

Today we’ve shipped some changes to simplify the Buildkite invitation system, including revamped invitation emails, automatic email address verification and a new screen for you to double check invitations before accepting them.

You can get the lowdown on our Building Buildkite blog post 🌟

Buildkite Email Invitation

Keith

Buildkite Agent 2.1.14

Update: We accidentally introduced a bug in this release. Please upgrade to the latest agent instead.

It's a cold winter's day here in Melbourne, but never too cold for new Buildkite Agent release: v2.1.14 (Frosty) ⛄️

What’s new since v2.1.13?

  • 🔍 SSH key scanning should be more resilient, whether or not you hash your known hosts file
  • 🏅 Commands executed by the Bootstrap script correctly preserve positional arguments and handle interpolation better
  • 🌈 ANSI color sequences are a little more resilient
  • ✨ Git clean and clone flags can now be supplied in the Agent configuration file or on the command line
  • 📢 Docker Compose will now be a little more verbose when the Agent is in Debug mode
  • 📑 $BUILDKITE_DOCKER_COMPOSE_FILE now accepts multiple files separated by a colon (:), like $PATH

The release has been published to the Buildkite package repositories. For instructions on upgrading your agent please see the Upgrading section in the corresponding section of our installation documentation.

For a full list of what's changed see the GitHub release page :octocat:

Samuel

Buildkite Agent Homebrew Updates

If you’ve installed the Buildkite Agent using Homebrew recently you might have noticed warnings about the use of SHA1:

1
2
3
4
5
$ brew install buildkite-agent
==> Installing buildkite-agent from buildkite/buildkite
==> Downloading .../buildkite-agent-darwin-386-2.1.13.tar.gz
Warning: SHA1 support is deprecated and will be removed in a future version.
Please switch this formula to SHA256.

Well, we’ve updated everything to use SHA256. Installing using Homebrew should now be slightly less eventful 🎉

We also noticed that installing the new Buildkite Agent 3.0 beta using homebrew’s --devel flag wasn't quite working, so we’ve fixed that too! 🍻

Samuel

Buildkite Agent 2.1.9

We’ve just released Buildkite Agent v2.1.9 (Purple Rain) ⚛️

What’s new since v2.1.8? Two bug fixes and lots of Docker Compose improvements:

  • 🌈 Build headers now work even if they're wrapped in ANSI color escape codes
  • 🐛 Step commands are now run with bash’s -o pipefail option, preventing silent failures where failed_command | cat would end up with a passing step
  • :docker: Docker Compose 1.7.x support, including docker network removal during cleanup
  • :docker: Docker Compose builds now specify --pull, so a new base image will always be pulled if one exists
  • :docker: The "Running command" section of Docker Compose job output is now expanded by default
  • :docker: Docker Compose will now only build the specified service’s image, not all images. If you want to build all images, set the environment variable BUILDKITE_DOCKER_COMPOSE_BUILD_ALL=true
  • :docker: No more BUILDKITE_DOCKER_COMPOSE_LEAVE_VOLUMES undefined errors in bootstrap.sh

This release coincides with the beta of :aws: Buildkite AWS Stack, a one-click auto-scaling build cluster in it's own AWS VPC capable of running any project with a docker-compose.yml. Please test it out and send us your questions and feedback.

The release has been published to the Buildkite package repositories. For instructions on upgrading your agent please see the Upgrading section in the corresponding section of our installation documentation.

For a full list of what's changed see the GitHub releases page :octocat:

Tim

Webhook payloads now include an event property

If you’ve tried processing Buildkite webhooks :webhook: with AWS Lambda :aws-lambda: and Google Cloud Functions :googlecloud: you'll know dealing with HTTP headers can sometimes be more painful than dealing with plain old JSON body properties.

To simplify the job of Buildkite webhook integration we’ve added the event name to the JSON payload body itself—you no longer need extra code to handle HTTP headers 🎉

We’ve updated all the webhooks examples with the new event property. For example, the build.finished webhook now looks like this:

1
2
3
4
5
6
7
8
9
{
  "event": "build.finished",
  "build": {
    "..": "..."
  },
  "sender": {
    "...": "..."
  }
}

We’ve also updated the API overview to clarify when to pass query string parameters and when to send JSON request bodies. The docs for each endpoint explain exactly what is expected :json:

We hope these changes bring a little less 😣 a little more 😺 when you’re working on Buildkite API integrations 💚

Tim

API updates and community releases

After a long weekend full of 🍫🐰 we’re happy to share some of the recent API updates that we’ve made based on your feedback 🛰️✨

  • The Link header is now exposed via CORS headers so you can paginate API results in the browser.
  • The Pipelines API now supports PATCH requests, allowing you to programatically update your build pipeline configuration.
  • Pipeline response objects now include a badge_url property with the URL to its build badge.
  • The build list APIs have a new finished_from parameter, a finished build state alias, and you now can filter by multiple state values.
  • And finally, our GraphQL beta API has received lots of updates as we move more of our own frontend to be GraphQL powered 💪:graphql:

In addition to the changes we’ve rolled out, here’s a few of the API integrations recently shared by the community:

If you’re using our API in interesting ways, or you find something missing that would help you, send a quick email to support@buildkite.com—we’d love to hear from you ✉️

Happy building! 🎉

Tim

Buildkite Agent 2.1.8

We’ve just released Buildkite Agent v2.1.8 (Triantiwontigongolope 🐛) 🎉

What’s new since v2.1.6? A whole slew of bug reports have been closed, including an important fix for running multiple commands, improved build log streaming performance, and a few handy new features:

  • :amazon-s3: If you use a private S3 bucket for build artifact storage you can now set export a BUILDKITE_S3_ACCESS_URL environment variable to point to your own S3 proxy host (such as s3auth.com or aws-s3-proxy) to view your private artifacts in your web browser directly from the links in the Buildkite web interface 🎉
  • :git: You can set an export a BUILDKITE_GIT_CLEAN_FLAGS environment variable to configure the flags passed to git clean on every build. By default we don't specify -x, which can lead to unexpected files being left around from previous builds if they’re in your git ignore list. In the future we're making -x the default, but in the meantime you can add export BUILDKITE_GIT_CLEAN_FLAGS="-fxd" in your agent’s environment hook and enjoy pristine checkouts.
  • 📦 We now support the armhf architecture, allowing you to run the agent on platforms such as Scaleway.

A big thank you to everyone who contributed bug reports and GitHub pull requests ❤️

These releases have been published to the Buildkite package repositories. For instructions on upgrading your agent please see the Upgrading section in the corresponding section of our installation documentation.

For a full list of what's changed see the GitHub releases page :octocat:

Tim

Buildkite Agent 2.1.6

Hot on the heels of the previous release comes Buildkite Agent 2.1.6. 🔥

In the previous release we changed the way we fetch Git branches and tags. Unfortunately we've discovered that some older versions of Git before 1.9.0 have trouble with the way we were fetching tags. This new version adds backwards compatibility for folks stuck with an older version of Git. 🕙

This release has been published to the Buildkite package repositories. For instructions on upgrading your agent please see the Upgrading section in the corresponding section of our installation documentation.

For a full list of what's changed and downloadable binaries head on over to the GitHub release page. :octocat:

Samuel

Buildkite Agent 2.1.5

We've just released a new Buildkite Agent stable version: 2.1.5 🎉

This release fixes a few minor issues we've seen since the previous stable version, including:

  • Amazon Linux upstart was killing agents too aggressively, causing spurious build failures when auto-scaling (#244)
  • Timeouts were always sending a SIGTERM instead of any configured signal (#215)
  • Fetching specific git commits doesn't fetch refs and was causing checkout failures, and some other minor git fetch issues (#243)

This last issue has been cropping up for several users. It usually looks something like:

1
2
3
4
5
$ git fetch -q origin abc123 2> /dev/null || git fetch -q
$ git reset --hard origin/my-branch
fatal: ambiguous argument 'origin/my-branch': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

This release has been published to the Buildkite package repositories. For instructions on upgrading your agent please see the Upgrading section in the corresponding section of our installation documentation.

For a full list of what's changed and downloadable binaries head on over to the GitHub release page. :github:

Happy building! 😁

Samuel

Projects are now Pipelines

Welcome to the first Changelog update! ✨ This is where we’ll keep you up-to-date with the small improvements we’re constantly rolling out. The big stuff will still make it onto the blog, but if you’re a daily Buildkite user there’s lots of other changes you’ll want to know about.

Now, onto the first update… 😄

You may have noticed that we’ve recently renamed Projects to Pipelines, both in the web interface as well as the API. We’ve been wanting to make this change for a while because there's nothing project-y about Buildkite—we’re not a project management tool, our job is to help you build amazing software delivery pipelines 🔨📦🚀

To coincide with the rename we’ve made a Sample Pipelines GitHub repository to help discover and share the different ways of using pipelines, such as how to dynamically generate pipelines and trigger dependent pipelines. There’s also now a handful of examples for common languages and tools. Please send through a pull request to update the Readme if you have your own example you’d like to share ❤️

You can also use the new \:pipeline\: emoji, perfect for your pipeline upload steps. It looks like this: :pipeline:

The REST API has been bumped to v2, and the webhooks to v3, to incorporate the rename. For the API see our notes for what's changed from v1 to v2, and to upgrade your webhooks simply browse to the webhook and hit the Upgrade button 👍

Tim

Start turning complexity into an advantage

Create an account to get started with a 30-day free trial. No credit card required.

Buildkite Pipelines

Platform

  1. Pipelines
  2. Pipeline templates
  3. Public pipelines
  4. Test Engine
  5. Package Registries
  6. Mobile Delivery Cloud
  7. Pricing

Hosting options

  1. Self-hosted agents
  2. Mac hosted agents
  3. Linux hosted agents

Resources

  1. Docs
  2. Blog
  3. Changelog
  4. Webinars
  5. Plugins
  6. Case studies
  7. Events

Company

  1. About
  2. Careers
  3. Press
  4. Brand assets
  5. Contact

Solutions

  1. Replace Jenkins
  2. Workflows for AI/ML
  3. Testing at Scale

Support

  1. System status
  2. Forum