All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Add support for agent tracing using Datadog APM #1273 (goodspark, Sam Schlegel)
- Improvements to ARM64 support (i.e. Apple Silicon/M1) #1346, #1354, #1343 (ticky)
- Add a Linux ppc64 build to the pipeline #1362 (ticky)
- Agent can now upload artifacts using AssumedRoles using
BUILDKITE_S3_SESSION_TOKEN
#1359 (grahamc) - Agent name
%spawn
interpolation to deprecate/replace%n
#1377 (ticky)
- Compile the darwin/arm64 binary using go 1.16rc1 #1352 (yob) #1369 (chloeruka)
- Use Docker CLI packages, update Docker Compose, and update centos to 8.x #1351 (RemcodM)
v3.26.0 (2020-12-03)
- Compile an experimental native executable for Apple Silicon #1339 (yob)
- Using a pre-release version of go, we'll switch to compiling with go 1.16 once it's released
- Install script: use the arm64 binary for aarch64 machines #1340 (gc-plp)
- Build with golang 1.15 #1334 (yob)
- Bump alpine docker image from alpine 3.8 to 3.12 #1333 (yob)
- Upgrade docker ubuntu to 20.04 focal #1312 (sj26)
v3.25.0 (2020-10-21)
- Add --mirror flag by default for mirror clones #1328 (chrislloyd)
- Add an agent-wide shutdown hook #1275 (goodspark) #1322 (pda)
- Improve windows telemetry so that we report the version accurately in-platform #1330 (yob) #1316 (yob)
- Ensure no orphaned processes when Windows jobs complete #1329 (yob)
- Log error messages when canceling a running job fails #1317 (yob)
- gitCheckout() validates branch, plus unit tests #1315 (pda)
- gitFetch() terminates options with -- before repo/refspecs #1314 (pda)
v3.24.0 (2020-09-29)
- Fix build script #1300 (goodspark)
- Fix typos #1297 (JuanitoFatas)
- Fix flaky tests: experiments and parallel tests don't mix #1295 (pda)
- artifact_uploader_test fixed for Windows. #1288 (pda)
- Windows integration tests: git file path quirk fix #1291 (pda)
- git-mirrors: set BUILDKITE_REPO_MIRROR=/path/to/mirror/repo #1311 (pda)
- Truncate BUILDKITE_MESSAGE to 64 KiB #1307 (pda)
- CI: windows tests on queue=buildkite-agent-windows without Docker #1294 (pda)
- buildkite:git:commit meta-data via stdin; avoid Argument List Too Long #1302 (pda)
- Expand the CLI test step #1293 (ticky)
- Improve Apple Silicon Mac support #1289 (ticky)
- update github.com/urfave/cli to the latest v1 release #1287 (yob)
v3.23.1 (2020-09-09)
v3.23.0 (2020-09-04)
- New artifact search subcommand #1278 (chloeruka)
- Add sidecar agent suitable for being shared via volume in ECS or Kubernetes #1218 (keithduncan) #1263 (yob)
- We now fetch amd64 binaries on Apple Silicon Macs in anticipation of new macOS ARM computers #1237 (ticky)
- Opt-in experimental
resolve-commit-after-checkout
flag to resolveBUILDKITE_COMMIT
refs (e.g. "HEAD") to a commit hash #1256 (jayco) - Experimental: Build & publish RPM ARM64 package for aarch64 #1243 (chloeruka) #1241 (chloeruka)
- Stop building i386 for darwin after 14 years of amd64 Mac hardware #1238 (pda)
- Updated github.com/urfave/cli to v2 - this is the CLI framework we use for agent commands. #1233 (yob) #1250 (yob)
- Send the reported system and machine names when fetching latest release #1240 (ticky)
- Bump build environment from go 1.14.2 to 1.14.7 #1235 (yob) #1262 (yob)
- Update aws-sdk-go to 1.32.10 #1234 (yob)
git-mirrors
experiment now only fetches branch instead of a full remote update #1112 (lox)- Hooks can introduce empty environment variables #1232 (pda)
- ArtifactUploader now deduplicates upload file paths #1268 (pda)
- Added additional logging to artifact uploads #1266 (yob) #1265 (denbeigh2000) #1255 (yob)
- Fail faster when uploading an artifact > 5Gb to unsupported destinations #1264 (yob)
- Job should now reliably fail when process.Run() -> err #1261 (sj26)
- Fix checkout failure when there is a file called HEAD in the repository root #1223 (zhenyavinogradov) #1260 (pda)
- Enable
BUILDKITE_AGENT_DEBUG_HTTP
in jobs if it's enabled in the agent process #1251 (yob) - Avoid passing nils to Printf() during HTTP Debug mode #1252 (yob)
- Allow
BUILDKITE_CLEAN_CHECKOUT
to be set via hooks #1242 (niceking) - Add optional brackets to file arg documentation #1276 (harrietgrace)
- Reword artifact shasum documentation #1229 (vineetgopal)
- Provide example dogstatsd integration options #1219 (GaryPWhite)
- submit basic OS info when registering from a BSD system #1239 (yob)
- Various typo fixes and light refactors #1277 (chloeruka) #1271 (pda) #1244 (pda) #1224 (plaindocs)
v3.22.1 (2020-06-18)
- Wrap calls for GCP metadata in a retry #1230 (jayco)
- Accept
--experiment
flags in all buildkite-agent subcommands #1220 (ticky) - buildkite/interpolate updated; ability to use numeric default #1217 (pda)
v3.22.0 (2020-05-15)
- Experiment:
normalised-upload-paths
Normalise upload path to Unix/URI form on Windows #1211 (@ticky) - Improve some outputs for error timers #1212 (@ticky)
v3.21.1 (2020-05-05)
- Rebuild with golang 1.14.2 to fix panic on some linux kernels #1213 (@zifnab06)
v3.21.0 (2020-05-05)
- Add a retry for errors during artifact search #1210 (@lox)
- Fix checkout dir missing and hooks failing after failed checkout retries #1192 (@sj26)
- Bump golang build version to 1.14 #1197 (@yob)
- Added 'spawn=1' with to all .cfg templates #1175 (@drnic)
- Send more signal information back to Buildkite #899 (@lox)
- Updated artifact --help documentation #1183 (@pda)
- Remove vendor in favor of go modules #1117 (@lox)
- Update crypto #1194 (@gavinelder)
v3.20.0 (2020-02-10)
- Multiple plugins can provide checkout & command hooks #1161 (@pda)
v3.19.0 (2020-01-30)
- Fix plugin execution being skipped with duplicate hook warning #1156 (@toolmantim)
- minor changes #1151 #1154 #1149
v3.18.0 (2020-01-21)
- Hooks can be written in PowerShell #1122 (@pdemirdjian)
- Ignore multiple checkout plugin hooks #1135 (@toolmantim)
- clicommand/annotate: demote success log from Info to Debug #1141 (@pda)
- Fix AgentPool to disconnect if AgentWorker.Start fails #1146 (@keithduncan)
- Fix run-parts usage for CentOS docker entrypoint #1139 (@moensch)
v3.17.0 (2019-12-11)
- CentOS 7.x Docker image #1137 (@moensch)
- Added --acquire-job for optionally accepting a specific job #1138 (@keithpitt)
- Add filter to remove passwords, etc from job output #1109 (@dbaggerman)
- Allow fetching arbitrary tag=suffix pairs from GCP/EC2 meta-data #1067 (@plasticine)
- Propagate signals in intermediate bash shells #1116 (@lox)
- Detect ansi clear lines and add ansi timestamps in ansi-timestamps experiments #1128 (@lox)
- Added v3 for better go module support #1115 (@sayboras)
- Convert windows paths to unix ones on artifact download #1113 (@lox)
v3.16.0 (2019-10-14)
- Add ANSI timestamp output experiment #1103 (@lox)
- Avoid destroying the checkout on specific git errors #1104 (@lox)
v3.15.2 (2019-10-10)
- Support GS credentials via BUILDKITE_GS_APPLICATION_CREDENTIALS #1093 (@GaryPWhite)
- Add --include-retried-jobs to artifact download/shasum #1101 (@toolmantim)
v3.15.1 (2019-09-30)
- Fix a race condition that causes panics on job accept #1095 (@lox)
v3.15.0 (2019-09-17)
- Let the agent serve a status page via HTTP. #1066 (@philwo)
- Only execute the "command" hook once. #1055 (@philwo)
- Fix goroutine leak and memory leak after job finishes #1084 (@lox)
- Allow gs_downloader to use GS_APPLICATION_CREDENTIALS #1086 (@GaryPWhite)
- Updates to
step update
and addedstep get
#1083 (@keithpitt)
v3.14.0 (2019-08-16)
- Fix progress group id in debug output #1074 (@lox)
- Avoid os.Exit in pipeline upload command #1070 (@lox)
- Reword the cancel-grace-timeout config option #1071 (@toolmantim)
- Correctly log last successful heartbeat time. #1065 (@philwo)
- Add a test that BUILDKITE_GIT_SUBMODULES is handled #1054 (@lox)
- Added feature to enable encryption at rest for artifacts in S3. #1072 (@wolfeidau)
- If commit is HEAD, always use FETCH_HEAD in agent checkout #1064 (@matthewd)
- Updated
--help
output in the README and include more stuff in the "Development" section #1061 (@keithpitt) - Allow signal agent sends to bootstrap on cancel to be customized #1041 (@lox)
- buildkite/pipeline.yaml etc in pipeline upload default search #1051 (@pda)
- Move plugin tests to table-driven tests #1048 (@lox)
v3.13.2 (2019-07-20)
- Fix panic on incorrect token #1046 (@lox)
- Add artifactory vars to artifact upload --help output #1042 (@harrietgrace)
- Fix buildkite-agent upload with absolute path (regression in v3.11.1) #1044 (@petercgrant)
- Don't show vendored plugin header if none are present #984 (@lox)
v3.13.1 (2019-07-08)
- Add meta-data keys command #1039 (@lox)
- Fix bug where file upload hangs and add a test #1036 (@lox)
- Fix memory leak in artifact uploading with FormUploader #1033 (@lox)
- Add profile option to all cli commands #1032 (@lox)
v3.13.0 (2019-06-12)
- Quote command to git submodule foreach to fix error with git 2.20.0 #1029 (@lox)
- Refactor api package to an interface #1020 (@lox)
v3.12.0 (2019-05-22)
- Add checksums for artifactory uploaded artifacts #961 (@lox)
- Add BUILDKITE_GCS_PATH_PREFIX for the path of GCS artifacts #1000 (@DoomGerbil)
- Don't force set the executable bit on scripts to be set #1001 (@kuroneko)
- Deprecate disconnect-after-job-timeout #1009 (@lox)
- Update Ubuntu docker image to docker-compose 1.24 #1005 (@pecigonzalo)
- Update Artifactory path parsing to support windows #1013 (@GaryPWhite)
- Refactor: Move signal handling out of AgentPool and into start command #1012 (@lox)
- Refactor: Simplify how we handle idle timeouts #1010 (@lox)
- Remove api socket proxy experiment #1019 (@lox)
- Remove msgpack experiment #1015 (@lox)
v3.11.5 (2019-05-13)
- Fix broken signal handling #1011 (@lox)
- Update Ubuntu docker image to docker-compose 1.24 #1005 (@pecigonzalo)
v3.11.4 (2019-05-08)
- Fix bug where disconnect-after-idle stopped working #1004 (@lox)
v3.11.3 (2019-05-08)
- Prevent host tags from overwriting aws/gcp tags #1002 (@lox)
- Replace signalwatcher package with os/signal #998 (@lox)
- Only trigger idle disconnect if all workers are idle #999 (@lox)
v3.11.2 (2019-04-20)
- Send logging to stderr again #996 (@lox)
v3.11.1 (2019-04-20)
- Ensure heartbeats run until agent is stopped #992 (@lox)
- Revert "Refactor AgentConfiguration into JobRunnerConfig" to fix error accepting jobs#993 (@lox)
v3.11.0 (2019-04-16)
- Allow applying ec2 tags when config tags are empty #990 (@vanstee)
- Upload Artifactory artifacts to correct path #989 (@GaryPWhite)
- Combine apache and nginx sources for mime types. #988 (@blueimp)
- Support log output in json #966 (@lox)
- Add git-fetch-flags #957 (@lox)
v3.10.4 (2019-04-05)
- Fix bug where logger was defaulting to debug #974 (@lox)
- Fix race condition between stop/cancel and register #971 (@lox)
- Fix incorrect artifactory upload url #977 (@GaryPWhite)
v3.10.3 (2019-04-02)
- Fix bug where ec2 tags aren't added correctly #970 (@lox)
- Fix bug where host tags overwrite other tags #969 (@lox)
v3.10.2 (2019-03-31)
- Update artifatory uploader to use the correct PUT url #960 (@GaryPWhite)
- Refactor: Move logger.Logger to an interface #962 (@lox)
- Refactor: Move AgentWorker construction and registration out of AgentPool #956 (@lox)
v3.10.1 (2019-03-24)
- Fix long urls for artifactory integration #955 (@GaryPWhite)
v3.10.0 (2019-03-12)
- Experimental shared repositories (git mirrors) between checkouts #936 (@lox)
- Support disconnecting agent after it's been idle for a certain time period #932 (@lox)
- Restart agents on SIGPIPE from systemd in systemd units #945 (@lox)
v3.9.1 (2019-03-06)
- Allow the Agent API to reject header times #938 (@sj26)
- Increase pipeline upload retries on 5xx errors #937 (@toolmantim)
- Pass experiment environment vars to bootstrap #933 (@lox)
v3.9.0 (2019-02-23)
- Artifactory artifact support #924 (@GaryPWhite)
- Add a
--tag-from-gcp-labels
for loading agent tags from GCP #930 (@conorgil) - Add a
--content-type
toartifact upload
to allow specifying a content type #912 (@lox) - Filter env used for command config out of environment #908 (@lox)
- If BUILDKITE_REPO is empty, skip checkout #909 (@lox)
- Terminate bootstrap with unhandled signal after cancel #890 (@lox)
- Fix a race condition in cancellation #928 (@lox)
- Make sure checkout is removed on failure #916 (@lox)
- Ensure TempDir exists to avoid errors on windows #915 (@lox)
- Flush output immediately if timestamp-lines not on #931 (@lox)
v3.8.4 (2019-01-22)
- Fix and test another seg fault in the artifact searcher #901 (@lox)
- Fix a seg-fault in the artifact uploader #900 (@lox)
v3.8.3 (2019-01-18)
- Retry forever to upload job chunks #898 (@keithpitt)
- Resolve ssh hostname aliases before running ssh-keyscan #889 (@ticky)
v3.8.2 (2019-01-11)
- Fix another segfault in artifact download #893 (@lox)
v3.8.1 (2019-01-11)
- Fixed two segfaults caused by missing loggers #892 (@lox)
v3.8.0 (2019-01-10)
- Support absolute paths on Windows for config #881 (@petemounce)
- Show log output colors on Windows 10+ #885 (@lox)
- Better cancel signal handling and error messages in output #860 (@lox)
- Use windows console groups for process management #879 (@lox)
- Support vendored plugins #878 (@lox)
- Show agent name in logger output #880 (@lox)
- Change git-clean-flags to cleanup submodules #875 (@lox)
v3.7.0 (2018-12-18)
- Fixed bug where submodules hosts weren't ssh keyscanned correctly #876 (@lox)
- Add a default port to metrics-datadog-host #874 (@lox)
- Hooks can now modify $BUILDKITE_REPO before checkout to change the git clone or fetch address #877 (@sj26)
- Add a configurable cancel-grace-period #700 (@lox)
- Resolve BUILDKITE_COMMIT before pipeline upload #871 (@lox)
v3.6.1 (2018-12-13)
- Add another search path for config file on Windows #867 (@petemounce)
- Exclude headers from timestamp-lines output #870 (@lox)
v3.6.0 (2018-12-04)
- Fix bug that caused an extra log chunk to be sent in some cases #845 (@idledaemon)
- Don't retry checkout on build cancel #863 (@lox)
- Add buildkite-agent.cfg to docker images #847 (@lox)
- Experimental
--spawn
option to spawn multiple parallel agents #590 (@lox) - Update: This feature is now super stable. - Add a linux/ppc64le build target #859 (@lox)
- Basic metrics collection for Datadog #832 (@lox)
- Added a
job update
command to make changes to a job #833 (@keithpitt) - Remove the checkout dir if the checkout phase fails #812 (@lox)
- Add tests around gracefully killing processes #862 (@lox)
- Removes process callbacks and moves them to job runner #856 (@lox)
- Use a channel to monitor whether process is killed #855 (@lox)
- Move to golang 1.11 #839 (@lox)
- Add a flag to disable http2 in the start command #851 (@lox)
- Use transparent for golang http2 transport #849 (@lox)
v3.5.4 (2018-10-24)
- Prevent docker image from crashing with missing config error #847 (@lox)
v3.5.3 (2018-10-24)
- Update to alpine to 3.8 in docker image #842 (@lox)
- Set BUILDKITE_AGENT_CONFIG in docker images to /buildkite #834 (@blakestoddard)
- Fix agent panics on ARM architecture #831 (@jhedev)
v3.5.2 (2018-10-09)
- Fix issue where pipelines with a top-level array of steps failed #830 (@lox)
v3.5.1 (2018-10-08)
- Ensure plugin directory exists, otherwise checkout lock thrashes #828 (@lox)
v3.5.0 (2018-10-08)
- Add plugin locking before checkout #827 (@lox)
- Ensure pipeline parser maintains map order in output #824 (@lox)
- Update aws sdk #818 (@sj26)
- Fix boostrap typo #814 (@ChefAustin)
annotate
takes body as an arg, or reads from a pipe #813 (@sj26)- Respect pre-set BUILDKITE_BUILD_CHECKOUT_PATH #806 (@lox)
- Add time since last successful heartbeat/ping #810 (@lox)
- Updating launchd templates to only restart on error #804 (@lox)
- Allow more time for systemd graceful stop #819 (@lox)
v3.4.0 (2018-07-18)
- Add basic plugin definition parsing #748 (@lox)
- Allow specifying which phases bootstrap should execute #799 (@lox)
- Warn in bootstrap when protected env are used #796 (@lox)
- Cancellation on windows kills bootstrap subprocesses #795 (@amitsaha)
v3.3.0 (2018-07-11)
- Allow tags from the host to be automatically added with --add-host-tags #791 (@lox)
- Allow --no-plugins=false to force plugins on #790 (@lox)
v3.2.1 (2018-06-28)
- Remove the checkout dir when git clean fails #786 (@lox)
- Add a --dry-run to pipeline upload that dumps json #781 (@lox)
- Support PTY under OpenBSD #785 (@derekmarcotte) #787 (@derekmarcotte)
- Experiments docs and experiment cleanup #771 (@lox)
v3.2.0 (2018-05-25)
- Propagate exit code > 1 out of failing hooks #768 (@lox)
- Fix broken list parsing in cli arguments --tags and --experiments #772 (@lox)
- Add a virtual provides to the RPM package #737 (@jnewbigin)
- Clean up docker image building #755 (@lox)
- Don't trim whitespace from the annotation body #766 (@petemounce)
v3.1.2 (2018-05-10)
- Experiment: Pass jobs an authenticated unix socket rather than an access token #759 (@lox)
- Remove buildkite:git:branch meta-data #753 (@sj26)
- Set TERM and PWD for commands that get executed in shell #751 (@lox)
- Avoid pausing after job has finished #764 (@sj26)
v3.1.1 (2018-05-02)
- Fix stdin detection for output redirection #750 (@lox)
v3.1.0 (2018-05-01)
- Add ubuntu docker image #749 (@lox)
- Support
--no-interpolation
option inpipeline upload
#733 (@lox) - Bump our Docker image base to alpine v3.7 #745 (@sj26)
- Better error for multiple file args to artifact upload #740 (@toolmantim)
v3.0.1 (2018-04-17)
- Don't set Content-Encoding on s3 upload #732
v3.0.0 (2018-04-03)
No changes
v3.0-beta.44 (2018-04-03)
- Normalize the
bootstrap-script
command using a newcommandpath
normalization #714 (@keithpitt)
- Install windows binary to c:\buildkite-agent\bin #713 (@lox)
v3.0-beta.43 (2018-04-03)
- Prettier bootstrap output 💅🏻 #708 (@lox)
- Only run git submodule operations if there is a .gitmodules #704 (@lox)
- Add an agent config for no-local-hooks #707 (@lox)
- Build docker image as part of agent pipeline #701 (@lox)
- Windows install script #699 (@lox)
- Expose no-git-submodules config and arg to start #698 (@lox)
v3.0-beta.42 (2018-03-20)
- Preserve types in pipeline.yml #696 (@lox)
v3.0-beta.41 (2018-03-16)
- Retry failed checkouts #670 (@lox)
- Write temporary batch scripts for Windows/CMD.EXE #692 (@lox)
- Enabling
no-command-eval
will also disable use of plugins #690 (@keithpitt) - Support plugins that have a
null
config #691 (@keithpitt) - Handle upgrading bootstrap-path from old 2.x shell script #580 (@lox)
- Show plugin commit if it's already installed #685 (@keithpitt)
- Handle windows paths in all usage of shellwords parsing #686 (@lox)
- Make NormalizeFilePath handle empty strings and windows #688 (@lox)
- Retry ssh-keyscans on error or blank output #687 (@keithpitt)
- Quote and escape env-file values #682 (@lox)
- Prevent incorrect corrupt git checkout detection on fresh checkout dir creation #681 (@lox)
- Only keyscan git/ssh urls #675 (@lox)
- Fail the job when no command is provided in the default command phase #678 (@keithpitt)
- Don't look for powershell hooks since we don't support them yet #679 (@keithpitt)
- Exit when artifacts can't be found for downloading #676 (@keithpitt)
- Run scripts via the shell, rather than invoking with exec #673 (@lox)
- Rename no-automatic-ssh-fingerprint-verification to no-ssh-keyscan #671 (@lox)
- Parse pipeline.yml env block in order #668 (@lox)
- Bootstrap shouldn't panic if plugin checkout fails #672 (@lox)
v3.0-beta.40 (2018-03-07)
- Commands are no longer written to temporary script files before execution #648 (@lox)
- Support more complex types in plugin config #658 (@lox)
- Write an env-file for the bootstrap #643 (@DazWorrall)
- Allow the shell interpreter to be configured #648 (@lox)
- Fix stdin detection on windows #665 (@lox)
- Check hook scripts get written to disk without error #652 (@sj26)
v3.0-beta.39 (2018-01-31)
- Fix bug failing artifact upload glob would cause later globs to fail #620 (@lox)
- Fix race condition in process management #618 (@lox)
- Support older git versions for submodule commands #628 (@lox)
- Lots of windows fixes and tests! #630 #631 #632
- Support for Bash for Windows for plugins and hooks! #636 (@lox)
- Correct mimetypes for .log files #635 (@DazWorrall)
- Usable Content-Disposition for GCE uploaded artifacts #640 (@DazWorrall)
- Experiment for retrying checkout on failure #613 (@lox)
- Skip local hooks when BUILDKITE_NO_LOCAL_HOOKS is set #622 (@lox)
- Bootstrap shell commands output stderr now #626 (@lox)
v2.6.9 (2018-01-18)
- Implement
BUILDKITE_CLEAN_CHECKOUT
,BUILDKITE_GIT_CLONE_FLAGS
andBUILDKITE_GIT_CLEAN_FLAGS
in bootstrap.bat #610 (@solemnwarning)
- Fix unbounded memory usage in artifact uploads (#493)
v3.0-beta.38 (2018-01-10)
- Fix bug where bootstrap with pty hangs on macOS #614 (@lox)
v3.0-beta.37 (2017-12-07)
- Fixed bug where agent uploads fail if no files match #600 (@lox)
- Fixed bug where timestamps are incorrectly appended to header expansions #597
v3.0-beta.36 (2017-11-23)
- Don't retry pipeline uploads on invalid pipelines #589 (@DazWorrall)
- A vagrant box for windows testing #583 (@lox)
- Binary is build with golang 1.9.2
- Fixed bug where malformed pipelines caused infinite loop #585 (@lox)
v3.0-beta.35 (2017-11-13)
- Support nested interpolated variables #578 (@lox)
- Check for corrupt git repository before checkout #574 (@lox)
- Fix bug where non-truthy bool arguments failed silently #582 (@lox)
- Pass working directory changes between hooks #577 (@lox)
- Kill cancelled tasks with taskkill on windows #575 (@adill)
- Support hashed hosts in ssh known_hosts #579 (@lox)
v3.0-beta.34 (2017-10-19)
- Fix bug where pipeline upload doesn't get environment passed correctly #567 (@lox)
- Only show "Running hook" if one exists #566 (@lox)
- Fix segfault when using custom artifact bucket and EC2 instance role credentials #563 (@sj26)
- Fix ssh keyscan of hosts with custom ports #565 (@sj26)
v2.6.7 (2017-11-13)
- Check for corrupt git repository before checkout #556 (@lox)
- Kill cancelled tasks with taskkill on windows #571 (@adill)
v2.6.6 (2017-10-09)
- Backported new globbing library to fix "too many open files" during globbing #539 (@sj26 & @lox)
v3.0-beta.33 (2017-10-05)
- Interpolate env block before rest of pipeline.yml #552 (@lox)
- Build hanging after git checkout #558
v3.0-beta.32 (2017-09-25)
- Refactored bootstrap to be more testable / maintainable #514 #530 #536 #522 (@lox)
- Add BUILDKITE_GCS_ACCESS_HOST for GCS Host choice #532 (@jules2689)
- Prefer plugin, local, global and then default for hooks #549 (@lox)
- Integration tests for v3 #548 (@lox)
- Add docker integration tests #547 (@lox)
- Use latest golang 1.9 #541 (@lox)
- Faster globbing with go-zglob #539 (@lox)
- Consolidate Environment into env package (@lox)
- Fix bug where ssh-keygen error causes agent to block #521 (@lox)
- Pre-exit hook always fires now
v3.0-beta.31 (2017-08-14)
- Support paths in BUILDKITE_ARTIFACT_UPLOAD_DESTINATION #519 (@lox)
v3.0-beta.30 (2017-08-11)
- Agent is prompted to verify remote server authenticity when cloning submodule from unkown host #503
- Windows agent cannot find git executable (Environment variable/Path issue?) #487
- ssh-keyscan doesn't work for submodules on a different host #411
- Fix boolean plugin config parsing #508 (@toolmantim)
- Stop making hook files executable #515 (@yeungda-rea)
- Switch to yaml.v2 as the YAML parser #511 (@keithpitt)
- Add submodule remotes to known_hosts #509 (@lox)
- Added a
--timestamp-lines
option tobuildkite-agent start
that will insert RFC3339 UTC timestamps at the beginning of each log line. The timestamps are not applied to header lines. #501 - Ctrl-c twice will force kill the agent #499
- Set the content encoding on artifacts uploaded to s3 [#494] (thanks @airhorns)
- Output fetched commit sha during git fetch for pull request #505
- Migrate the aging goamz library to the latest aws-sdk #474
- 🔍 Output fetched commit sha during git fetch for pull request [#505]
- 🐞 The agent will now poll the AWS EC2 Tags API until it finds some tags to apply before continuing. In some cases, the agent will start and connect to Buildkite before the tags are available. The timeout for this polling can be configured with --wait-for-ec2-tags-timeout (which defaults to 10 seconds) #492
- 🐛 Fixed 2 Windows bugs that caused all jobs that ran through our built-in buildkite-agent bootstrap command to fail #496
- 🚀 The buildkite-agent upstart configuration will now source /etc/default/buildkite-agent before starting the agent process. This gives you an opportunity to configure the agent outside of the standard buildkite-agent.conf file
- Allow pipeline uploads when no-command-eval is true
- 🐞 Fixes to a few more edge cases when exported environment variables from hooks would include additional quotes #484
- Apt server misconfigured -
Packages
reports wrong sizes/hashes - Rewrote
export -p
parser to support multiple line env vars
- 🤦♂️ We accidentally skipped a beta version, there's no v3.0-beta.25! Doh!
- 🐛 Fixed an issue where some environment variables exported from environment hooks would have new lines appended to the end
- 🚀 Added an --append option to buildkite-agent annotate that allows you to append to the body of an existing annotation
- 🐛 Fixed an issue where exporting multi-line environment variables from a hook would truncate everything but the first line
- 🚀 New command buildkite-agent annotate that gives you the power to annotate a build page with information from your pipelines. This feature is currently experimental and the CLI command API may change before an official 3.0 release
- Added support for local and global pre-exit hooks (#466)
- Renames --meta-data to --tags (#435). --meta-data will be removed in v4, and v3 versions will now show a deprecation warning.
- Fixes multiple signals not being passed to job processes (#454)
- Adds binaries for OpenBSD (#463) and DragonflyBSD (#462)
- Adds support for local and global pre-exit hooks (#465)
- Backport #381 to stable: Retries for fetching EC2 metadata and tags. #461
- Add OpenBSD builds
- Reverted #451 as it introduced a regression. Will re-think this fix and push it out again in another release after we do some more testing
- Reverts the changes made in #448 as it seemed to introduce a regression. We'll rethink this change and push it out in another release.
- Use /bin/sh rather than /bin/bash when executing commands. This allows use in environments that don't have bash, such as Alpine Linux.
- Add plugin support for HTTP repositories with .git extensions [#447]
- Run the global environment hook before checking out plugins [#445]
- Use /bin/sh rather than /bin/bash when executing commands. This allows use in environments that don't have bash, such as Alpine Linux. (#448)
buildkite-agent start --disconnect-after-job
will run the agent, and automatically disconnect after running its first job. This has sometimes been referred to as "one shot" mode and is useful when you spin up an environment per-job and want the agent to automatically disconnect once it's finished its jobbuildkite-agent start --disconnect-after-job-timeout
is the time in seconds the agent will wait for that first job to be assigned. The default value is 120 seconds (2 minutes). If a job isn't assigned to the agent after this time, it will automatically disconnect and the agent process will stop.
- Fixes a bug where log output would get sometimes get corrupted #441
- Fixes a bug where log output would get sometimes get corrupted #441
- You can now specify a custom artifact upload destination with BUILDKITE_ARTIFACT_UPLOAD_DESTINATION #421
- git clean is now performed before and after the git checkout operation #418
- Update our version of lockfile which should fixes issues with running multiple agents on the same server #428
- Fix the start script for Debian wheezy #429
- The buildkite-agent binary is now built with Golang 1.8 #433
- buildkite-agent meta-data get now supports --default flag that allows you to return a default value instead of an error if the remote key doesn't exist #440
- buildkite-agent meta-data get now supports --default flag that allows you to return a default value instead of an error if the remote key doesn't exist #440
- 🐞 Fixed a bug where ^^^ +++ would be prefixed with a timestamp when ---timestamp-lines was enabled #438
- Added a new option --timestamp-lines option to buildkite-agent start that will insert RFC3339 UTC timestamps at the beginning of each log line. The timestamps are not applied to header lines. #430
- Go 1.8 [#433]
- Switch to govendor for dependency tracking [#432]
- Backport Google Cloud Platform meta-data to 2.3 stable agent [#431]
- "No command eval" mode now makes sure commands are inside the working directory 🔐
- Scripts which are already executable won't be chmoded 🔏
- 🐝 Fixed an edge case that causes the agent to panic and exit if more lines are read a process after it's finished
- More resilient init.d script (#406)
- Only lock if locks are used by the system
- More explicit su with --shell option
- The agent now receives its "job status interval" from the Agent API (the number of seconds between checking if its current job has been remotely canceled)
- Fixed a race condition where the agent would pick up another job to run even though it had been told to gracefully stop (PR #403 by @grosskur)
- Fixed path to ssh-keygen for Windows (PR #401 by @bendrucker)
- Fixed a race condition where the agent would pick up another job to run even though it had been told to gracefully stop (PR #403 by @grosskur)
- Refactored how environment variables are interpolated in the agent
- The buildkite-agent pipeline upload command now looks for .yaml files as well
- Support for the steps.json file has been removed
- Updated buildkite-agent bootstrap for Windows so that commands won't keep running if one of them fail (similar to Bash's set -e) behaviour #392 (thanks @essen)
- AWS EC2 meta-data tagging is now more resilient and will retry on failure (#381)
- Substring expansion works for variables in pipeline uploads, like ${BUILDKITE_COMMIT:0:7} will return the first seven characters of the commit SHA (#387)
- The buildkite-agent binary is now built with Golang 1.7 giving us support for macOS Sierra
- The agent now talks HTTP2 making calls to the Agent API that little bit faster
- The binary is a statically compiled (no longer requiring libc)
- meta-data-ec2 and meta-data-ec2-tags can now be configured using BUILDKITE_AGENT_META_DATA_EC2 and BUILDKITE_AGENT_META_DATA_EC2_TAGS environment variables
- The buildkite-agent binary is now built with Golang 1.7 giving us support for macOS Sierra
- The agent now talks HTTP2 making calls to the Agent API that little bit faster
- The binary is a statically compiled (no longer requiring libc)
- meta-data-ec2 and meta-data-ec2-tags can now be configured using BUILDKITE_AGENT_META_DATA_EC2 and BUILDKITE_AGENT_META_DATA_EC2_TAGS environment variables
- We've removed our dependency of libc for greater compatibly across *nix systems which has had a few side effects: We've had to remove support for changing the process title when an agent starts running a job. This feature has only ever been available to users running 64-bit ubuntu, and required us to have a dependency on libc. We'd like to bring this feature back in the future in a way that doesn't have us relying on libc
- The agent will now use Golangs internal DNS resolver instead of the one on your system. This probably won't effect you in any real way, unless you've setup some funky DNS settings for agent.buildkite.com
- Allow fetching meta-data from Google Cloud metadata #369 (Thanks so much @grosskur)
- Fix some compatibility with older Git versions 🕸
- Make bootstrap actually use the global command hook if it exists #365
- Support plugin array configs f989cde
- Include bootstrap in the help output 7524ffb
- Fixed a bug where we weren't stripping ANSI colours in build log headers 6611675
- Fix Content-Type for Google Cloud Storage API calls #361 (comment)
- 🔍 SSH key scanning backwards compatibility with older openssh tools
- 🔍 SSH key scanning fix after it got a little broken in 2.1.14, sorry!
- 🔍 SSH key scanning should be more resilient, whether or not you hash your known hosts file
- 🏅 Commands executed by the Bootstrap script correctly preserve positional arguments and handle interpolation better
- 🌈 ANSI color sequences are a little more resilient
- ✨ Git clean and clone flags can now be supplied in the Agent configuration file or on the command line
- 📢 Docker Compose will now be a little more verbose when the Agent is in Debug mode
- 📑 $BUILDKITE_DOCKER_COMPOSE_FILE now accepts multiple files separated by a colon (:), like $PATH
- Fixes to the bootstrap when using relative paths #228
- Fixed hook paths on Windows #331
- Fixed default path of the pipeline.yml file on Windows #342
- Fixed issues surrounding long command definitions #334
- Fixed default bootstrap-command command for Windows #344
- Added support for BUILDKITE_GIT_CLONE_FLAGS (#330) giving you the ability customise how the agent clones your repository onto your build machines. You can use this to customise the "depth" of your repository if you want faster clones BUILDKITE_GIT_CLONE_FLAGS="-v --depth 1". This option can also be configured in your buildkite-agent.cfg file using the git-clone-flags option
- BUILDKITE_GIT_CLEAN_FLAGS can now be configured in your buildkite-agent.cfg file using the git-clean-flags option (#330)
- Allow metadata value to be read from STDIN (#327). This allows you to set meta-data from files easier cat meta-data.txt | buildkite-agent meta-data set "foo"
- Fixed environment variable sanitisation #333
- BUILDKITE_GIT_CLONE_FLAGS (#326) giving you the ability customise how the agent clones your repository onto your build machines. You can use this to customise the "depth" of your repository if you want faster clones
BUILDKITE_GIT_CLONE_FLAGS="-v --depth 1"
- Allow metadata value to be read from STDIN (#327). This allows you to set meta-data from files easier
cat meta-data.txt | buildkite-agent meta-data set "foo"
- Improved error logging when failing to capture the exit status for a job (#325)
- Improved error logging when failing to capture the exit status for a job (#325)
- A new --meta-data-ec2 command line flag and config option for populating agent meta-data from EC2 information (#320)
- Binaries are now published to download.buildkite.com (#318)
- New version number: v3.0-beta.1. There will be no 2.2 (the previous beta release)
- Outputs the build directory in the build log (#317)
- Don't output the env variable values that are set from hooks (#316)
- Sign packages with SHA512 (#308)
- A new --meta-data-ec2 command line flag and config option for populating agent meta-data from EC2 information (#314)
- Binaries are now published to download.buildkite.com (#318)
- Amazon Linux & CentOS 6 packages now start and shutdown the agent gracefully (#306) - thanks @jnewbigin
- Build headers now work even if ANSI escape codes are applied (#279)
- Amazon Linux & CentOS 6 packages now start and shutdown the agent gracefully (#290 #305) - thanks @jnewbigin
- Docker Compose 1.7.x support, including docker network removal during cleanup (#300)
- Docker Compose builds now specify --pull, so base images will always attempted to be pulled (#300)
- Docker Compose command group is now expanded by default (#300)
- Docker Compose builds now only build the specified service’s image, not all images. If you want to build all set the environment variable BUILDKITE_DOCKER_COMPOSE_BUILD_ALL=true (#297)
- Step commands are now run with bash’s -o pipefail option, preventing silent failures (#301)
- BUILDKITE_DOCKER_COMPOSE_LEAVE_VOLUMES undefined errors in bootstrap.sh have been fixed (#283)
- Build headers now work even if ANSI escape codes are applied
- Git clean brokenness has been fixed in the Go-based bootstrap (#278)
- BUILDKITE_DOCKER_COMPOSE_LEAVE_VOLUMES (#274) which allows you to keep the docker-compose volumes once a job has been run
- Environment variable substitution in pipeline files (#246)
- Google Cloud Storage for artifacts (#207)
- BUILDKITE_DOCKER_COMPOSE_LEAVE_VOLUMES (#252) which allows you to keep the docker-compose volumes once a job has been run
- BUILDKITE_S3_ACCESS_URL (#261) allowing you set your own host for build artifact links. This means you can set up your own proxy/web host that sits in front of your private S3 artifact bucket, and click directly through to them from Buildkite.
- BUILDKITE_GIT_CLEAN_FLAGS (#270) allowing you to ensure all builds have completely clean checkouts using an environment hook with export BUILDKITE_GIT_CLEAN_FLAGS=-fqdx
- Various new ARM builds (#258) allowing you to run the agent on services such as Scaleway
- Increased many of the HTTP timeouts to ease the stampede on the agent endpoint (#259)
- Corrected bash escaping errors which could cause problems for installs to non-standard paths (#262)
- Made HTTPS the default for all artifact upload URLs (#265)
- Added Buildkite's bin dir to the end, not the start, of $PATH (#267)
- Ensured that multiple commands separated by newlines fail as soon as a command fails (#272)
- Added support for BUILDKITE_S3_ACCESS_URL (#247) allowing you set your own host for build artifact links. This means you can set up your own proxy/web host that sits in front of your private S3 artifact bucket, and click directly through to them from Buildkite.
- Added support for BUILDKITE_GIT_CLEAN_FLAGS (#271) allowing you to ensure all builds have completely clean checkouts using an environment hook with export BUILDKITE_GIT_CLEAN_FLAGS=-fqdx
- Added support for various new ARM builds (#263) allowing you to run the agent on services such as Scaleway
- Updated to Golang 1.6 (26d37c5)
- Increased many of the HTTP timeouts to ease the stampede on the agent endpoint (#260)
- Corrected bash escaping errors which could cause problems for installs to non-standard paths (#266)
- Made HTTPS the default for all artifact upload URLs (#269)
- Added Buildkite's bin dir to the end, not the start, of $PATH (#268)
- Ensured that multiple commands separated by newlines fail as soon as a command fails (#273)
- The agent is now statically linked to glibc, which means support for Debian 7 and friends (#255)
- git fetch --tags doesn't fetch branches in old git (#250)
- Use TrimPrefix instead of TrimLeft (#203)
- Update launchd templates to use .buildkite-agent dir (#212)
- Link to docker agent in README (#225)
- Send desired signal instead of always SIGTERM (#215)
- Bootstrap script fetch logic tweaks (#243)
- Avoid upstart on Amazon Linux (#244)
- Added some tests to the S3Downloader
- yum.buildkite.com now shows all previous versions of the agent
- Fixed problem with bootstrap.sh not resetting git checkouts correctly
- Removed unused functions from the bootstrap.sh file that was causing garbage output in builds
- FreeBSD 386 machines are now supported
- Fixed issue with starting the bootstrap.sh file on linux systems fork/exec error
- Added support for FreeBSD - see instructions here: https://gist.github.com/keithpitt/61acb5700f75b078f199
- Only fetch the required branch + commit when running a build
- Added support for a repository command hook
- Change the git origin when a repository URL changes
- Improved mime type coverage for artefacts
- Added support for pipeline.yml files, starting to deprecate steps.json
- Show the UUID in the log output when uploading artifacts
- Added graceful shutdown #176
- Fixed header time and artifact race conditions
- OS information is now correctly collected on Windows
- Optimised artifact state updating
- Dump artifact upload responses when --debug-http is used
- Debian packages now include the debian_version property 📦
- Artifacts are uploaded faster! We've optimised our Agent API payloads to have a smaller footprint meaning you can uploading more artifacts faster! 🚗💨
- You can now download artifacts from private S3 buckets using buildkite-artifact download ☁️
- The agent will now change its process title on linux/amd64 machines to report its current status:
buildkite-agent v2.1 (my-agent-name) [job a4f-a4fa4-af4a34f-af4]
- Changed the format that --version returns buildkite-agent version 2.0.4, build 456 🔍
- Added post-artifact global and local hooks 🎣
- Debian package for ARM processors
- Include the build number in the --version call
- The binary name has changed from buildbox to buildkite-agent
- The default install location has changed from ~/.buildbox to ~/.buildkite-agent (although each installer may install in different locations)
- Agents can be configured with a config file
- Agents register themselves with a organization-wide token, you no longer need to create them via the web
- Agents now have hooks support and there should be no reason to customise the bootstrap.sh file
- There is built-in support for containerizing builds with Docker and Docker Compose
- Windows support
- There are installer packages available for most systems
- Agents now have meta-data
- Build steps select agents using key/value patterns rather than explicit agent selection
- Automatic ssh fingerprint verification
- Ability to specify commands such as rake and make instead of a path to a script
- Agent meta data can be imported from EC2 tags
- You can set a priority for the agent
- The agent now works better under flakey internet connections by retrying certain API calls
- A new command buildkite-agent artifact shasum that allows you to download the shasum of a previously uploaded artifact
- Various bug fixes and performance enhancements
- Support for storing build pipelines in repositories