ci: build only the Zephyr boards that have the changed module - #11316
Open
lynt-smitka wants to merge 1 commit into
Open
ci: build only the Zephyr boards that have the changed module#11316lynt-smitka wants to merge 1 commit into
lynt-smitka wants to merge 1 commit into
Conversation
ci_set_matrix.py cannot ask make which Zephyr boards compile a module, so a change to any module built all 29 of them, and a frozen library update too although the port has no frozen modules. The module table of a Zephyr board is only known to its build, which writes it to autogen_board_info.toml. Keep it: build_release_files.py copies the file the push build generated to bin/zephyr-modules/<ref>/ <board>.toml, from where the existing bin/ upload puts it on S3 next to mpy-cross and the stubs. The scheduler fetches it for the PR's base ref and builds a board when the table says the module is enabled, or when the table is missing, unreadable or does not know the module. frozen/ changes build no Zephyr boards; supervisor/ changes still build all. Until the first push build after this lands there is no table and every Zephyr board is built, as today. ZEPHYR_MODULES_URL overrides the location for testing.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ci_set_matrix.py cannot ask make which Zephyr boards compile a module, so any module change builds all 29 of them, and so does a frozen library update although the port has no frozen modules.
The module table of a Zephyr board is only known to its build, which writes autogen_board_info.toml; the committed copy can lag, CI only warns when it is out of date. So build_release_files.py copies the table the push build generated to bin/zephyr-modules//.toml, the existing bin/ upload puts it on S3 next to mpy-cross and the stubs, and the scheduler fetches it for the PR's base ref. A board with a missing table is built. Since the module set only changes through files that build every Zephyr board anyway, the tables refresh themselves on the next push.
Until the first push build after this lands every Zephyr board is built, as today.