Skip to content

CI: fix GitHub Actions build and build every board - #98

Merged
tridge merged 4 commits into
masterfrom
pr-fix-CI
Sep 19, 2026
Merged

tridge merged 4 commits into
masterfrom
pr-fix-CI

Conversation

@tridge

@tridge tridge commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

CI has been failing since GitHub started rejecting jobs that use actions/upload-artifact v3.

This PR:

  • moves the workflow to actions/checkout@v4, actions/upload-artifact@v4 and the ubuntu-24.04 runner, adds a job timeout, and drops the unused intelhex pip install
  • makes tests/test_build.sh derive the board list from Firmware/include/rules_*.mk and fail if any board is missing a firmware or bootloader image, so every board is built and checked
  • fixes the firmware sources to build with newer sdcc versions, which reject empty () prototypes under --Werror and flag an out-of-range enum value and a folded switch bounds check in param_check()

Verified all 12 boards build with sdcc 4.0.0 (Ubuntu 22.04), 4.2.0 (Ubuntu 24.04, the CI runner) and 4.5.0. Bootloader binaries are byte-identical to before; radio binaries only differ in the param_check() code layout.

newer sdcc versions reject empty () prototypes with --Werror
- use (void) for empty function prototypes, rejected by sdcc >= 4.5
- remove unused PIN_MIRROR_NULL enum value that is outside int range
- move the PARAM_MAX range check in param_check() into the switch
  default case, avoiding an sdcc optimizer error on the switch when
  the range is already known to be checked

bootloader binaries are unchanged; radio binaries only change in
param_check() code layout
derive the board list from include/rules_*.mk so new boards are
built automatically, and fail if any board is missing a firmware or
bootloader image
actions/upload-artifact@v3 is deprecated and now fails the job.
Move to checkout@v4, upload-artifact@v4 and ubuntu-24.04, add a job
timeout, and drop the intelhex pip install which nothing uses
@tridge
tridge merged commit 303ae63 into master Sep 19, 2026
2 checks passed
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