Add merged binaries to release assets#524
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThis PR adds binary merging functionality to the Tactility firmware build pipeline. The change introduces two merge scripts—one for Unix-like systems (merge.sh) and one for Windows (merge.ps1)—that detect available esptool installation, read flash arguments from the Binaries directory, and invoke esptool's merge-bin command to combine multiple firmware binaries into a single output file. The GitHub Actions build-firmware composite action is updated to run the merge script after the release build, install esptool if needed, and upload the resulting merged binary as an artifact. Finally, the CDN artifact filtering logic is extended to exclude ".bin" directories from reprocessing to prevent merged outputs from being treated as input sources. 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: d18b3129-8547-4bfa-8ff2-462c8dc0ab73
📒 Files selected for processing (4)
.github/actions/build-firmware/action.ymlBuildscripts/CDN/generate-firmware-files.pyBuildscripts/Flashing/merge.ps1Buildscripts/Flashing/merge.sh
|
Thanks a lot! I reviewed it and it looks fine. I'll merge it once the pipelines are green. |
Summary
This PR adds merged firmware binaries to the firmware build artifacts.
Each firmware build now produces three artifacts per environment/device:
Tactility-<board>.zipTactility-<board>-symbols.zipTactility-<board>.binThe
.binfile is generated from the release binaries using the new merge script and is named after the same environment/device as the regular release artifact.Changes
Buildscripts/Flashing/merge.shandBuildscripts/Flashing/merge.ps1to the release package.esptooland runmerge.shafter creating the release folder.Tactility-<board>.binas an additional artifact.merge.shaccepts an optional chip argument and falls back toesp32s3when not provided.merge.sh, so merged binaries are generated with the correct ESP target..binartifacts so they are not treated as firmware package directories.Notes
The merged binary is generated as
merged_binary.binbyesptool merge-bin, then renamed toTactility-<board>.binbefore being uploaded as an artifact.Tests
Tested CI, but couldn't test release assets due to secrets used by CDN, but merged binary artifact is being passed.
Summary by CodeRabbit
New Features
Chores