diff --git a/CHANGELOG.md b/CHANGELOG.md index 036b6319cb..8c625930e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,21 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [v3.33.0](https://github.com/buildkite/agent/compare/v3.32.3...v3.33.0) (2021-09-27) + +### Added + +* Support for `unset` environment variables in Job Lifecycle Hooks [#1488](https://github.com/buildkite/agent/pull/1488) + +### Changed + +* Remove retry handling when deleting annotations that are already deleted [#1507](https://github.com/buildkite/agent/pull/1507) ([@lox](https://github.com/lox)) +* Alpine base image from 3.14.0 to 3.14.2 [#1499](https://github.com/buildkite/agent/pull/1499) + +### Fixed + +* Support for trailing slash path behaviour in artifact download [#1504](https://github.com/buildkite/agent/pull/1504) ([@jonathan-brand](https://github.com/jonathan-brand)) + ## [v3.32.3](https://github.com/buildkite/agent/compare/v3.32.2...v3.32.3) (2021-09-01) ### Fixed diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 0000000000..f558741c5b --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,130 @@ +# Agent Release Process + +Creating a release for the Buildkite agent is made up of the following steps: + +1. Generate a list of changes +1. Create a release branch +1. Edit the changelog file +1. Update the agent version file +1. Commit your changes +1. Create draft release in GitHub +1. Merge pull request +1. Release in Buildkite +1. Update the docs +1. Update the GitHub release +1. Update the Elastic CI Stack agent version +1. Announcements + +Instructions for each can be found below 🌈 If you find something that is out of date, please update it πŸ™‡πŸ»β€β™€οΈ + +## Generate a list of changes + +We use [ghch](https://github.com/buildkite/ghch) to generate the changelogs. + +To preview the changes run: + +``` +~/go/bin/ghch --format=markdown --from=v3.xx.yy --next-version=v3.xx.yy+1 +``` + +This will print a list of all the changes that are ready to go out. Looking at +the list, you need to decide if it’s a minor or bugfix release. You can re-run +the `ghch` command with a different version number if you decide to change it +before releasing. + +Copy the list of changes to add to the changelog file. + +## Create a release branch + +Using git, create a release branch: + +``` +git checkout -b $USER/release/3.xx.yy+1 origin/main +``` + +## Edit the changelog file + +Open the [`CHANGELOG.md`](CHANGELOG.md) file with your favourite editor and paste in the list +from the `ghch` output. This will likely need some cleaning up and editing as it +only lists the names of the PRs. + +Try to make each line short but descriptive - we want people to be able to +understand the general gist of the change without having to read paragraphs or +go into the PR itself. + +The changelog gets split up into three sections: Added, Changed, and Fixed. + +For example, this was the changelog for the v3.17.0 release: + +![A release using the changelog data in its description](docs/images/v3.17.0.png) + +## Update the agent version file + +Open the [agent/version.go](agent/version.go) file with your favourite editor +and update the `baseVersion` variable to the new version number: + +![Updating the agent version number](docs/images/update-version.png) + +## Commit your changes + +Provide a descriptive message along with your commit: + +``` +git commit -a -m "Bump version and CHANGELOG for v3.17.0" +``` + +Publish your branch and create a pull request for your branch. Allow the +Buildkite Pipeline to run, once it has passed merge your change to the default +branch. + +## Release in Buildkite + +**NOTE**: don't push a new git tag for the release. Unlike the Elastic CI Stack +for AWS, the release steps will tag the release for you. + +An Agent build will automatically trigger from your push to master. Wait for +this to run and upload the release steps. Unblock each of the three release +steps (Edge, Beta, and Stable) at the end. + +## Update the docs + +- Update to the latest agent +- Check out docs repo. +- In the docs repo, run `./scripts/update-agent-help.sh` +- Check the docs diff, and make a pull request. + +## Update the GitHub release + +The release pipelines create the GitHub release and upload the binaries to it +(internally it uses GitHub Release). After the stable build has finished, and +the GitHub release automatically created, edit the release description pasting +the relevant markdown from the changelog: + +https://github.com/buildkite/agent/releases + +## Update the Elastic CI Stack agent version + +Update the `master` branch of the Elastic CI Stack for AWS with the latest agent +release. + +Create a branch and run `make bump-agent-version`, commit the changes, publish +your branch and create a pull request. Once the tests have passed merge your +pull request. + +Once merged, a new AMI will be built with the latest agent and copied to all the +supported regions. Customers can update their template to the latest `master` +version or wait for a tagged release. + +## Announcements + +Draft a Buildkite Changelog using the following template: + +> Title: Agent vx.x.x and AWS Elastic Stack vx.x.x release +> Content: +> The x.x.x version of the buildkite-agent and the x.x.x version of the AWS elastic stack are now available. +> +> The agent has added the ability to do ____, and ____. This agent release has been added to the x.x.x release of the elastic stack, as well as ____ and ____. +> +> For full list of additions, changes, and fixes, see the [buildkite-agent changelog](https://github.com/buildkite/agent/releases/tag/v3.31.0) and the [elastic-ci-stack-for-aws changelog](https://github.com/buildkite/elastic-ci-stack-for-aws/releases/tag/v5.4.0) on GitHub. + +Publish a πŸš€ Release category message in the [πŸ€– Agent Message Board](https://3.basecamp.com/3453178/buckets/11763568/message_boards/1730831248). diff --git a/agent/version.go b/agent/version.go index 10d89cb691..1ac9db5bb4 100644 --- a/agent/version.go +++ b/agent/version.go @@ -10,7 +10,7 @@ import "runtime" // // Pre-release builds' versions must be in the format `x.y-beta`, `x.y-beta.z` or `x.y-beta.z.a` -var baseVersion string = "3.32.3" +var baseVersion string = "3.33.0" var buildVersion string = "" func Version() string { diff --git a/docs/images/update-version.png b/docs/images/update-version.png new file mode 100644 index 0000000000..b9058d641a Binary files /dev/null and b/docs/images/update-version.png differ diff --git a/docs/images/v3.17.0.png b/docs/images/v3.17.0.png new file mode 100644 index 0000000000..0ebbdc596f Binary files /dev/null and b/docs/images/v3.17.0.png differ