Files
PX4-Autopilot/.gitignore
T
Ramon Roche 89c68cd37f ci(build-all): build two targets per job concurrently
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>
2026-09-28 09:45:09 -07:00

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/