Repository navigation
ci: upload firmware artifacts and publish a release on main - #15
Merged
Merged
Conversation
Every run packages the binaries (firmware for OTA/USB updates, bootloader, partitions, a merged factory image for blank ESP32s at 0x0 and sha256 checksums) and uploads them as a workflow artifact. Flash offsets are read from `pio project metadata`, so they follow the PlatformIO layout. Pushes to main also create release v<FIRMWARE_VERSION> with those binaries and auto-generated notes. If that release already exists the step is skipped: bump FIRMWARE_VERSION to publish a new one. Built from secrets.h.template: a new device boots into the Setup captive portal; existing devices keep their NVS config on update. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
feature/**,main) packages the binaries and uploads them as a workflow artifact (Actions → run → Artifacts):modbusproxy-<ver>-firmware.bin— OTA / USB update at0x10000modbusproxy-<ver>-factory.bin— merged image for a blank ESP32 at0x0modbusproxy-<ver>-bootloader.bin/-partitions.bin—0x1000/0x8000modbusproxy-<ver>-sha256.txtmainalso creates releasev<FIRMWARE_VERSION>with those files and auto-generated notes. If the release already exists the step is skipped with a notice — bumpFIRMWARE_VERSIONto publish a new one.pio project metadata, so they follow the PlatformIO layout instead of being hard-coded.secrets.h.template: new devices boot into the Setup captive portal; existing devices keep their NVS config.dist/added to.gitignore(a local package would contain the realsecrets.h).Test plan
E9@0x1000,AA50@0x8000,E9@0x10000) and firmware byte-identical at 0x10000mainrun publishes releasev6.1-0🤖 Generated with Claude Code