Access build annotations via the REST API

Weโ€™ve added the annotations endpoint to our REST API for retrieving a buildโ€™s annotations ๐Ÿ—ƒ

The data is presented as rendered HTML (the same HTML we use within the app) within a JSON body, alongside everything else you might want to know about the annotation.

annotations-api-output.png

You can read more about this addition in the Annotations API documentation ๐Ÿ“–

Jessica

Deploying with Buildkite

Thereโ€™s a whole new section in the docs: โœจDeployments โœจ

Here you'll find common patterns for deployments with code samples and walkthroughs, as well as how to add manual approval steps, and working with external deployment systems.

deployment-overview.png

Also new in the deployments section is our guide to Deploying with Kubernetes: a complete walk-through of setting up your Buildkite pipeline to deploy to your Kubernetes cluster :kubernetes:

Check it all out in the new Deployments section ๐Ÿ“š

Harriet

New Artifactory support and documentation

We've added new documentation on Buildkite Agent's new Artifactory support for uploading build artifacts to JFrog's Artifactory ๐ŸŽ‰

There is now first-class support for uploading your artifacts directly to your Artifactory instance.

artifactory settings.png

artifactory upload.png

To learn more about Artifactory and our technology partnership, head to the JFrog Partner website. To learn more about Buildkite's built-in Artifactory support, see our new Artifactory guide ๐Ÿ‘€

Harriet

Conditional expressions for pipeline steps

We've added a new if property that uses a boolean expression to decide whether a step will be run or skipped ๐Ÿ’ซ

You could previously use the branches property to limit the running of a step based on which branch you were building, but this new option allows more complex conditions ๐Ÿ˜Ž

steps:
  - label: '๐Ÿ’จ Smoke Test'
    command: smoke-test.sh
    if: "build.branch == 'master' || build.message =~ /\\[smoke\\]/i"

The if property is available on all step types; check out the Using Conditionals documentation for details!

Matthew

Audit old and unused API tokens with API Access Audit

We've added a new API Access Audit section in your Organization Settings, so you can identify old and unused tokens, and revoke their access to your organizationโ€™s data ๐Ÿ•ต๏ธ

Searching for tokens using the new API Access Audit page

As well as sorting by usage or age, and searching by scope, you can search for the a full token value โ€”ย allowing you to inspect and revoke a token you've access to.

You can read all about it in the new Managing API Access documentation, and if youโ€™re an organization admin you can find the new API Access Audit section in your Organization Settings.

Eleanor

Buildkite socks now available in the Shop ๐Ÿงฆ

The swag you've all been waiting for is finally available in the shop: Buildkite socks ๐Ÿงฆ

Our socks are pure cotton and are available in Small, Medium, and Large. Get your hands (or paws๐Ÿพ) on a pair here: https://shop.buildkite.com/products/socks

Harriet

Configure and manage your single sign-on providers

We've added a new Single Sign-On section to your Buildkite organization settings, allowing you to setup, test, activate and manage your SSO configuration:

Add SSO Provider Buildkite organization settings screenshot

See the SSO documentation for all the details, and how to get started.

Eleanor

Scheduled Builds now allow specifying a time zone

Weโ€™ve added support for setting the timezone of your Scheduled Builds, so youโ€™re no longer limited to just UTC โฐ

Screenshot of a Cron Interval field filled in with โ€œ0 11 * * * America/Vancouverโ€ filled in

As an added bonus, if you specify a timezone it will automatically handle changes such as daylight savings ๐ŸŽ‰

You can read more about the new timezone support in the updated Scheduled Builds documentation.

Jessica

Link directly to build annotations

We've added the ability to link to build annotations, so you can more easily share them with your team, and link to them in your build output ๐Ÿ”—

Screenshot of the link on a build annotation

You can find an annotation's link using the coloured bar on the left, or you can add #annotation-<context> to the build page's URL. For example, if the annotation has the context coverage, you'd add #annotation-coverage to the build page's URL.

See the buildkite-agent annotate documentation for information on adding and updating build annotations.

Jessica

Support for rotating pipeline webhook URLs

We've added a pipelineRotateWebhookURL GraphQL mutation for rotating the webhook URL that connects a pipeline with your source control. And a github-webhook-rotate CLI tool for automating the process with GitHub ๐ŸŒช

Screenshot of the CLI tool

You can find the CLI tool on GitHub at buildkite/github-webhook-rotate, and the GraphQL mutation documentation by searching for pipelineRotateWebhookURL in the GraphQL Explorer.

Lachlan

Inspect and revoke API Access Tokens via the REST API

We've added a new set of REST APIs for managing an API Access Token, including the ability to immediately revoke the current token ๐Ÿ—‘

Screenshot of API Access Token revoke documentation

See the API Access Token REST API documentation for more details.

