- For tests, use standard Go tooling:
go test ./...
- For lint, use golangci-lint:
golangci-lint run ./...
- For integration tests, use Docker to provide test environments:
docker build -f Dockerfile.test .
- Hansel uses goreleaser, but this is not required for development.
Releases are built and published from GitHub Actions. Release versions follow semver.
To trigger a release:
- Determine the appropriate version increment, as a rule of thumb:
- If removing a CLI argument, increment the major version.
- If adding a CLI argument, increment the minor version.
- Else, increment the patch version.
- Check the release history and increment to determine the next version. e.g. a patch increment to
v1.2.2
would bev1.2.3
. - Create a tag with the next version, push the tag:
git checkout main
git pull origin main
git log -1 # double-check the expected commit
git tag -a v1.2.3 -m "v1.2.3 release"
git push --tags
- Monitor the release process from GitHub Actions.