Skip to content

Latest commit

 

History

History
1115 lines (837 loc) · 60.1 KB

CHANGELOG.md

File metadata and controls

1115 lines (837 loc) · 60.1 KB

Changelog

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.

v3.18.0 (2020-01-21)

Full Changelog

Added

  • Hooks can be written in PowerShell #1122 (@pdemirdjian)

Changed

  • Ignore multiple checkout plugin hooks #1135 (@toolmantim)
  • clicommand/annotate: demote success log from Info to Debug #1141 (@pda)

Fixed

  • 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)

Full Changelog

Added

  • 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)

Fixed

  • 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)

Full Changelog

Added

  • Add ANSI timestamp output experiment #1103 (@lox)

Changed

  • Bump golang build version to 1.13 #1107 (@lox)
  • Drop support for setting process title #1106 (@lox)

Fixed

  • Avoid destroying the checkout on specific git errors #1104 (@lox)

v3.15.2 (2019-10-10)

Full Changelog

Added

  • 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)

Full Changelog

Fixed

  • Fix a race condition that causes panics on job accept #1095 (@lox)

v3.15.0 (2019-09-17)

Full Changelog

Changed

  • 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 added step get #1083 (@keithpitt)

v3.14.0 (2019-08-16)

Full Changelog

Fixed

  • 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)

Changed

  • 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)

Full Changelog

Changed

  • 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)

Full Changelog

Changed

  • 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)

Full Changelog

Changed

  • 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)

Full Changelog

Added

  • Add checksums for artifactory uploaded artifacts #961 (@lox)
  • Add BUILDKITE_GCS_PATH_PREFIX for the path of GCS artifacts #1000 (@DoomGerbil)

Changed

  • 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)

Full Changelog

Fixed

  • Fix broken signal handling #1011 (@lox)

Changed

  • Update Ubuntu docker image to docker-compose 1.24 #1005 (@pecigonzalo)

v3.11.4 (2019-05-08)

Full Changelog

Changed

  • Fix bug where disconnect-after-idle stopped working #1004 (@lox)

v3.11.3 (2019-05-08)

Full Changelog

Fixed

  • Prevent host tags from overwriting aws/gcp tags #1002 (@lox)

Changed

  • 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)

Full Changelog

Changed

  • Send logging to stderr again #996 (@lox)

v3.11.1 (2019-04-20)

Full Changelog

Fixed

  • 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)

Full Changelog

Fixed

  • Allow applying ec2 tags when config tags are empty #990 (@vanstee)
  • Upload Artifactory artifacts to correct path #989 (@GaryPWhite)

Changed

  • 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)

Full Changelog

Fixed

  • 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)

Full Changelog

Fixed

  • 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)

Full Changelog

Fixed

  • Update artifatory uploader to use the correct PUT url #960 (@GaryPWhite)

Changed

  • 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)

Full Changelog

Fixed

  • Fix long urls for artifactory integration #955 (@GaryPWhite)

v3.10.0 (2019-03-12)

Full Changelog

Added

  • Experimental shared repositories (git mirrors) between checkouts #936 (@lox)
  • Support disconnecting agent after it's been idle for a certain time period #932 (@lox)

Changed

  • Restart agents on SIGPIPE from systemd in systemd units #945 (@lox)

v3.9.1 (2019-03-06)

Full Changelog

Changed

  • 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)

Full Changelog

Added

  • Artifactory artifact support #924 (@GaryPWhite)
  • Add a --tag-from-gcp-labels for loading agent tags from GCP #930 (@conorgil)
  • Add a --content-type to artifact 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)

Changed

  • Terminate bootstrap with unhandled signal after cancel #890 (@lox)

Fixed

  • 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)

Full Changelog

Fixed

  • 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)

Full Changelog

Fixed

  • Retry forever to upload job chunks #898 (@keithpitt)
  • Resolve ssh hostname aliases before running ssh-keyscan #889 (@ticky)

v3.8.2 (2019-01-11)

Full Changelog

Changed

  • Fix another segfault in artifact download #893 (@lox)

v3.8.1 (2019-01-11)

Full Changelog

Fixed

  • Fixed two segfaults caused by missing loggers #892 (@lox)

v3.8.0 (2019-01-10)

Full Changelog

Fixed

  • Support absolute paths on Windows for config #881 (@petemounce)

Changed

  • 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)

Full Changelog

Changed

  • 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)

Full Changelog

Added

  • Add another search path for config file on Windows #867 (@petemounce)

