chore: wire uv, update GitHub workflows, and document EastMesh releases

This commit is contained in:
Jared Dohrman
2026-04-09 10:15:58 +10:00
parent be780491ac
commit 009e281181
14 changed files with 1001 additions and 187 deletions
+75 -9
View File
@@ -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`