Tim

IP limiting for self hosted source code

To help increase the security between Buildkite and your Github Enterprise, Gitlab Community/Enterprise, or Bitbucket Server, you can now limit which IP address ranges are allowed to send build events to Buildkite ๐Ÿšง

59244902-bfd69580-8c59-11e9-9380-90a215798252.png

You can configure the new IP restrictions using the "Allowed IP Addresses" fields in your Buildkite Organization Settings.

Justin

Compromised password protection

To protect accounts from being accessed using compromised passwords, we've integrated haveibeenpwned.com into all of our authentication systems, allowing us to verify that known compromised passwords can't be used to access Buildkite data ๐Ÿšท

Settings 2019-06-19 12-42-09.png

The integration with haveibeenpwned.com uses a technique called k-anonymity hashes, which hashes the password and sends only the first few characters, ensuring there's little risk of disclosing information about your password.

Lachlan

Trigger builds on GitHub fork creation

In addition to running builds when code is pushed to GitHub forks, you can now trigger builds when forks are created ๐Ÿฝ๐Ÿค–

Screenshot of Buildkite GitHub Settings

You can use fork events to automatically provision staging environments for example, or to automate other aspects of your fork-based workflows.

Support for the fork event is supported for both GitHub and GitHub Enterprise, and can be configured from your pipelineโ€™s GitHub or GitHub Enterprise Settings.

Justin

New in the Elastic Stack: Experimental Lambda-based Scaler

The latest version of the stack, v4.3.1, introduces a new parameter: EnableExperimentalLambdaBasedAutoscaling. When set to true it will disable the default Amazon-AutoScaling-powered scaling behavior in favor of a Lambda that handles the scale-out.

The result is a much, much faster scale-out and a much simpler scale-in process that no longer requires lifecycled ๐ŸŽ‰

For more information on this parameter, check out our Forum post about it: Experimental Lambda-based Scaler.

Harriet

Command steps can now be made to soft fail

We've added a new soft_fail property to command steps, so you can ensure that some jobs never fail the build ๐ŸŽˆ

steps:
  - label: '๐Ÿ’จ Smoke Test'
    command: smoke-test.sh
    soft_fail:
      - exit_status: 1

To ensure you're not swallowing unintended errors, soft failures can be configured to handle specific exit statuses. And if a job soft fails, it'll be marked in the pipeline with a red warning icon, letting you keep an eye on it:

A build with a soft-failed step completing and passing

You can read more about the new soft_fail property in the Command Step documentation.

Justin

View pipeline uploads in the job Timeline tab

To help debug your dynamic pipeline uploads you can now view pipeline uploads in the job Timeline tab ๐Ÿ†™

Gif showing expanding the pipeline upload in the Timeline tab

We've also made the job concurrency configuration clearer, by including the concurrency group and limit in the "Job created" timeline item:

Screenshot of the concurrency details in the Timeline tab

Tim

Buildkite Changelog now has an Atom feed

You can now pipe updates from the Buildkite Changelog directly into your Slack channels, or other team chat tool, using the new Atom feed ๐Ÿถ๐Ÿ—ž

Screenshot of the Changelog feed in Buildkite Community Chat Slack's announcements channel

If you use Slack, see Slackโ€™s guide to adding feeds. If you use other tools, or you need the full feed URL, you can access the new feed at https://buildkite.com/changelog.atom โœจ

Lachlan

Public build pages for open source

Buildkite pipelines can now made publicly visible, allowing them to be opened up to the world for the first time! ๐ŸŒ

Screen Shot 2019-02-06 at 6.11.20 pm.png

If youโ€™re an account admin, you can enable read-only public access for a pipeline from the pipeline settings page.

Many customers and projects are already using them, such as Angular.js and Bazel, and we'd love to read any feedback or ideas you might have on our new beta community forum.

Public pipelines are just the first in a series of improvements we have coming for open-source projectsโ€”weโ€™re just getting started!

p.s. Did you know we offer free plans for open source projects? ๐Ÿ˜˜

Justin

Run pipelines locally with bk cli ๐Ÿค–

We've been working on a command-line tool for Buildkite for a while. Recently it's been upgraded with a local pipeline runner for testing out pipelines locally on your development machine.

We use this for testing plugins, and quickly iterating on pipelines in development. Secretly, it was just an experiment to use the image support in iTerm 2 for rendering inline custom emojis ๐Ÿ˜‰๐Ÿ’ฅ

render1549343670295.gif

Download the latest release and let us know what you think.

Lachlan

Start turning complexity into an advantage

Create an account to get started for free.

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
  11. CI/CD perspectives

Company

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

Solutions

  1. Replace Jenkins
  2. Workflows for MLOps
  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
  6. Supplier Code of Conduct
  7. Modern Slavery Statement

Support

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