Fixed

  • Exclude headers from timestamp-lines output #870 (@lox)

v3.6.0 (2018-12-04)

Full Changelog

Fixed

  • 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)

Added

  • Experimental --spawn option to spawn multiple parallel agents #590 (@lox)
  • 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)

Changed

  • 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)

Full Changelog

Fixed

  • Prevent docker image from crashing with missing config error #847 (@lox)

v3.5.3 (2018-10-24)

Full Changelog

Fixed

  • 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)

Full Changelog

Changed

  • Fix issue where pipelines with a top-level array of steps failed #830 (@lox)

v3.5.1 (2018-10-08)

Full Changelog

Fixed

  • Ensure plugin directory exists, otherwise checkout lock thrashes #828 (@lox)

v3.5.0 (2018-10-08)

Full Changelog

Fixed

  • 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)

Changed

  • 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)

Full Changelog

Changed

  • 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)

Full Changelog

Added

  • 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)

Full Changelog

Changed

  • 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)

Full Changelog

Changed

  • 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)

Full Changelog

Changed

  • 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)

Fixed

  • Avoid pausing after job has finished #764 (@sj26)

v3.1.1 (2018-05-02)

Full Changelog

Fixed

  • Fix stdin detection for output redirection #750 (@lox)

v3.1.0 (2018-05-01)

Full Changelog

Changed

  • Add ubuntu docker image #749 (@lox)
  • Support --no-interpolation option in pipeline 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)

Full Changelog

Changed

  • Don't set Content-Encoding on s3 upload [#732] (@lox)

v3.0.0 (2018-04-03)

Full Changelog

No changes

v3.0-beta.44 (2018-04-03)

Full Changelog

Fixed

  • Normalize the bootstrap-script command using a new commandpath normalization #714 (@keithpitt)

Changed

  • Install windows binary to c:\buildkite-agent\bin #713 (@lox)

v3.0-beta.43 (2018-04-03)

Full Changelog

Changed

  • 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)

Full Changelog

Fixed

  • Preserve types in pipeline.yml #696 (@lox)

v3.0-beta.41 (2018-03-16)

Full Changelog

Added

  • Retry failed checkouts #670 (@lox)

Changed

  • 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)

Fixed

  • 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)

Full Changelog

Changed

  • Commands are no longer written to temporary script files before execution #648 (@lox)
  • Support more complex types in plugin config #658 (@lox)

Added

  • Write an env-file for the bootstrap #643 (@DazWorrall)
  • Allow the shell interpreter to be configured #648 (@lox)

Fixed

  • 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)

Full Changelog

Fixed

  • 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

Added

  • 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)

Changed

  • Bootstrap shell commands output stderr now #626 (@lox)

v2.6.9 (2018-01-18)

Full Changelog

Added

  • Implement BUILDKITE_CLEAN_CHECKOUT, BUILDKITE_GIT_CLONE_FLAGS and BUILDKITE_GIT_CLEAN_FLAGS in bootstrap.bat #610 (@solemnwarning)

Fixed

  • Fix unbounded memory usage in artifact uploads (#493)

v3.0-beta.38 (2018-01-10)

Full Changelog

Fixed

  • Fix bug where bootstrap with pty hangs on macOS #614 (@lox)

v3.0-beta.37 (2017-12-07)

Full Changelog

Fixed

  • 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)

Full Changelog

Added

  • 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

  • Fixed bug where malformed pipelines caused infinite loop #585 (@lox)

v3.0-beta.35 (2017-11-13)

Full Changelog

Added

  • Support nested interpolated variables #578 (@lox)
  • Check for corrupt git repository before checkout #574 (@lox)

Fixed

  • 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)

Full Changelog

Fixed

  • 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)

Full Changelog

Added

  • Check for corrupt git repository before checkout #556 (@lox)

Fixed

  • Kill cancelled tasks with taskkill on windows #571 (@adill)

v2.6.6 (2017-10-09)

Full Changelog

Fixed

  • Backported new globbing library to fix "too many open files" during globbing #539 (@sj26 & @lox)

v3.0-beta.33 (2017-10-05)

Full Changelog

Added

  • Interpolate env block before rest of pipeline.yml #552 (@lox)

Fixed

  • Build hanging after git checkout #558

v3.0-beta.32 (2017-09-25)

Full Changelog

Added

  • Add --no-plugins option to agent #540 (@lox)
  • Support docker environment vars from v2 #545 (@lox)

Changed

  • 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)

Fixed

  • 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)

