chore: wire uv, update GitHub workflows, and document EastMesh releases
This commit is contained in:
+75
-9
@@ -1,15 +1,81 @@
|
||||
# Releasing Firmware
|
||||
|
||||
GitHub Actions is set up to automatically build and release firmware.
|
||||
GitHub Actions is set up to automatically build and draft firmware releases.
|
||||
|
||||
It will automatically build firmware when one of the following tag formats are pushed.
|
||||
## Required GitHub Variable
|
||||
|
||||
- `companion-v1.0.0`
|
||||
- `repeater-v1.0.0`
|
||||
- `room-server-v1.0.0`
|
||||
Set the repository Actions variable `OFFICIAL_MESHCORE_VERSION` to the current upstream MeshCore release version.
|
||||
|
||||
> NOTE: replace `v1.0.0` with the version you want to release as.
|
||||
Example:
|
||||
|
||||
- You can push one, or more tags on the same commit, and they will all build separately.
|
||||
- Once the firmware has been built, a new (draft) GitHub Release will be created.
|
||||
- You will need to update the release notes, and publish it.
|
||||
- `OFFICIAL_MESHCORE_VERSION=v1.2.3`
|
||||
|
||||
This value becomes the base `FIRMWARE_VERSION` used by the release workflows.
|
||||
|
||||
## EastMesh Release Tags
|
||||
|
||||
Push one or more of the following tag formats to trigger the matching firmware release workflow:
|
||||
|
||||
- `companion-eastmesh-v1.0.1`
|
||||
- `repeater-eastmesh-v1.0.1`
|
||||
- `room-server-eastmesh-v1.0.1`
|
||||
|
||||
Replace `v1.0.1` with the EastMesh release version you want to publish.
|
||||
|
||||
Each tag triggers a separate workflow:
|
||||
|
||||
- `companion-eastmesh-*` builds companion firmware
|
||||
- `repeater-eastmesh-*` builds repeater firmware
|
||||
- `room-server-eastmesh-*` builds room server firmware
|
||||
|
||||
You can push one, or more tags on the same commit, and they will all build separately.
|
||||
|
||||
## Resulting Firmware Version
|
||||
|
||||
During the GitHub Actions build:
|
||||
|
||||
- `FIRMWARE_VERSION` comes from `OFFICIAL_MESHCORE_VERSION`
|
||||
- `EASTMESH_VERSION` comes from the tag
|
||||
|
||||
The final firmware/artifact version string becomes:
|
||||
|
||||
- `v1.2.3-eastmesh-v1.0.1-<commit>`
|
||||
|
||||
Example:
|
||||
|
||||
- tag: `room-server-eastmesh-v1.0.1`
|
||||
- repo variable: `OFFICIAL_MESHCORE_VERSION=v1.2.3`
|
||||
- resulting build version: `v1.2.3-eastmesh-v1.0.1-abcdef`
|
||||
|
||||
## Typical Release Flow
|
||||
|
||||
1. Update the `OFFICIAL_MESHCORE_VERSION` GitHub Actions variable if upstream has changed.
|
||||
2. Create the release tags you want on the target commit.
|
||||
3. Push the tags.
|
||||
4. Wait for the workflows to finish building.
|
||||
5. Review the draft GitHub Releases.
|
||||
6. Update the release notes and publish them.
|
||||
|
||||
Example:
|
||||
|
||||
```bash
|
||||
git tag companion-eastmesh-v1.0.1
|
||||
git tag repeater-eastmesh-v1.0.1
|
||||
git tag room-server-eastmesh-v1.0.1
|
||||
git push origin companion-eastmesh-v1.0.1 repeater-eastmesh-v1.0.1 room-server-eastmesh-v1.0.1
|
||||
```
|
||||
|
||||
## Legacy Tags
|
||||
|
||||
The workflows still accept older tag formats for compatibility:
|
||||
|
||||
- `companion-v1.2.3`
|
||||
- `repeater-v1.2.3`
|
||||
- `room-server-v1.2.3`
|
||||
- `room-server-v1.2.3-eastmesh-v1.0.1`
|
||||
|
||||
However, the recommended EastMesh release format is:
|
||||
|
||||
- `companion-eastmesh-v1.0.1`
|
||||
- `repeater-eastmesh-v1.0.1`
|
||||
- `room-server-eastmesh-v1.0.1`
|
||||
|
||||
Reference in New Issue
Block a user