Changelog

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

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

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

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

Removal of the “All Organizations” scope for API Access Tokens

To improve API Access Token security we have removed the “All Organizations” scope from tokens. When managing your tokens you now explicitly select each organization 🔐

Screenshot of the New API Access Token form

If you had tokens with “All Organizations” scopes, they have been automatically migrated and include all of your current organization memberships. When you join a new Buildkite organization, and wish to grant a token access to its data, you must edit the token's settings and select the new organization.

You can manage your tokens on the API Access Tokens Settings page.

Lachlan

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 🎈

1
2
3
4
5
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

Time formatting now respects your language settings

We've updated the way times are displayed, and they now respect your browser’s preferred language settings 🌏

For example, if your browser’s preferred language is set to Bokmål or Deutsch, Buildkite will now show 14:17 instead of 2:17 PM ⏰

Screenshot showing new times

Jessica

Updated Environment Variables documentation

The Environment Variables documentation has had a major update 🤩

🌈A new layout ⚡️A new section for deprecated variables 🍩Many previously undocumented variables added 💥Expanded descriptions

Screen Shot 2019-04-05 at 2.08.19 pm.png

You can find the updated Environment Variables page under the Pipelines section of the documentation 🚀

Harriet

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

New Agent Tokens documentation

We’ve added a new Agent Tokens page to the documentation. It explains default organization tokens, creating and revoking tokens using GraphQL, session token exchange, and more 🕵🏻‍♀️

Screen Shot 2019-03-06 at 12.27.32 pm.png

You can find the new Agent Tokens page under the Agent section of the documentation 🎊

Harriet

Upgrades to Single Sign-On support

We've been rolling out some big upgrades to Buildkite’s Single Sign-On (SSO) support based on your feedback 📣

tomatoes-inc.png

The upgrades to Single Sign-On include:

  • Admins can now invite users into an SSO organization prior to them joining, along with team membership.
  • Team membership can now be passed through as a SAML user attribute.
  • Contractors and bots can be added to an organization using any email domain.
  • SSO can be made optional for some users, allowing you to have a "break glass" account in the case of your SSO provider being unavailable.
  • People can participate in multiple Buildkite organizations with SSO enabled, and easily switch between them.

If your organization hasn't already made the switch, we'll be automatically moving your Buildkite organization to the new version of SSO over the next few weeks. There will be no interruption to your logins, and it won't require any changes to your SSO provider setup.

If you have any questions please email support@buildkite.com, and you can read more about SSO updates in our community forum post 😊

Lachlan

Unblocker environment variables

Block steps record the person who unblocks them, and this information is available to subsequent steps via $BUILDKITE_UNBLOCKER environment variables. 👮‍♂️

List of unblocker environment variables from the documentation linked earlier

Due to a quirk in our job environment calculations, these variables were only available in steps that were pipeline uploaded after the block step. This has been fixed, so now all steps after a block step will have the correct unblocker environment variables, no matter how they’re defined or uploaded. 💯

So if you upload a deployment pipeline like this: 💁‍♀️

Deployment pipeline with block step still blocked and a subsequent waiting command job

The $BUILDKITE_UNBLOCKER environment variables will be set to the person who presses the Deploy button: 🙋‍♀️

Block step which has been unblocked and a completely command job with the unblocker's name

You can read more about block steps in our documentation. 📚

Samuel

Build messages are now optional

To make testing new pipelines easier, you no longer need to specify the "Message" of a build. Buildkite now automatically resolves the message, based on the git commit, when the build starts 🎉

Screenshot of the New Build dialog

We've also updated the Builds REST API and GraphQL API so your integrations can take advantage of this too.

Keith

SSO setup guides now available

We've added a new SSO section to the documentation, with instructions for setting up Single-Sign On with Google OAuth, Okta, OneLogin, and ADFS, and custom SAML providers ✨

sso.png

You can now also find step-by-step instructions for managing SSO with GraphQL, allowing you to enable, disable and update your SSO settings via the Buildkite GraphQL API :graphql:

Harriet

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

Updated syntax for using plugins in your pipeline YAML

Back in October, Buildkite Agent v3.5.0 included a bug fix to ensure that plugins are always executed in the correct order. In the process of fixing that bug, we've updated our recommended syntax for using plugins to use an array instead of a map, to make it clearer that the plugins are executed in order.

For example, if your pipeline uses the following syntax, we recommend updating it:

1
2
3
4
5
6
7
steps:
  - label: '<img class="emoji not-prose size-[1em] inline align-[-0.1em]" title="shipit" alt=":shipit:" src="https://buildkiteassets.com/emojis/img-buildkite-64/shipit.png" draggable="false" />'
    plugins:
      docker-login#v2.0.1:
        username: ci
      docker-compose#v2.6.0:
        push: app

The new recommended syntax, which works on all versions of the Buildkite Agent, changes the plugin property to be an array:

1
2
3
4
5
6
7
steps:
  - label: '<img class="emoji not-prose size-[1em] inline align-[-0.1em]" title="shipit" alt=":shipit:" src="https://buildkiteassets.com/emojis/img-buildkite-64/shipit.png" draggable="false" />'
    plugins:
      - docker-login#v2.0.1:
          username: ci
      - docker-compose#v2.6.0:
          push: app

Harriet

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

A new artifact delete button and two new delete APIs

You can now delete artifacts that you no longer want stored on Buildkite with the new delete button in the Artifacts tab:

preview-chat-artifact-loop.gif

When you delete an artifact, it's permanently deleted from our AWS S3 storage and removed from the job’s artifact list. If you’re using your own S3 bucket or Google Cloud Storage bucket for artifact storage, you'll need to manually remove them from your artifact store (don’t worry, we'll remind you to do this in the confirmation message).

If you’re performing deletions over a large number of builds, or wanting to automate deletion in general, we've updated the REST APIs to add support both artifact deletion and job log deletion.

Eleanor

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