-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update target/variant/modifier logic in build_examples.py
#23054
Update target/variant/modifier logic in build_examples.py
#23054
Conversation
…) on cc13x2x7. Updating to minimal thread device only
PR #23054: Size comparison from 530adb6 to 1614424 Increases above 0.2%:
Increases (3 builds for bl602, k32w, telink)
Decreases (2 builds for k32w)
Full report (13 builds for bl602, k32w, linux, mbed, nrfconnect, telink)
|
PR #23054: Size comparison from 530adb6 to 1e64e41 Increases above 0.2%:
Increases (3 builds for cc13x2_26x2, k32w, telink)
Decreases (6 builds for bl602, cc13x2_26x2, k32w, telink)
Full report (22 builds for bl602, cc13x2_26x2, k32w, linux, mbed, nrfconnect, qpg, telink)
|
PR #23054: Size comparison from 530adb6 to c1678f5 Increases above 0.2%:
Increases (6 builds for bl702, cc13x2_26x2, efr32, k32w, telink)
Decreases (9 builds for bl602, bl702, cc13x2_26x2, k32w, psoc6, telink)
Full report (38 builds for bl602, bl702, cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
|
PR #23054: Size comparison from 530adb6 to 3beceac Increases above 0.2%:
Increases (33 builds for bl602, bl702, cc13x2_26x2, cyw30739, efr32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
Decreases (17 builds for bl702, cc13x2_26x2, efr32, k32w, psoc6)
Full report (36 builds for bl602, bl702, cc13x2_26x2, cyw30739, efr32, k32w, linux, mbed, nrfconnect, psoc6, qpg, telink)
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't take a close look at the core logic in the helpers, but I looked through the test cases, ran the targets command locally to verify its output, and ran the previous 'glob' command for a handful of targets to ensure the newly expanded targets being built in CI do match.
Thanks @andy31415 !
…chip#23054) * Starting to add some build target logic and unit tests * Restyle * make basic unit tests pass * More unit tests * Restyle * Update prefix logic: use the builder prefix as well * Prepare to move build targets for linux * More conversion tests * more conversions * Converted more targets * Converted more targets * Updted more targets * Simplify target part * Restyle * All applications are converted * Remove old target code - should not be needed anymore * Restyle * Building at least chip-tool works. No introspection though * Fix typo in m5 builds * A bit easier to parse logging * More updates * Add ability to output all variants of some target * Restyle * Add the ability to print all possible targets * Add esp32 qemu support * Restyle * Fix typo * Simplify target printout, make nrf tests work * Restyle * Remove some usages of target glob * Replace glob in build scripts * Restyle * convert some globs into instructions, fix some target compile bugs * make unit tests pass * more unit tests * Restyle * Remove the default of "all" in build targets since that does not mean anything anymore * Rename arm64-clang to arm64 in targets for cloudbuild smoke test * For arm64, clang is a modifier that is required * Remove some whitespace.Tested that targets are ok * Fix ameba * Fix tizen * Fix infineon * Fix qpg * Fix infineon, cc13x2x7 and update android a bit * Fix linux standalone * Fix efr32 * Fix esp32 * Remove glob option from tasks.json * Fix platform naming for targets - fixes darwin target naming * Fix k32w targets - no more release * Adjust arm64 cross compile target names * Fix boufallolab app target * All-clusters full thread device does not link (insufficient ram/flash) on cc13x2x7. Updating to minimal thread device only * Update k32w example builds: nologs is mandatory for low-power builds * Fix output dir for boufallolab: output should be all lowercase * Add back the test/extra_tests variant to host builds * Fix qpg size reports * Update unit tests for available outpust now that test variant was added * Fix expected paths for cc13x2x7 builds * Fix typo in infineon build * Fix BL702 path for output - duplicate boufallolab * Allow rpc modifier for BL706 * Fix unit tests * Move nltestrunner to esp32 test runner and include in cloudbuild * Undo duplicate build target addition * Fix typo: esp32 -> efr32 * Split out fake platform: only tests are really supported there
Existing
build_examples.py
does not scale well on build variants: since every variant gets a cartesian product with all other variants, we have an expoential explosion whenever a new variant was added.We tried to mitigate this by having different 'accept/reject' rules, however in the end we are still building 10-20K item lists when computing build targets and they are generally incomplete.
When looking to add more options (e.g. minmdns libnl or high verbosity) the extra variants becomes a problem.
This PR re-images how build_examples computes available targets, specifically there is no more implicit expansion and we generally just parse input strings. Side-effcts are:
--target
linux-x64-chip-tool-ipv6only-clang
andlinux-x64-chip-tool-clang-ipv6only
will build the same thing (but different output directories)Testing: