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_repo
property 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_id
should correspond to an entry inbadges.json
fw_main
should match the firmware binary asset on the releasefw_main
is also used to look for a matching.elf
release asset. If found, it is downloaded and added as{device_id}-{tag}.elf
.
channel
can berelease
ordev
; other channels do not show up in the index.tag
is used as the new.version.name
or.version_{channel}.name
.
The release hook then downloads the firmware release asset,
launcher.bin
in 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.