Full Changelog

Fixed

  • Support paths in BUILDKITE_ARTIFACT_UPLOAD_DESTINATION #519 (@lox)

v3.0-beta.30 (2017-08-11)

Full Changelog

Fixed

  • 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)

Changed

  • 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)

3.0-beta.29 - 2017-07-18

Added

  • Added a --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. [#501] (@lox)
  • Ctrl-c twice will force kill the agent [#499] (@lox)
  • Set the content encoding on artifacts uploaded to s3 [#494] (thanks @airhorns)
  • Output fetched commit sha during git fetch for pull request [#505] (@sj26)

Changed

  • Migrate the aging goamz library to the latest aws-sdk [#474] (@lox)

2.6.5 - 2017-07-18

Added

  • 🔍 Output fetched commit sha during git fetch for pull request [#505]

3.0-beta.28 - 2017-06-23

Added

  • 🐞 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

  • 🐛 Fixed 2 Windows bugs that caused all jobs that ran through our built-in buildkite-agent bootstrap command to fail #496

2.6.4 - 2017-06-16

Added

  • 🚀 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

3.0-beta.27 - 2017-05-31

Added

  • Allow pipeline uploads when no-command-eval is true

Fixed

  • 🐞 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

3.0-beta.26 - 2017-05-29

Fixed

  • 🤦‍♂️ 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

3.0-beta.24 - 2017-05-26

Added

  • 🚀 Added an --append option to buildkite-agent annotate that allows you to append to the body of an existing annotation

Fixed

  • 🐛 Fixed an issue where exporting multi-line environment variables from a hook would truncate everything but the first line

3.0-beta.23 - 2017-05-10

Added

  • 🚀 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

2.6.3 - 2017-05-04

Added

  • Added support for local and global pre-exit hooks (#466)

3.0-beta.22 - 2017-05-04

Added

  • 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)

2.6.2 - 2017-05-02

Fixed

  • Backport #381 to stable: Retries for fetching EC2 metadata and tags. #461

Added

  • Add OpenBSD builds

2.6.1 - 2017-04-13

Removed

  • 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

3.0-beta.21 - 2017-04-13

Removed

  • 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.

2.6.0 - 2017-04-13

Fixed

  • Use /bin/sh rather than /bin/bash when executing commands. This allows use in environments that don't have bash, such as Alpine Linux.

3.0-beta.20 - 2017-04-13

Added

  • Add plugin support for HTTP repositories with .git extensions [#447]
  • Run the global environment hook before checking out plugins [#445]

Changed

  • 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)

3.0-beta.19 - 2017-03-29

Added

  • buildkite-agent start --disconnect-after-job will run the agent, and automatically disconnect after running it's 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 it's job
  • buildkite-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.

3.0-beta.18 - 2017-03-27

Fixed

  • Fixes a bug where log output would get sometimes get corrupted #441

2.5.1 - 2017-03-27

Fixed

  • Fixes a bug where log output would get sometimes get corrupted #441

3.0-beta.17 - 2017-03-23

Added

  • 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

[2.5] - 2017-03-23

Added

  • 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

2.4.1 - 2017-03-20

Fixed

  • 🐞 Fixed a bug where ^^^ +++ would be prefixed with a timestamp when ---timestamp-lines was enabled #438

[2.4] - 2017-03-07

Added

  • 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

Changed

  • Go 1.8 [#433]
  • Switch to govendor for dependency tracking [#432]
  • Backport Google Cloud Platform meta-data to 2.3 stable agent [#431]

3.0-beta.16 - 2016-12-04

Fixed

  • "No command eval" mode now makes sure commands are inside the working directory 🔐
  • Scripts which are already executable won't be chmoded 🔏

2.3.2 - 2016-11-28

Fixed

  • 🐝 Fixed an edge case that causes the agent to panic and exit if more lines are read a process after it's finished

2.3.1 - 2016-11-17

Fixed

  • More resilient init.d script (#406)
  • Only lock if locks are used by the system
  • More explicit su with --shell option

3.0-beta.15 - 2016-11-16

Changed

  • The agent now receives it's "job status interval" from the Agent API (the number of seconds between checking if it's current job has been remotely canceled)

3.0-beta.14 - 2016-11-11

Fixed

  • 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)

[2.3] - 2016-11-10

Fixed

  • 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)

3.0-beta.13 - 2016-10-21

Added

  • 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

3.0-beta.12 - 2016-10-14

Added

  • 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)

3.0-beta.11 - 2016-10-04

Added

  • 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)

3.0-beta.10 - 2016-09-21

Added

  • 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

[2.2] - 2016-09-21

Added

  • 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

Changed

  • 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

3.0-beta.9 - 2016-08-18

Added

  • Allow fetching meta-data from Google Cloud metadata #369 (Thanks so much @grosskur)

2.1.17 - 2016-08-11

Fixed

  • Fix some compatibility with older Git versions 🕸

3.0-beta.8 - 2016-08-09

Fixed

  • Make bootstrap actually use the global command hook if it exists #365

3.0-beta.7 - 2016-08-05

Added

  • Support plugin array configs f989cde
  • Include bootstrap in the help output 7524ffb

Fixed

  • 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)

2.1.16 - 2016-08-04

Fixed

  • 🔍 SSH key scanning backwards compatibility with older openssh tools

2.1.15 - 2016-07-28

Fixed

  • 🔍 SSH key scanning fix after it got a little broken in 2.1.14, sorry!

2.1.14 - 2016-07-26

Added

  • 🔍 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

3.0-beta.6 - 2016-06-24

Fixed

  • 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

3.0-beta.5 - 2016-06-16

[3.0-beta.3- 2016-06-01

Added

  • 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

  • Fixed environment variable sanitisation #333

2.1.13 - 2016-05-30

Added

  • 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"

3.0-beta.2 - 2016-05-23

Fixed

  • Improved error logging when failing to capture the exit status for a job (#325)

2.1.12 - 2016-05-23

Fixed

  • Improved error logging when failing to capture the exit status for a job (#325)

2.1.11 - 2016-05-17

Added

  • 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)

3.0-beta.1 - 2016-05-16

Added

  • 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)

2.2-beta.4 - 2016-05-10

Fixed

  • 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)

2.1.10- 2016-05-09

Fixed

  • Amazon Linux & CentOS 6 packages now start and shutdown the agent gracefully (#290 #305) - thanks @jnewbigin

2.1.9 - 2016-05-06

Added

  • 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)

Fixed

  • 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

2.2-beta.3 - 2016-03-18

Addeed

  • Git clean brokenness has been fixed in the Go-based bootstrap (#278)

2.1.8- 2016-03-18

Added

  • BUILDKITE_DOCKER_COMPOSE_LEAVE_VOLUMES (#274) which allows you to keep the docker-compose volumes once a job has been run

2.2-beta.2 - 2016-03-17

Added

  • 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

Fixed

  • 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)

2.1.7- 2016-03-17

Added

  • 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

Fixed

  • 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)

2.1.6.1 - 2016-03-09

Fixed

  • The agent is now statically linked to glibc, which means support for Debian 7 and friends (#255)

2.1.6 - 2016-03-03

Fixed

  • git fetch --tags doesn't fetch branches in old git (#250)

2.1.5 2016-02-26

Fixed

  • 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)

2.2-beta.1 2015-10-20

Changed

  • Added some tests to the S3Downloader

2.1.4 - 2015-10-16

Fixed

  • yum.buildkite.com now shows all previous versions of the agent

2.1.3 - 2015-10-16

Fixed

  • Fixed problem with bootstrap.sh not resetting git checkouts correctly

2.1.2 - 2015-10-16

Fixed

  • Removed unused functions from the bootstrap.sh file that was causing garbage output in builds
  • FreeBSD 386 machines are now supported

2.1.1 - 2015-10-15

Fixed

  • Fixed issue with starting the bootstrap.sh file on linux systems fork/exec error

[2.1] - 2015-10-15

2.1-beta.3 - 2015-10-01

Changed

  • 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

2.1-beta.2 - 2015-08-04

Fixed

  • Optimised artifact state updating
  • Dump artifact upload responses when --debug-http is used

2.1-beta.1 - 2015-07-30

Fixed

  • 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 it's process title on linux/amd64 machines to report it's current status: buildkite-agent v2.1 (my-agent-name) [job a4f-a4fa4-af4a34f-af4]

2.1-beta - 2015-07-3

2.0.4 - 2015-07-2

Fixed

  • Changed the format that --version returns buildkite-agent version 2.0.4, build 456 🔍

Added

  • Added post-artifact global and local hooks 🎣

2.0.3.761 - 2015-07-21

Fixed

  • Debian package for ARM processors
  • Include the build number in the --version call

2.0.3 - 2015-07-21

2.0.1 - 2015-07-17

[2.0] - 2015-07-14

Added

  • 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