Custom states for blocked builds

With the new block step attribute, blocked_state, you can specify what state the build should have when it’s blocked by each block step — green passed, yellow running, or red failed.

Screen Shot 2020-09-30 at 10.37.54 am.png

When you’ve got a block step that requires user input, having the build look or behave like it's passed isn’t always what you want. Setting blocked_state will affect the build state within the Buildkite UI, source provider integrations, webhooks, and notifications. This gives you more control over how your builds interact with PRs and custom integrations.

Add the new blocked_state attribute to your block steps to change the blocked status colour from the default green.

Grant

Branch filter pattern changes

You can now mix positive and negative branch filter patterns for more precise control over which branches to build 🔀

Branch filter pattern example: main features/* features/beta

We've done our best to reach out via email if your pipeline already had a mix of patterns that will be affected by this change 👋🏻

If you're seeing unexpected builds, or are left waiting for a build that isn't showing up, we'd suggest a quick review of your pipeline's branch filter patterns.

For more information on branch filter patterns and some example code, check out the updated branch configuration docs.

Samuel

Elastic CI Stack for AWS v5.0.0

We've released a new major version of the Elastic CI Stack 🌈

The latest version includes:

  • Experimental Windows Server 2019 support
  • Support for four new regions: ap-east-1 (Hong Kong), me-south-1 (Bahrain), af-south-1 (Cape Town), eu-south-1 (Milan)
  • Support for managing Agent tokens with AWS SSM
  • A blazing fast Agent Auto Scaler by AWS Lambda - up to 300% faster initial scale-ups compares to previous AutoScaling rules

And much, much more! Check out the full changelog for this release on GitHub.

We'd love for you to share any feedback you have on the v5 announcement post in our forum 🤓

Thank you to the many users who provided bug reports and contributions that made this release possible 💚

Juanito

An all new Timeline tab

Debugging job and agent issues has become a whole lot easier with the shiny updates we've just released to the Timeline tab 📖

timeline-tab.gif

The new and improved Timeline tab has:

  • Live updating with agent events
  • Events from the dispatcher showing when the jobs are scheduled and assigned, and
  • All your job info in one place including concurrency groups, step dependencies, and conditionals

You can find all of these updates under the Timeline tab of any job 🕵🏻‍♀️

Jessica

GitHub App integration

See exactly which repo permissions are requested by Buildkite with our new GitHub App :github:

Installing the Buildkite GitHub App with permissions visibility and repository controls

GitHub Apps create a direct connection between your Buildkite and GitHub organizations, removing reliance on individual user connections. GitHub Organization Admins can then see permissions and manage access on a per-repo basis 🙌🏻

Get started by installing the GitHub App from your Repository Providers page.

Samuel

New Repository Providers page

We've made it easier to manage multiple source control integrations 🔀 You can now find a list of connected and available integrations on the new Repository Providers page

Add Provider interface showing all possible providers including GitHub, GitHub Enterprise Server, and others

Click through to each provider for settings and delete options ⚙️

Sam

Skipped builds now use "error" for GitHub commit statuses

Skipped builds are now marked as an "error" in GitHub commit statuses:

GitHub Commit Status showing a skipped build as errored

Build skipping, available from your Buildkite pipeline settings, saves you time by only testing the latest commit on a branch. Previously, a skipped build created a "success" commit status on GitHub, but this could give the false impression that the tests were run and passed.

The options here are pretty limited, but we've made this change to better reflect that the build is no longer pending, but didn't succeed or fail, it finished unusually.

Running another build on the same commit will replace this error status, and running builds on future commits will correctly update a pull request as expected.

Samuel

Laying the groundwork for Buildkite on Apple Silicon Macs

We’ve taken some steps to ensure that the Buildkite Agent is ready for upcoming Macs running on Apple Silicon. 👩🏻‍💻✨

First things first, we are eagerly anticipating Go, the language the Agent is written in, gaining the ability to build macOS binaries specifically for Apple Silicon, and plan to provide such binaries as soon as it’s feasible to do so.

Currently we suggest the 64-bit Intel amd64 binary, which happily runs under Rosetta 2 on Apple Silicon. 🦾

For those already adventuring on early Apple Silicon Macs, we’ve verified that our Homebrew-based Mac installation instructions work just fine there. Our non-Homebrew and Linux install script has also been updated to ensure it picks the correct binary on Apple Silicon Macs.

Both of these installation options will install the 64-bit Intel binary, and while the Agent itself will run within Rosetta 2, running an Apple Silicon binary or test suite within your builds should work just fine. We don’t anticipate any obvious issues with this configuration, but please report any issues you do encounter to us.

We have also decided to stop providing 32-bit Intel 386 binaries for macOS as of the next Agent release. This is intended to avoid confusion due to the fact that neither current Macs running macOS Catalina nor upcoming Apple Silicon Macs can run them. For those curious, since early 2018, only the 64-bit Intel binaries have been supplied via our Homebrew formula. If you have a specific need for a 32-bit Intel Mac binary, building the Agent yourself will likely work for the foreseeable future.

To the Linux, BSD and Windows users out there; we have no plans to stop providing 32-bit Intel binaries for your platforms. ✌🏼

If you have any questions we haven’t covered here, or run into some issues in your continuing adventures, please let us know via support@buildkite.com.

Jessica

Bazel docs and example pipeline

We've added new documentation on how to run Bazel on Buildkite, including a GitHub repository and example pipeline 📗

Screenshot of Bazel docs

Check out the new Using Bazel on Buildkite documentation for details, with links to the example repository and further reading.

Sam

12 new conditionals now available

Since adding conditionals support we've added the following 11 new variables and one new function 🎉

  • build.env()
  • build.author.email
  • build.author.id
  • build.author.name
  • build.author.teams
  • build.commit
  • build.creator.email
  • build.creator.id
  • build.creator.name
  • build.creator.teams
  • build.pull_request.draft
  • build.source

You can find full descriptions of all the available variables in the Using Conditionals guide, as well as new code samples 💫

Harriet

Blocked builds now considered "Fixed"

Buildkite can send notifications to your favourite Slack channel when your builds have finished. These notifications can be filtered in a few different ways, including to only "failed" and "fixed" builds. Historically, "fixed" meant there was a previous build on the same branch which failed and the new build has passed. Now "fixed" is also sent when a new build becomes blocked.

Notification service settings build state filtering options including failed and fixed options

We've tried to make this change carefully so that existing notifications are mostly unaffected, apart from "fixed" notifications appearing when builds become blocked. If this interrupts your workflow, please reach out via support@buildkite.com.

Samuel

Timed out jobs that exit with 0 will now pass

Previously, the build would consider a timed out job as "failed", regardless of its exit status 🙃

This could sometimes happen if a command finished just as the job was being timed out, or if it had specifically implemented signal handling to gracefully exit.

job-timeout-pass.png

Now, jobs that timeout with an exit status of 0 will be marked as "passed", so you can depend on the exit status as the one source of truth for job status ✅

Harriet

Embed colored terminal output in Annotations

You can now more easily embed colored terminal output in annotations. 🌈

Wrap any ANSI formatted console output in a Markdown block with either the term or terminal syntax:

```term
Fancy \x1b[91mc\x1b[33mo\x1b[93ml\x1b[92mo\x1b[94mr\x1b[95ms\x1b[0m here
```

The ANSI formatting is then rendered for you in the annotation:

Screen Shot 2019-11-06 at 2.48.59 pm edited.png

You can read more about the formatting supported in annotations in the CLI docs.

Jessica

Schedules no longer need a user

Builds created from schedules will no longer be associated with users 🏃🏼‍♂️💨

If a user loses access to a pipeline, either by leaving the organization or changing teams, you won't need to update your schedules to a new owner.

If your schedule is still attached to a user, you'll see the ⚠️ Requires Migration badge. You'll be able to remove the user from the schedule on the build schedule page.

scheduled-build-migration.png

Unmigrated schedules will have their users automatically removed on the 30th of January, 2020. To check your build schedules, see the Schedules section of your Pipeline Settings 👀

Harriet

Identify if you’re running an agent version with known issues

To make it easier to see if you’re running an agent version with a known issue, we've updated the agent list, job timeline, and agent page to show a warning and a link to upgrade instructions 🐛

Screenshot showing an agent with known issues

Upgrade instructions all link to their relevant buildkite-agent GitHub release, so you can dig into the details and find the minimum required version bump.

Tim

Job navigation now stays on-screen as you scroll

To make it easier to navigate long build pages, we’ve updated the job navigation so that it sticks to the top of your browser window as you scroll 🔝

Gif of a set of build jobs being scrolled through. The second is expanded and its header sticks to the top of the screen as the user scrolls revealing more of the log.

Now you can keep your bearings while spelunking through long build output or tracking down that particular artifact 🔍

Jessica

Guidelines for managing pipeline secrets

We've added a new Managing Pipeline Secrets guide to help you understand how to securely store and access secrets, and some of the anti-patterns you should avoid 🔐

Screenshot of the new Managing Pipeline Secrets documentation

Have a read through the recommendations and share it with your team 💪

Harriet

Support for selecting multiple options in block steps

We’ve added a new multiple property to block steps, giving you the ability to select multiple options when unblocking builds ☑️

The pop-up for entering options to a block step, with caption “Deploy To,” and a list of checkboxes for “Regions” with “North America,” “Europe,” “Asia” and “Oceania.” All four are checked.

When the build is unblocked with multiple selected options, the meta-data value will return the options as a newline separated string.

See the block step documentation for more details and examples.

Jessica

View all branches on the pipelines overview page

Your pipeline overview page uses each pipeline’s default branch to calculate the graphs and statistics. We've added support for setting a pipeline's default branch to a blank value (which you can now do directly on the pipelines page), allowing you to see the graphs and stats for all builds in a pipeline 📊

Screenshot showing the new View Builds and Branch Settings options

Harriet

Self-signed certificate support for GitHub Enterprise

To help you get started with GitHub Enterprise installs that use self-signed certificates, we've added the ability to disable TLS certificate verification in your GitHub Enterprise Buildkite settings 🔓

Verify TLS Certificate checkbox — disable verification to allow self-signed certificates

You can find the new setting in your GitHub Enterprise settings, and read more details in our GitHub Enterprise documentation.

Samuel

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. Public pipelines
  3. Test Engine
  4. Package Registries
  5. Mobile Delivery Cloud
  6. Pricing

Hosting options

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

Resources

  1. Docs
  2. Blog
  3. Changelog
  4. Example pipelines
  5. Plugins
  6. Webinars
  7. Case studies
  8. Events
  9. Migration Services
  10. Comparisons

Company

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

Solutions

  1. Replace Jenkins
  2. Workflows for AI/ML
  3. Testing at scale
  4. Monorepo mojo
  5. Bazel orchestration

Legal

  1. Terms of Service
  2. Acceptable Use Policy
  3. Privacy Policy
  4. Subprocessors
  5. Service Level Agreement

Support

  1. System status
  2. Forum
© Buildkite Pty Ltd 2025