mirror of
https://github.com/compute-blade-community/compute-blade-agent.git
synced 2026-04-21 17:45:43 +02:00
53 lines
1.9 KiB
Markdown
53 lines
1.9 KiB
Markdown
# Contributing
|
|
|
|
## Releases
|
|
|
|
This project uses [release-please](https://github.com/googleapis/release-please) and [goreleaser](https://goreleaser.com/) to automate releases based on conventional commits.
|
|
|
|
Releases are **semi-automated** and follow this flow:
|
|
|
|
### 1. Merge Code to `main`
|
|
|
|
All new features, fixes, and changes are merged into the `main` branch via pull requests using [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
|
|
|
|
Examples:
|
|
|
|
- `feat: add new API endpoint`
|
|
- `fix: correct off-by-one error`
|
|
- `chore: update dependencies`
|
|
|
|
### 2. Release PR is Auto-Created
|
|
|
|
Once a commit is merged into `main`, a GitHub Action runs `release-please`, which:
|
|
|
|
- Calculates the next version (e.g., `v0.9.1`)
|
|
- Creates a pull request (e.g., `chore: release v0.9.1`)
|
|
- Includes a generated changelog in `CHANGELOG.md`
|
|
|
|
> 📌 Note:
|
|
> This PR should **not be edited manually**. If something is wrong, fix the commit messages instead.
|
|
|
|
### 3. Merge the Release PR
|
|
|
|
Once the release PR is approved and merged:
|
|
|
|
- The changelog and version bump are committed to `main`
|
|
- `release-please` pushes a new tag with the version-number the merged commit on `main`
|
|
|
|
### 4. Tag Triggers `goreleaser`
|
|
|
|
A GitHub Action watches for `v*` tags and runs `goreleaser`, which:
|
|
|
|
- Builds all binaries and artifacts
|
|
- Publishes them to GitHub Releases
|
|
- Optionally signs and pushes container images (if configured)
|
|
- Attaches additional files (e.g., firmware, config) as release assets
|
|
|
|
Once complete, the new GitHub Release is available at: [github.com/compute-blade-community/compute-blade-agent/releases](https://github.com/compute-blade-community/compute-blade-agent/releases)
|
|
|
|
## Notes
|
|
|
|
- Never push tags manually.
|
|
- Only edit the changelog through conventional commits and `release-please`.
|
|
- You can retry failed releases by deleting the failed tag and re-merging the release PR or re-running the workflow.
|