This repository contains the firmware binaries for the badges we support. It is published as the webroot of https://ota.badge.team
- Renze Nicolai: SHA2017, HackerHotel 2019, Disobey 2019, Troopers 2019, MCH2022
- Heikki Juva: Disobey 2020
- Tom Clement: CampZone 2019, CampZone 2020, Pixel
- Reinier van der Leer (@Pwuts): DevOps
The release hook workflow is an easy way to push firmware releases to this OTA service. It can be used by calling the hook from a workflow in the firmware repository.
-
Make sure the
firmware_repoproperty is set inbadges.json -
Publish a release
-
Attach the firmware binary as a release asset (e.g. using
gh release upload) -
Call the release hook using
peter-evans/repository-dispatch@v2- This requires a suitable Personal Access Token, see manual)
Payload (example):
{ "device_id": "mch2022", "device_name": "MCH2022", "tag": "v2.0.5", "channel": "dev", "fw_main": "launcher.bin" }device_idshould correspond to an entry inbadges.jsonfw_mainshould match the firmware binary asset on the releasefw_mainis also used to look for a matching.elfrelease asset. If found, it is downloaded and added as{device_id}-{tag}.elf.
channelcan bereleaseordev; other channels do not show up in the index.tagis used as the new.version.nameor.version_{channel}.name.
The release hook then downloads the firmware release asset,
launcher.binin the example above, replacing the old binary, and a PR is created for you to review and publish the OTA update.
cd-release.yml in badgeteam/mch2022-firmware-esp32
All properties have string values.
Slug to uniquely identify this badge by. Should match the firmware file(s) with the format {id}.bin (and {id}_dev.bin).
Display name of the badge.
URL to a website or webpage about this badge.
Badge firmware GitHub repository. Used in the firmware release hook.
Example: badgeteam/mch2022-firmware-esp32
If not set, an attempt will be made to extract a date stamp and version info from the latest .bin file.
Date of the latest version.
Name of the latest version, e.g. v1.4.9 or r5.
Same as .<i>.version but for development builds.
Filename of the bootloader binary.
Display name of the bootloader.
Size of the flash in string format. Is used to find a partition table file if flash.partition_table is not set.
The filename of the partition table. If not set, the file {id}_{flash.size}.bin is used.