3.8 KiB
Releasing Firmware
GitHub Actions is set up to automatically build and draft firmware releases.
Required GitHub Variable
Set the repository Actions variable OFFICIAL_MESHCORE_VERSION to the current upstream MeshCore release version.
Example:
OFFICIAL_MESHCORE_VERSION=v1.15.0
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-wifi-v1.15.0repeater-bridge-espnow-v1.15.0observer-eastmesh-bridge-espnow-v2026.5.1observer-eastmesh-bridge-mqtt-v2026.7.0observer-eastmesh-v2026.5.1
Use the upstream MeshCore version in companion-wifi-v1.15.0.
Use the upstream MeshCore version in repeater-bridge-espnow-v1.15.0.
Use the EastMesh release version in observer-eastmesh-bridge-espnow-v2026.5.1.
Use the EastMesh release version in observer-eastmesh-bridge-mqtt-v2026.7.0.
Use the EastMesh release version in observer-eastmesh-v2026.5.1.
Each tag triggers a separate workflow:
companion-wifi-v*builds companion WiFi firmwarerepeater-bridge-espnow-v*builds repeater ESP-NOW bridge firmwareobserver-eastmesh-bridge-espnow-v*builds Observer ESP-NOW firmwareobserver-eastmesh-bridge-mqtt-v*builds Observer MQTT bridge firmwareobserver-eastmesh-v*builds Observer 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:
companion-wifiuses the version in the tag asFIRMWARE_VERSIONrepeater-bridge-espnowuses the version in the tag asFIRMWARE_VERSIONobserver-eastmesh-bridge-espnowusesOFFICIAL_MESHCORE_VERSIONasFIRMWARE_VERSIONand the EastMesh version from the tag asEASTMESH_VERSIONobserver-eastmesh-bridge-mqttusesOFFICIAL_MESHCORE_VERSIONasFIRMWARE_VERSIONand the EastMesh version from the tag asEASTMESH_VERSIONobserver-eastmeshusesOFFICIAL_MESHCORE_VERSIONasFIRMWARE_VERSIONand the EastMesh version from the tag asEASTMESH_VERSION
The resulting version string depends on the workflow:
companion-wifi:v1.15.0-<commit>repeater-bridge-espnow:v1.15.0-<commit>observer-eastmesh-bridge-espnow:v1.15.0-eastmesh-v2026.5.1-<commit>observer-eastmesh-bridge-mqtt:v1.15.0-eastmesh-v2026.7.0-<commit>observer-eastmesh:v1.15.0-eastmesh-v2026.5.1-<commit>
Example:
- tag:
observer-eastmesh-v2026.5.1 - repo variable:
OFFICIAL_MESHCORE_VERSION=v1.15.0 - resulting build version:
v1.15.0-eastmesh-v2026.5.1-abcdef
Typical Release Flow
- Update the
OFFICIAL_MESHCORE_VERSIONGitHub Actions variable if upstream has changed. - Update
release-notes.ymlondevelopfor any release entries you want included in the tagged commit. - Open and merge the release PR from
developtomain. - Create the release tags you want on the target commit on
main. - Push the tags.
- Wait for the workflows to finish building.
- Review the draft GitHub Releases.
- Publish the release.
If release-notes.yml should reflect the tagged firmware release in-repo, make that change before the PR to main so the tagged commit already contains the matching release notes.
Example:
git tag companion-wifi-v1.15.0
git tag repeater-bridge-espnow-v1.15.0
git tag observer-eastmesh-bridge-espnow-v2026.5.1
git tag observer-eastmesh-bridge-mqtt-v2026.7.0
git tag observer-eastmesh-v2026.5.1
git push origin companion-wifi-v1.15.0 repeater-bridge-espnow-v1.15.0 observer-eastmesh-bridge-espnow-v2026.5.1 observer-eastmesh-bridge-mqtt-v2026.7.0 observer-eastmesh-v2026.5.1
Supported Tags
companion-wifi-v1.15.0repeater-bridge-espnow-v1.15.0observer-eastmesh-bridge-espnow-v2026.5.1observer-eastmesh-bridge-mqtt-v2026.7.0observer-eastmesh-v2026.5.1