-
Notifications
You must be signed in to change notification settings - Fork 454
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
5cfb64c
commit da670f5
Showing
2 changed files
with
71 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
# Releasing | ||
- [Releasing](#releasing) | ||
- [Before You Begin](#before-you-begin) | ||
- [Local Release Preparation](#local-release-preparation) | ||
- [Update the CHANGELOG.md](#update-the-changelogmd) | ||
- [Create Release Commit and Tag](#create-release-commit-and-tag) | ||
- [Run Pre-Release Tests](#run-pre-release-tests) | ||
- [Submit Release Pull Request](#submit-release-pull-request) | ||
- [Push Release Tag](#push-release-tag) | ||
- [Verify Github Release](#verify-github-release) | ||
- [Update Homebrew versions](#update-homebrew-versions) | ||
|
||
## Before You Begin | ||
|
||
Ensure your local workstation is configured to be able to [Sign Commits](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits) | ||
|
||
## Local Release Preparation | ||
|
||
### Update the [CHANGELOG.md](CHANGELOG.md) | ||
|
||
- Add a new version header at the top of the document, just after `# [Unreleased]` | ||
- Update links at bottom of changelog | ||
|
||
### Create Release Commit and Tag | ||
|
||
```bash | ||
export RELEASE_VERSION=2.x.y | ||
git checkout master | ||
git pull origin master | ||
git commit -S -m "Release $RELEASE_VERSION" | ||
git tag -s "v$RELEASE_VERSION" -m "Release $RELEASE_VERSION" | ||
``` | ||
|
||
### Run Pre-Release Tests | ||
|
||
```bash | ||
make test-release | ||
``` | ||
|
||
## Submit Release Pull Request | ||
|
||
- Submit a PR of your Release commit on Github | ||
- Merge it to master (after approval) | ||
|
||
## Push Release Tag | ||
|
||
- On your local machine again, push your tag to github | ||
|
||
```bash | ||
git push origin v2.x.y | ||
``` | ||
|
||
## Verify Github Release | ||
|
||
- Github Actions should kick off a build and release after the tag is pushed. | ||
- Verify that a [Release gets created in Github](https://github.com/Shopify/toxiproxy/releases) and verify that the release notes look correct | ||
- Github Actions should also attatch the built binaries to the release (it might take a few mins) | ||
|
||
## Update Homebrew versions | ||
|
||
- Update [homebrew-shopify toxiproxy.rb](https://github.com/Shopify/homebrew-shopify/blob/master/toxiproxy.rb#L9) manifest | ||
1. Update `app_version` string to your released version | ||
2. Update hashes for all platforms (find the hashes in the checksums.txt from your release notes) | ||
|
||
- Do a manual check of installing toxiproxy via brew | ||
1. While in the homebrew-shopify directory... | ||
```bash | ||
brew install ./toxiproxy.rb --debug | ||
``` | ||
Note: it's normal to get some errors when homebrew attempts to load the file as a Cask instead of a formula, just make sure that it still gets installed. |