Skip to content

Extend CI/CD to build firmware for all hardware#36

Open
glopesdev wants to merge 7 commits intoharp-tech:mainfrom
glopesdev:build-firmware-action
Open

Extend CI/CD to build firmware for all hardware#36
glopesdev wants to merge 7 commits intoharp-tech:mainfrom
glopesdev:build-firmware-action

Conversation

@glopesdev
Copy link
Collaborator

@glopesdev glopesdev commented Mar 3, 2026

Using an external Makefile to build the firmware will ensure that the same steps are used when building the firmware
either from Atmel Studio or through the CI pipeline.

Firmware build step on GitHub Actions workflow uses the same AVR-GCC toolchain version to ensure reproducible
builds. Version numbers are defined using conditional preprocessor flags which are then set via Makefile variants to allow building for different hardware targets.

This will ensure the same steps are used when building the firmware
either from Atmel Studio or through the CI pipeline.
Currently uses the same AVR-GCC toolchain version to ensure reproducible
builds.
Define version numbers using conditional preprocessor flags which are
then set via Makefile variants.
@glopesdev
Copy link
Collaborator Author

Feedback from SRM:

  • Firmware build artifacts should be tagged with a suffix that clearly indicates they are preview builds, e.g. commit hash. Toolkit firmware update tool may need to take this suffix into account when parsing file names.
    • Alternatives:
      • commit hash (preferred, could be leveraged to inject in the tag release): Behavior-fw3.3-harp1.15-hw2.0-ass0-commitsha.hex
      • ci build counter (could be a temporary fix, since this is a numeric counter it would be compatible with the current format regex for firmware "previews"): Behavior-fw3.3-harp1.15-hw2.0-ass0-preview21.hex
      • both: Behavior-fw3.3-harp1.15-hw2.0-ass0-commitsha-ci21.hex
  • In the future we will also inject the device sha in the firmware build, but not right now.
  • Review naming convention for firmware .hex files. Make a proposal for this that also takes into account the pico firmware release names, e.g. .uf2 files.

This is temporary for backwards compatibility until we review firmware
file naming conventions.
@glopesdev
Copy link
Collaborator Author

@bruno-f-cruz Added the preview suffix for all CI firmware artifacts. Conditional removal of the suffix for releases will be resolved on the next PR which expands this workflow to upload release assets.

As discussed we will temporarily use the preview suffix with the workflow run number until we review the firmware file naming conventions in the protocol.

To drop the preview suffix entirely, release tags are expected to start
with the character 'v'.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New planned feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant