mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-10-06 09:02:52 +08:00
Each build job compiled its group one target at a time, and the serial parts of every build (configure, the NuttX make, linking) left the 4-vCPU runners about half idle. Two concurrent builds keep them around 80% busy and cut total build-step time about 24% and runner cost about 17%. Larger runners and more slots were measured and cost more than they save. build_all_runner.py replaces build_all_runner.sh. NuttX compiles inside its source tree, so each extra slot is a git worktree under .build_slots/. All submodules are fetched once before building, each slot clones them locally from the checkout, and builds run with GIT_SUBMODULES_ARE_EVIL=1 so CMake's per-configure submodule check does not sync and update them concurrently on the shared .git/config. Targets that write the same build/ directory (<board>_deb with <board>_default, the metadata targets with px4_sitl_default) always share a slot, and the runner refuses a plan that would split them. Every target is built even after a failure. Build output streams with a [seconds|slot target] prefix, each target prints its memory usage or, on failure, the excerpt from the first error, and a Build Logs step prints each target's full log as one collapsed group. Slot build directories are moved into build/, so packaging is unchanged. The matrix now carries targets as a list plus a slot count from build_all_config.yml; the comma-joined string existed only because workflow expressions could not pass an array to a shell command, which join() now does. The scan job runs new tests for the generated matrix and the slot assignment. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Ramon Roche <mrpollo@gmail.com>
127 lines
1.6 KiB
Plaintext
127 lines
1.6 KiB
Plaintext
*.dSYM
|
|
*.o
|
|
*.gch
|
|
*.pyc
|
|
*~
|
|
.*.swp
|
|
.context
|
|
.cproject
|
|
.DS_Store
|
|
.gdbinit
|
|
.gdb_history
|
|
.project
|
|
.settings
|
|
.swp
|
|
.~lock.*
|
|
Testing/
|
|
Packages/*
|
|
build/*
|
|
build_*/
|
|
/.build_slots/
|
|
/docker-context/
|
|
cscope.out
|
|
cscope.in.out
|
|
cscope.po.out
|
|
Firmware.sublime-workspace
|
|
user.sublime*
|
|
/Documentation/doxy.log
|
|
/Documentation/html/
|
|
/Documentation/doxygen*objdb*tmp
|
|
.tags
|
|
tags
|
|
.tags_sorted_by_file
|
|
.pydevproject
|
|
.ropeproject
|
|
*.orig
|
|
Firmware.zip
|
|
*.generated.h
|
|
.vagrant
|
|
*.pretty
|
|
xcode
|
|
rootfs/
|
|
*.autosave
|
|
CMakeLists.txt.user
|
|
GPATH
|
|
GRTAGS
|
|
GTAGS
|
|
*.creator
|
|
*.creator.user
|
|
*.files
|
|
*.includes
|
|
|
|
# CLion ignores
|
|
.idea
|
|
cmake-build-*/
|
|
|
|
posix-configs/SITL/init/test/*_generated
|
|
|
|
/airframes.md
|
|
/airframes.xml
|
|
/parameters.md
|
|
/parameters.xml
|
|
/modules
|
|
/msg/ros/*.msg
|
|
|
|
*.gcov
|
|
.coverage
|
|
.coverage.*
|
|
|
|
# KDevelop ignores
|
|
.kdev4/*
|
|
*.kdev4
|
|
|
|
# cmake in tree (ninja)
|
|
.ninja_deps
|
|
.ninja_log
|
|
bin/
|
|
build.ninja
|
|
cmake_install.cmake
|
|
CMakeCache.txt
|
|
CMakeFiles
|
|
compile_commands.json
|
|
CPackConfig.cmake
|
|
CPackSourceConfig.cmake
|
|
CTestTestfile.cmake
|
|
external/
|
|
rules.ninja
|
|
|
|
# in tree build
|
|
**/*.a
|
|
**/*.px4mod
|
|
**/*.stamp
|
|
/coverage*
|
|
/functional-*
|
|
/generated_params/
|
|
/googletest-*/
|
|
/logs
|
|
/mavsdk_tests
|
|
/unit-*
|
|
/uORB/
|
|
DartConfiguration.tcl
|
|
msg/tmp/
|
|
msg/topics_sources/
|
|
platforms/posix/apps.cpp
|
|
platforms/posix/apps.h
|
|
src/lib/version/build_git_version.h
|
|
src/modules/simulator/simulator_config.h
|
|
src/systemcmds/topic_listener/listener_generated.cpp
|
|
|
|
!src/drivers/distance_sensor/broadcom/afbrs50/Lib/*
|
|
|
|
# colcon
|
|
log/
|
|
keys/
|
|
|
|
# metadata
|
|
_emscripten_sdk/
|
|
|
|
# virtual Python environment
|
|
.venv
|
|
|
|
# macOS Gazebo environment (Tools/setup/macos/pixi.toml)
|
|
.pixi
|
|
|
|
# Claude Code local settings and worktrees
|
|
.claude/settings.local.json
|
|
/.claude/worktrees/
|