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:
1 2 3
```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:
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.
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 π
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 π
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 π
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 βοΈ
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 π
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 π
You can find the new setting in your GitHub Enterprise settings, and read more details in our GitHub Enterprise documentation.
Samuel
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 π
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
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
You can find the updated Environment Variables page under the Pipelines section of the documentation π
Harriet
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 π΅π»ββοΈ
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 π£
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
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 π
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 β¨
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
Harriet
Agent Improvements in v3.6 - v3.8
Happy 2019! To kick off the year, we've got some new agent changes fresh off the press!
Better error messages for cancelled jobs π¨
When a job is cancelled, the agent receives the instruction and starts to shutdown the running job. The job is given 10 seconds to finish, after which it's terminated. Previously what had happened wasn't clear. We now clearly show that a command was interrupted by a signal:
Configurable grace period for cancellation β±
By default we give cancelled jobs 10 seconds to finish before they terminate. For some things like a Terraform tear-down, this can take a lot longer. We added a config of cancel-grace-period
to customize that value.
1 2
# Wait 600 seconds (10 minutes) for cancellation buildkite-agent start --cancel-grace-period 600
Future improvements will allow this to be set at a pipeline or step level.
Checkout directory is removed on error π§Ή
Checkouts can fail for a variety of reasons which can sometimes leave the git repository in a corrupted state that prevents future checkouts.
The default behaviour for the agent is now to remove the checkout directory if there is a terminal checkout failure.
Windows agents run hooks after cancel π£
Windows unfortunately doesn't handle signals like posix systems do, so on Windows the cancellation behaviour was to simple terminate the job. This meant that artifacts weren't uploaded and hooks like pre-exit
didn't run, which left things like docker-compose
without a way to cleanup.
We now use Windows Terminal Process Groups and the CTRL_BREAK
message to emulate signal handling in windows, which now means it should behave much like it's fairer cousins!
Windows gets terminal colors! π
Ok this is a small improvement, but it represents our ongoing efforts to take advantage of the neat things that the Windows Terminal team is doing building for Terminal apps.
Spawn Multiple Agents π
Currently we recommend that multiple agents on a host are run via your init system (launchd, systemd, etc). The new --spawn
feature allows for multiple parallel agents to be spawned from the one installation.
We're still figuring out how this might fit into the bigger picture, but keen to see how folks use this feature!
Datadog metrics (Beta) πΆ
We are working with the Datadog team on becoming an official integration. First steps are getting some simple job metrics into Datadog.
You can use the new config metrics-datadog
and metrics-datadog-host
.
Let us know what you think at https://forum.buildkite.community/t/about-our-datadog-integration/216
Vendored Plugins π¦
We now support loading plugins from within your repository. This lets you vendor plugins to ensure that a third-party can't change them.
1 2 3 4 5
steps: - label: 'Test with vendored docker plugin' plugins: - './.buildkite/plugins/docker': image: 'hello-world'
Check out https://github.com/buildkite/agent/pull/878 for a bit more context.
Resolve $BUILDKITE_COMMIT correctly at pipeline upload βοΈ
We now resolve manually triggered builds with a commit of HEAD
to the actual commit value in $BUILDKITE_COMMIT for your pipeline uploads.
See https://github.com/buildkite/agent/issues/456 for more context. I'm sorry it took us so long!
Better handling of submodules π§€
We discovered a few gnarly bugs where we weren't ssh keyscanning submodules correctly and also a few cases where we weren't cleaning up lingering submodules in the checkout phase. These are now squashed!
Lachlan
New π Sticker in the Buildkite Shop
Everyone's favourite illustration from the Buildkite website has been repackaged and deployed as a set of transparent stickers, ready for you to launch onto any surface you choose β¨
You can order your own set of π stickers from the Buildkite Shop.
Ben
Link to jobs from annotations
You can now link directly to a job from a build annotation! π
This should make the annotations generated by neat annotation generators like test-summary-buildkite-plugin and rspec-buildkite all the more handy.
Jessica
Elastic Stack for AWS v4.0.0
We've released a new major version of Elastic Stack for AWS.
The Buildkite Elastic CI Stack gives you a private, autoscaling Buildkite Agent cluster. Use it to parallelize legacy tests across hundreds of nodes, run tests and deployments for all your Linux-based services and apps, or run AWS ops tasks.
The new version is focused on moving the underlying instances to Amazon Linux 2, which brings with it modern versions of systemd
amongst others.
Check out the full release notes at https://github.com/buildkite/elastic-ci-stack-for-aws/releases/tag/v4.0.0 and let us know what you think at https://forum.buildkite.community/t/upcoming-elastic-stack-v4/78.
Lachlan
New Screencast: Docker
There's a new screencast available at buildkite.com/screencasts/docker π
The Docker screencast walks through a Docker workflow in Buildkite: building, testing, and deploying an image to production. The pipeline and code you'll see in the screencast are also available on GitHub: https://github.com/buildkite/screencast-examples/
You can check out the Docker screencast, and all the others, at buildkite.com/screencasts
Harriet
Start turning complexity into an advantage
Create an account to get started with a 30-day free trial. No credit card required.