A few months ago we released a new version of the Buildbox Agent that was rewritten entirely in Golang. Today we’re releasing version 0.2 of the agent, composed of almost 100 commits with some exciting new features.
You can already upload build artifacts and have them available in the UI, but now you can download the artifacts via the command line in a build step.
$ buildbox-artifact download "pkg/build.tar.gz" pkg/
This will download the
pkg/build.tar.gz file from a previous step, and put it in the local
pkg folder. This is handy when you want to build assets or binaries in one build step and ship them off to production servers in a later build step (even from an agent running on a different server).
buildbox-artifact also supports wildcards like so:
$ buildbox-artifact download "*.tar.gz" pkg/
This will download all the
.tar.gz files that have been uploaded across all previous build steps. You can download an artifact from a particular build step using the
$ buildbox-artifact download "build.zip" tmp/ --job "build"
This will download the
build.zip file from the "build" pipeline step.
buildbox-agent ships with a new tool,
buildbox-data, allowing you to set and get arbitrary metadata on builds. Think of it like a per-build key/value store. It’s useful when you’ve got multiple steps in your build and you need to pass data from one step to another. The API is simple:
$ buildbox-data set "foo" "bar" $ buildbox-data get "foo"
Build metadata can also be managed and queried via the API.
Improved Process Killing
We’ve improved how processed get killed (triggered when cancelling a build). Previously processes were sent a
SIGTERM signal, and if the process ignored the signal you'd be left with a rogue process running on your build machine. We now send the same
SIGTERM signal, but if the process fails to respond we send it a
SIGKILL. We also now make sure child processes are killed when the main process does.
We now use logrus for logging. Taking advantage of the logging levels meant we could remove a lot of boilerplate code around logging. You can see debugging information from the agent (as well as
buildbox-artifact) using the
How to Upgrade
A couple of shout-outs to some people that really helped with this release: Don Pinkster from MoneyBird, Mark Wolfe and Theo Julienne from Ninja Blocks, and Samuel Cochran from Envato. Thank you so much ❤️❤️