Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

ci: run Zephyr builds in parallel#286

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
pillo79 wants to merge5 commits intoarduino:main
base:main
Choose a base branch
Loading
frompillo79:parallel-ci

Conversation

@pillo79
Copy link

@pillo79pillo79 commentedNov 26, 2025
edited
Loading

This pull request refactors the GitHub Actions workflow for packaging the core, splitting the build pipeline into more granular jobs, improving artifact handling and cleanup, and enhancing error reporting in packaging scripts.

The main goals are to improve parallelization and provide clearer diagnostics during packaging:

  • The workflow is split into distinct jobs:build-env (fetches the Zephyr environment only once),build-board (builds board-specific binaries in parallel),package-core (packages each core artifact in paraallel), andtest-core (tests each board in parallel). This change nowmakes the whole CI pipeline basically independent of the number of boards / packages being tested.

  • CI now tries to run as much as possible in case an error is detected, while still indicating which parts of the CI build are failing.Build failures for individual boards are summarized and included in the GitHub Actions step summary, andthe full contents of the build directory can be retrieved for easy inspection. Tests are attempted even when some of the boards did not compile successfully.

Seehere for a sample run that includes a failed Giga build.

Future work could move the Zephyr env preparation step using Docker; I think that should speed up the process compared to the current artifact upload/download.

No longer useful for any purpose.Signed-off-by: Luca Burelli <l.burelli@arduino.cc>
Save the prepared build environment as an artifact after the initialsetup, to allow for multiple jobs to reuse it without repeating theinitial Zephyr configuration steps.Signed-off-by: Luca Burelli <l.burelli@arduino.cc>
Convert the sequential building and packaging of all board binaries intoa matrix job, allowing parallel execution. This makes the workflow moreefficient and independent of the number of supported boards.Signed-off-by: Luca Burelli <l.burelli@arduino.cc>
Use a common function to handle logging messages for GitHub Actions andfor the console, for a cleaner output.Signed-off-by: Luca Burelli <l.burelli@arduino.cc>:1
These changes allow the packaging and testing jobs to start even if someof the build jobs have resulted in errors, thus maximizing the amount oftesting that can be performed in parallel CI workflows even if one boardis causing issues.The build step artifacts will be saved with a "failed-" prefix in case oferrors and can be inspected for further information.Signed-off-by: Luca Burelli <l.burelli@arduino.cc>
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@iabdalkaderiabdalkaderAwaiting requested review from iabdalkader

@facchinmfacchinmAwaiting requested review from facchinm

@pennampennamAwaiting requested review from pennam

At least 1 approving review is required to merge this pull request.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

1 participant

@pillo79

[8]ページ先頭

©2009-2025 Movatter.jp