PX4-Autopilot/Tools/ci/build_all_config.yml
Ramon Roche c0a45cef70
ci(build-all): MCU-based groups, cache seeders, build infra overhaul (#27050)
Signed-off-by: Ramon Roche <mrpollo@gmail.com>
2026-04-10 18:49:53 -07:00

72 lines
1.8 KiB
YAML

# Build All Targets CI Configuration
#
# Controls board grouping, cache sizes, runner specs, and seeder targets
# for the build_all_targets workflow. Forks can customize this file to
# adjust for their infrastructure (e.g., lower cache sizes for GitHub's
# 10GB cache limit, fewer CPU cores for smaller runners).
# Container images
containers:
default: "ghcr.io/px4/px4-dev:v1.17.0-rc2"
voxl2: "ghcr.io/px4/px4-dev-voxl2:v1.7"
# Runner specs
runners:
seeder_cpu: 8
matrix_cpu: 4
# Default ccache max-size for build groups
cache:
default_size: "400M"
# Per-chip overrides for groups with many diverse boards
chip_sizes:
stm32h7: "800M"
stm32f4: "800M"
stm32f7: "800M"
imxrt: "800M"
# Board grouping limits
grouping:
# Max targets per group, tuned for ~10 min wall-clock with warm cache
chip_split_limits:
stm32h7: 10
stm32f7: 12
stm32f4: 20
stm32f1: 39
imxrt: 12
kinetis: 14
s32k: 17
rp2040: 10
special: 10
native: 17
default_split_limit: 12
# Minimum targets for a manufacturer to get a named group
lower_limit: 3
# If last chunk has fewer targets than this, merge into previous chunk
merge_back_threshold: 5
# Labels that isolate builds into the "special" group
special_labels:
- lto
- protected
# NXP chip families are pooled under "nxp-{chip}" regardless of board directory
nxp_chip_families:
- imxrt
- kinetis
- s32k
# Seeder targets: one representative build per chip family
seeders:
stm32h7: "px4_fmu-v6x_default"
stm32f7: "px4_fmu-v5_default"
stm32f4: "px4_fmu-v4_default"
stm32f1: "px4_io-v2_default"
imxrt: "nxp_mr-tropic_default"
kinetis: "nxp_fmuk66-v3_default"
s32k: "nxp_mr-canhubk3_default"
rp2040: "raspberrypi_pico_default"
special: "px4_fmu-v6x_default"
native: "px4_sitl_default"
voxl2: "modalai_voxl2_default"