The Buildkite Agent is an open-source toolkit written in Go for securely running build jobs on any device or network
The de-experimentification release!
ansi-timestamps
experiment is now enabled by default. To remove the
timestamps from your logs, you can pass the --no-ansi-timestamps
flag.flock-file-locks
experiment is now enabled by default. Because the old
and new file lock systems don't interact, we strongly recommend not running
multiple agents of different versions on the same host.inbuilt-status-page
experiment is now enabled by default. For those
running the agent with --health-check-addr
, go to /status
to see a
human-friendly status page.And whatever happened to git-mirrors
? It graduated from experiment-hood in
v3.47.0!
Two new and very noteworthy experiments!
--experiment=polyglot-hooks
the agent can run all sorts of hooks and plugins directly. Combined with --experiment=job-api
, your hooks-of-a-different-language can alter environment variables through the local Job API!--experiment=agent-api
, the agent now has an inbuilt locking service, accessible through new lock
subcommands and also via a Unix socket (like the job-api
).--upload-skip-symlinks
(on artifact upload
) allows skipping symlinks when uploading files. --follow-symlinks
has been deprecated and renamed to --glob-resolve-follow-symlinks
#2072 (@triarius)normalised-upload-paths
experiment was unintentionally left out of the available experiments list #2076 (@MatthewDolan)*_PRIVATE_KEY
to auto-redacted vars #2043 (@moskyb)buildkite:git:commit
meta-data #2054 (@pda)As always, @dependabot and friends have been deep in the update mines ensuring that all of our dependencies are up to date. Thanks, dependabot!
It's a busy one! The major new feature in this release is the job-api
experiment, which enables an HTTP API within the agent that allows jobs to inspect and mutate their environment, without using the normal bash-isms that we normally require. This is a big step towards supporting hooks and plugins in other languages, and we're really excited to see what you all do with it!
When this experiment is enabled, the agent will start an HTTP server on a unix domain socket, the address of which will be made available through the BUILDKITE_AGENT_JOB_API_SOCKET
environment variable, with a token available through the BUILDKITE_AGENT_JOB_API_TOKEN
environment variable. This socket can be used with the buildkite-agent env {get,set,unset}
commands on the commandline, or directly through cURL or other HTTP client. Included in this release of the agent is a golang client, which can be imported directly into your Go projects.
Also included is another experimental feature, descending-spawn-priority
, which makes agents using the --spawn-with-priority
flag spawn agents with a descending priority, rather than the default ascending priority. This is useful when running agents on heterogeneous hardware (ie, having two agents on one machine and four on another), as it means that jobs will be spread more evenly across the agents. For more information, see the original issue, and @DrJosh9000's PR. Huge thanks to @nick-f for bringing this to our attention!
Full changelog follows:
buildx
#2005 (@triarius)descending-spawn-priority
experiment. #2004 (@DrJosh9000)buildkite-agent acknowledgements
#1945 #2000 (@DrJosh9000)/usr/sbin/tini
) in the Ubuntu 20.04 image #1934 (@triarius)ansi-timestamps
experiment enabled, each line's timestamp is now computed at the end of the line #1940 (@DrJosh9000)--git-checkout-flags
/ BUILDKITE_GIT_CHECKOUT_FLAGS
) for passing extra flags to git checkout
#1891 (@jmelahman)pipeline upload
internally uses a new asynchronous upload flow, reducing the number of connections held open #1927 (@triarius)pipeline upload
a malformed pipeline #1963 (@triarius)⚠️ ⚠️ ⚠️
This version of the agent has issues running in --acquire-job
mode
Please use v3.43.1 or later. See #1923 for more info.
⚠️ ⚠️ ⚠️
user.Current
#1910 (@DrJosh9000)agent-startup
hook that fires at the same time as the agent-shutdown
hook is registered #1778 (@donalmacc)finishJob
and onUploadChunk
#1854 (@DrJosh9000)x/crypto/ssh
to 0.3.0
, patching CVE-2020-9283 #1857 (@moskyb)