Skip to content

Upload .uf2 firmware to GitHub releases - #190

Merged
jesserockz merged 2 commits into
mainfrom
jesserockz-2026-760
Oct 14, 2026
Merged

jesserockz merged 2 commits into
mainfrom
jesserockz-2026-760

Conversation

@jesserockz

Copy link
Copy Markdown
Member

The "Copy files to output" step in upload-to-gh-release.yml only copied *.{bin,elf}, so RP2040/RP2350 .uf2 images (e.g. esphome/firmware's pico-w and pico-2-w ESPHome Web builds) were uploaded to R2 by upload-to-r2.yml but never attached to the GitHub release. The glob is now *.{bin,elf,uf2}, so .uf2 files are copied with .md5/.sha256 sidecars like the other binaries.

The other workflows don't filter by extension: build.yml moves whole directories, promote-r2.yml and publish-firmware-to-r2.yml follow manifest paths (build-action puts <name>.uf2 in the RP2040 manifest), and upload-to-r2.yml syncs the whole directory.

CI now builds an RP2040 config (tests/ci-rp2040.yaml, rpipicow) in a new build-rp2040 job. verify-artifacts checks the .uf2 is in the artifact, and verify-gh-release includes uf2 in its expected-asset glob and also asserts ci-rp2040.uf2 plus its sidecars by name, since the expected list otherwise shares the upload step's glob.

nRF52 extras (dfu-<name>.zip, <name>.hex) and extensionless host builds are still not copied to the release; left for a follow-up if wanted.

The copy step only picked up *.bin and *.elf, so RP2040/RP2350 .uf2 images
reached R2 but never the GitHub release. Include *.uf2 with md5/sha256
sidecars, and add an RP2040 CI build that verifies the .uf2 lands on the
draft release.
build-action names the image <name>-<platform>.uf2 (ci-rp2040-rp2040.uf2),
so the hardcoded ci-rp2040.uf2 never matched.
@jesserockz
jesserockz merged commit b9d9891 into main Oct 14, 2026
39 checks passed
@jesserockz
jesserockz deleted the jesserockz-2026-760 branch October 14, 2026 10:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant