Skip to content

Conversation

@pillo79
Copy link

@pillo79 pillo79 commented Oct 14, 2025

⚠️ THIS CHANGES THE FQBN FOR ALL BOARDS EXCEPT THE UNO Q ⚠️

Split the CI workflow to generate multiple artifacts. The current board list is split in multiple files, one per FQBN, depending on the new <board>.build.artifact variable in boards.txt:

  • zephyr_unoq artifact with arduino:zephyr for the Arduino Uno Q
  • zephyr_main artifact with arduino:zephyr_main for other official Arduino boards
  • zephyr_contrib artifact with arduino:zephyr_contrib for boards not from Arduino (i.e. other eval boards) - the default

An extra zephyr binary file with all boards is always generated for the sync-zephyr-artifacts tool to retrieve all binaries for a specific release.

@pillo79 pillo79 force-pushed the pr-multi-package branch 3 times, most recently from 91ef429 to 58dbf8e Compare October 14, 2025 19:29
Rename BOARD_VARIANTS to ALL_BOARD_DATA to reflect that it contains
more than just board variants. Define PLAT environment variable so that
it can be easily changed to build other platforms than arduino:zephyr.

Signed-off-by: Luca Burelli <[email protected]>
* Generate CORE_ARTIFACT every step so that multi-package is possible
  via matrix iterations in the next commit.

* Convert gen_package_index_json.sh to take parameters instead of
  environment variables.

* Export the name of the package from get_board_details.sh.

* Rework package_core.sh so that it is easily extendable to multiple
  packages.

Signed-off-by: Luca Burelli <[email protected]>
Add the get_core_version.sh script to generate a SemVer-compatible
version number for the core, based on Git tags. Update package_core.sh
and gen_package_index_json.sh to use it.

Signed-off-by: Luca Burelli <[email protected]>
Add a new "board.build.artifact" option to boards.txt to specify which
artifact a board belongs to. If not specified, the board will
automatically be added to "zephyr_contrib".

The artifact names collected from boards.txt (plus the auto "zephyr"
package, which includes all boards) are used to build and package each
artifact in the GitHub Actions workflow; in particular, the FQBN of each
board will depend on its artifact's "architecture" field.
The test action is also updated to test each artifact on the appropriate
boards.

Individual package JSON files are in the extra/artifacts directory,
along with common include/exclude files for packaging.

Signed-off-by: Luca Burelli <[email protected]>
Make sure the JSONs are generated on PRs too, so that they can be
inspected before merging.
@pennam pennam merged commit e9721a9 into arduino:main Oct 15, 2025
24 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.

2 participants