Repository navigation
ci: reorganize ARM testlists by family and add chip build filter - #20787
Swatantra-66 wants to merge 1 commit into
Conversation
|
2d8e4dd to
f76953a
Compare
f76953a to
4843182
Compare
raiden00pl
left a comment
There was a problem hiding this comment.
Was this done with AI? Blindly modifying CI with AI is not a very good idea.
4843182 to
aa6d87f
Compare
Reorganize ARM CI testlists from arbitrary alphanumeric partitions (arm-01..14) into 13 balanced vendor/family testlists, and add chip-isolated build filtering in CI (Phase 2 of apache#20483). Summary of changes: - tools/ci/testlist/: Replace arm-01..14 with 13 balanced family testlists (arm-imx, arm-nrf, arm-nxp, arm-rp2xxx, arm-sam, arm-ti, arm-stm32f4-1/2, arm-stm32f0-f3, arm-stm32h7, arm-stm32l-u-g, arm-stm32-other, arm-other). Full parity preserved for all defconfigs, CMake builds, and blacklist entries with alphabetical sorting across all files. - .github/workflows/arch.yml: Detect isolated single-family ARM PRs and build only the matching container(s). Automatically fall back to all ARM containers if common files, unknown chips, multiple families, or truncated diffs are detected. - .github/workflows/build.yml: Update Linux-Arch board matrix to the 13 family targets and use local workflow references. Resolves: apache#20483 Signed-off-by: Swatantra Yadav <maverickswatantra@gmail.com>
aa6d87f to
2f5bc92
Compare
|
Hi @raiden00pl, thank you for the review All points have been addressed:
|
|
this PR will also break the CI for the apps, so we need a PR on the apps side that is ready to be merged after this changes |
@Swatantra-66 maybe you should already prepare the PR for nuttx-apps, to avoid breaking the CI for a long time |
|
Hi @raiden00pl @acassis, I have submitted the companion PR on the apps side: apache/nuttx-apps#3891. It updates |
Summary
Implements Phase 2 of #20483 ("Improve and optimize NuttX CI").
Background & Problem
arm-01througharm-14) partitioned 1,230 defconfigs alphanumerically, resulting in significant compile duration imbalance (e.g.arm-04andarm-10built only ~41 defconfigs whilearm-13built 199), causing faster runners to sit idle waiting for the slowest container.Key Changes
Balanced Family Testlists (
tools/ci/testlist/):arm-01..14with 13 balanced vendor/family-based testlists (~60 to 120 defconfigs each):arm-imxrt.dat: i.MX RT and i.MX6/9/8 (76 defconfigs)arm-nrf.dat: nRF52, nRF53, nRF54L, nRF91 (89 defconfigs)arm-nxp.dat: LPC, Kinetis, S32K, LC823450 (114 defconfigs)arm-rp2040.dat: RP2040 and RP2350 (130 defconfigs)arm-sam.dat: SAM34, SAMA5, SAMD/E/V (88 defconfigs)arm-ti-cxd56.dat: Tiva, RM57, TMS570, CXD56xx (73 defconfigs)arm-stm32f4-1.dat&arm-stm32f4-2.dat: STM32F4 (split 50/50: 65 & 77 defconfigs)arm-stm32f0-f3.dat: STM32F0, F1, F2, F3 (109 defconfigs)arm-stm32h7.dat: STM32H7 (97 defconfigs)arm-stm32l-u-g.dat: STM32L, U, G, WB, WL (80 defconfigs)arm-stm32-other.dat: STM32F7, H5, C0, C5, N6 (53 defconfigs)arm-other.dat: Niche/generic ARM chips (GD32, AT32, MPS, Max326, RTL872x, etc.)Chip-Isolated Build Filtering (
.github/workflows/arch.yml):get-arch, if a PR touches only a single ARM family (underarch/arm/src/<chip>/and/orboards/arm/<chip>/), CI setsarm_familyto compile only that family's container (e.g. PR on i.MX RT only runsarm-imxrt).arch/arm/src/common,arch/arm/src/stm32/,sched/,drivers/, etc.) are touchedWorkflow Integration (
.github/workflows/build.yml):Linux-Archinput array to match the 13 family targets../.github/workflows/arch.yml.Fixes #20483.
Impact
Testing
I confirm that changes are verified on local setup:
.github/workflows/) and Testlists (tools/ci/testlist/)Verification Details:
yaml.safe_loadacross both modified workflow files (arch.yml,build.yml).arch/arm/src/imxrt/...->arm-imxrt)arch/arm/src/common/...-> all 13 containers)