Skip to content

ci: upload firmware artifacts and publish a release on main - #15

Merged
mcamposv merged 2 commits into
mainfrom
ci/release-artifacts
Nov 2, 2026
Merged

mcamposv merged 2 commits into
mainfrom
ci/release-artifacts

Conversation

@mcamposv

@mcamposv mcamposv commented Nov 2, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Every run (PRs, feature/**, main) packages the binaries and uploads them as a workflow artifact (Actions → run → Artifacts):
    • modbusproxy-<ver>-firmware.bin — OTA / USB update at 0x10000
    • modbusproxy-<ver>-factory.bin — merged image for a blank ESP32 at 0x0
    • modbusproxy-<ver>-bootloader.bin / -partitions.bin — 0x1000 / 0x8000
    • modbusproxy-<ver>-sha256.txt
  • Push to main also creates release v<FIRMWARE_VERSION> with those files and auto-generated notes. If the release already exists the step is skipped with a notice — bump FIRMWARE_VERSION to publish a new one.
  • Flash offsets come from pio project metadata, so they follow the PlatformIO layout instead of being hard-coded.
  • Built from 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 real secrets.h).

Test plan

  • Packaging step run locally: factory image headers verified (E9 @0x1000, AA50 @0x8000, E9 @0x10000) and firmware byte-identical at 0x10000
  • Release notes rendered locally
  • CI on this PR uploads the artifact
  • After merge, the main run publishes release v6.1-0

🤖 Generated with Claude Code

mcamposv and others added 2 commits November 2, 2026 13:43
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>
@mcamposv
mcamposv merged commit bfba99b into main Nov 2, 2026
1 check passed
@mcamposv
mcamposv deleted the ci/release-artifacts branch November 2, 2026 12:47
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