Collection of GitHub actions for ecobee. While the current examples are all composite run types, any github action style is welcome here!
See individual action directory for details on usage and examples.
- Go Build artifact - builds golang binary and outputs build tag
- Go Test and Lint - runs golang tests, and lints with golangci-lint
- Push Docker GCR - creates docker file from repo's Dockerfile, pushed using supplied build tag
- Publish DX DORA Metrics - publishes deployment metrics to DX for DORA tracking
This repository follows semantic versioning. When using these actions in workflows:
- Recommended:
@v1- automatically get non-breaking updates (patches and minor versions) - Pinned:
@v1.0.0- pin to a specific release version - Unstable:
@main- use latest code (not recommended for production)
For maintainers releasing new versions:
- Merge changes to main
- Run the release script:
The script will:
./scripts/set-release-tag.sh v1.2.3
- Validate you're on
mainwith a clean working tree - Show the current latest version
- Validate the new version is greater than the current version
- Create and push both the version tag (
v1.2.3) and major tag (v1)
- Validate you're on
⚠️ Important: The release script only validates version format and ordering. You are responsible for:
- Reviewing the changes since the last release
- Determining if the version bump is appropriate (major/minor/patch)
- Ensuring breaking changes are properly documented
- Verifying all actions work as expected
The script is a safeguard against simple mistakes, not a substitute for careful release management.
Manual alternative:
git tag v1.0.0
git push origin v1.0.0
git tag -f v1
git push -f origin v1Versioning Guidelines:
- Major (v2.0.0): Breaking changes to inputs, outputs, or behavior
- Minor (v1.1.0): New features, backward-compatible changes
- Patch (v1.0.1): Bug fixes, documentation updates
