mirror of
https://github.com/ArduPilot/ardupilot.git
synced 2026-10-02 10:23:25 +08:00
pre-commit / ci (push) Canceled after 0s
test Renode / cubeorangeplus-quadplane (push) Canceled after 0s
test scripts / build (astyle-cleanliness) (push) Canceled after 0s
test scripts / build (check_autotest_options) (push) Canceled after 0s
test scripts / build (logger_metadata) (push) Canceled after 0s
test scripts / build (param-file-validation) (push) Canceled after 0s
test scripts / build (param_parse) (push) Canceled after 0s
test scripts / build (python-cleanliness) (push) Canceled after 0s
test scripts / build (shellcheck) (push) Canceled after 0s
test scripts / build (validate_board_list) (push) Canceled after 0s
Rather than maintaining copies of the bus and device type tables, decode_devid.py now parses the enums in AP_HAL/Device.h, AP_SerialManager.h and the compass, IMU, baro and airspeed backend headers using logger_metadata/enum_parse.py. A small rename map keeps established display names (DRONECAN, AK0991x), and the retired LIS2MDL ID, which is in no enum, is listed explicitly. Comments on enum entries are shown as warnings when decoding. --dump-json and --dump-json5 write the tables, with a format_version and a content-hash data_version, for tools without a source tree; --json reads such a file back. A copy of the script outside an ArduPilot tree (as synced by MethodicConfigurator) reads devid.json from its own directory. The files are published alongside LogMessages.* by build_log_message_documentation.sh, and CI dumps them in the logger_metadata step so that header changes which break parsing are caught. The tables had drifted from the headers: ACC_LSM9DS1, INS_ZEROONE_FPGA_SCH16T and INS_ICM56686 were missing, MMC5883 is now MMC5983, AK8963/BMM150 had trailing spaces, and several names now follow the headers.
618 lines
18 KiB
Bash
Executable File
618 lines
18 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# useful script to test all the different build types that we support.
|
|
# This helps when doing large merges
|
|
# Andrew Tridgell, November 2011
|
|
|
|
XOLDPWD=$PWD # profile changes directory :-(
|
|
|
|
if [ -z "$GITHUB_ACTIONS" ] || [ "$GITHUB_ACTIONS" != "true" ]; then
|
|
. ~/.profile
|
|
fi
|
|
|
|
if [ "$CI" = "true" ]; then
|
|
echo "::group::Build_ci.sh Setup"
|
|
export PIP_ROOT_USER_ACTION=ignore
|
|
fi
|
|
|
|
cd $XOLDPWD
|
|
|
|
set -ex
|
|
|
|
# CXX and CC are exported by default by travis
|
|
c_compiler=${CC:-gcc}
|
|
cxx_compiler=${CXX:-g++}
|
|
|
|
# we want processes to exit in CI. If we don't end up calling
|
|
# alarm_handler and not getting the binaries in the failure archive on
|
|
# github.
|
|
export SITL_PANIC_EXIT=1
|
|
|
|
export BUILDROOT=/tmp/ci.build
|
|
rm -rf $BUILDROOT
|
|
export GIT_VERSION="abcdef"
|
|
export GIT_VERSION_EXTENDED="0123456789abcdef"
|
|
export GIT_VERSION_INT="15"
|
|
export CHIBIOS_GIT_VERSION="12345667"
|
|
if [ -z "$GITHUB_ACTIONS" ] || [ "$GITHUB_ACTIONS" != "true" ]; then
|
|
export CCACHE_SLOPPINESS="include_file_ctime,include_file_mtime"
|
|
fi
|
|
autotest_args=""
|
|
|
|
# If CI_BUILD_TARGET is not set, build 4 different ones
|
|
if [ -z "$CI_BUILD_TARGET" ]; then
|
|
CI_BUILD_TARGET="sitl linux fmuv3 omnibusf4pro-one"
|
|
fi
|
|
|
|
waf=modules/waf/waf-light
|
|
|
|
echo "Targets: $CI_BUILD_TARGET"
|
|
echo "Compiler: $c_compiler"
|
|
|
|
pymavlink_installed=0
|
|
mavproxy_installed=0
|
|
|
|
if [ "$CI" = "true" ]; then
|
|
echo "::endgroup::"
|
|
fi
|
|
|
|
function install_pymavlink() {
|
|
if [ "$CI" = "true" ]; then
|
|
echo "::group::pymavlink install"
|
|
fi
|
|
if [ $pymavlink_installed -eq 0 ]; then
|
|
echo "Installing pymavlink"
|
|
git submodule update --init --recursive --depth 1
|
|
(cd modules/mavlink/pymavlink && python3 -m pip install --progress-bar off --cache-dir /tmp/pip-cache --user .)
|
|
pymavlink_installed=1
|
|
fi
|
|
if [ "$CI" = "true" ]; then
|
|
echo "::endgroup::"
|
|
fi
|
|
}
|
|
|
|
function install_mavproxy() {
|
|
if [ "$CI" = "true" ]; then
|
|
echo "::group::mavproxy install"
|
|
fi
|
|
if [ $mavproxy_installed -eq 0 ]; then
|
|
echo "Installing MAVProxy"
|
|
pushd /tmp
|
|
git clone https://github.com/ardupilot/MAVProxy --depth 1
|
|
pushd MAVProxy
|
|
python3 -m pip install --progress-bar off --cache-dir /tmp/pip-cache --user --force .
|
|
popd
|
|
popd
|
|
mavproxy_installed=1
|
|
# now uninstall the version of pymavlink pulled in by MAVProxy deps:
|
|
python3 -m pip uninstall -y pymavlink --cache-dir /tmp/pip-cache
|
|
fi
|
|
if [ "$CI" = "true" ]; then
|
|
echo "::endgroup::"
|
|
fi
|
|
}
|
|
|
|
function run_autotest() {
|
|
NAME="$1"
|
|
BVEHICLE="$2"
|
|
RVEHICLE="$3"
|
|
if [ "$CI" = "true" ]; then
|
|
echo "::group::cpuinfo"
|
|
fi
|
|
# report on what cpu's we have for later log review if needed
|
|
cat /proc/cpuinfo
|
|
if [ "$CI" = "true" ]; then
|
|
echo "::endgroup::"
|
|
fi
|
|
|
|
install_mavproxy
|
|
install_pymavlink
|
|
unset BUILDROOT
|
|
echo "Running SITL $NAME test"
|
|
|
|
w=""
|
|
if [ $c_compiler == "clang" ]; then
|
|
w="$w --check-c-compiler=clang --check-cxx-compiler=clang++"
|
|
fi
|
|
if [ "$BVEHICLE" == "build.Rover" ]; then
|
|
w="$w --enable-math-check-indexes"
|
|
fi
|
|
if [ "x$CI_BUILD_DEBUG" != "x" ]; then
|
|
w="$w --debug"
|
|
fi
|
|
if [ "$NAME" == "Plane" ]; then
|
|
w="$w --num-aux-imus=2"
|
|
fi
|
|
if [ "$NAME" == "Examples" ]; then
|
|
w="$w --speedup=5 --timeout=14400 --debug --no-clean"
|
|
fi
|
|
Tools/autotest/autotest.py --show-test-timings --junit --waf-configure-args="$w" "$BVEHICLE" "$RVEHICLE"
|
|
ccache -s && ccache -z
|
|
}
|
|
|
|
for t in $CI_BUILD_TARGET; do
|
|
# special case for SITL testing in CI
|
|
if [ "$t" == "sitltest-heli" ]; then
|
|
run_autotest "Heli" "build.Helicopter" "test.Helicopter"
|
|
continue
|
|
fi
|
|
#github actions ci
|
|
if [ "$t" == "sitltest-copter-tests1a" ]; then
|
|
run_autotest "Copter" "build.Copter" "test.CopterTests1a"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-copter-tests1b" ]; then
|
|
run_autotest "Copter" "build.Copter" "test.CopterTests1b"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-copter-tests1c" ]; then
|
|
run_autotest "Copter" "build.Copter" "test.CopterTests1c"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-copter-tests1d" ]; then
|
|
run_autotest "Copter" "build.Copter" "test.CopterTests1d"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-copter-tests1e" ]; then
|
|
run_autotest "Copter" "build.Copter" "test.CopterTests1e"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-copter-tests2a" ]; then
|
|
run_autotest "Copter" "build.Copter" "test.CopterTests2a"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-copter-tests2b" ]; then
|
|
run_autotest "Copter" "build.Copter" "test.CopterTests2b"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-can" ]; then
|
|
echo "Building SITL Periph GPS"
|
|
$waf configure --board sitl
|
|
$waf copter
|
|
run_autotest "Copter" "build.SITLPeriphUniversal" "test.CAN"
|
|
run_autotest "Copter" "build.SITLPeriphBattMon" "test.BattCAN"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-plane-tests1a" ]; then
|
|
run_autotest "Plane" "build.Plane" "test.PlaneTests1a"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-plane-tests1b" ]; then
|
|
run_autotest "Plane" "build.Plane" "test.PlaneTests1b"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-plane-tests1c" ]; then
|
|
run_autotest "Plane" "build.Plane" "test.PlaneTests1c"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-quadplane" ]; then
|
|
run_autotest "QuadPlane" "build.Plane" "test.QuadPlane"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-rover" ]; then
|
|
sudo apt-get update || /bin/true
|
|
sudo apt-get install -y ppp || /bin/true
|
|
pppd --help # fail with `command not found` if ppp install failed
|
|
run_autotest "Rover" "build.Rover" "test.Rover"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-sailboat" ]; then
|
|
run_autotest "Rover" "build.Rover" "test.Sailboat"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-tracker" ]; then
|
|
run_autotest "Tracker" "build.Tracker" "test.Tracker"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-balancebot" ]; then
|
|
run_autotest "BalanceBot" "build.Rover" "test.BalanceBot"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-sub" ]; then
|
|
run_autotest "Sub" "build.Sub" "test.Sub"
|
|
continue
|
|
fi
|
|
if [ "$t" == "sitltest-blimp" ]; then
|
|
run_autotest "Blimp" "build.Blimp" "test.Blimp"
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "unit-tests" ]; then
|
|
run_autotest "Unit Tests" "build.unit_tests" "run.unit_tests"
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "examples" ]; then
|
|
./waf configure --board=sitl --debug
|
|
./waf examples
|
|
run_autotest "Examples" "--no-clean" "run.examples"
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "revo-bootloader" ]; then
|
|
echo "Building revo bootloader"
|
|
if [ -f ~/alternate_build/revo-mini/bin/AP_Bootloader.bin ]; then
|
|
rm -r ~/alternate_build
|
|
fi
|
|
$waf configure --board revo-mini --bootloader --out ~/alternate_build
|
|
$waf clean
|
|
$waf bootloader
|
|
# check if bootloader got built under alternate_build
|
|
if [ ! -f ~/alternate_build/revo-mini/bin/AP_Bootloader.bin ]; then
|
|
echo "alternate build output directory Test failed"
|
|
exit 1
|
|
fi
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "periph-build" ]; then
|
|
echo "Building f103 bootloader"
|
|
$waf configure --board f103-GPS --bootloader
|
|
$waf clean
|
|
$waf bootloader
|
|
echo "Building f103 peripheral fw"
|
|
$waf configure --board f103-GPS
|
|
$waf clean
|
|
$waf AP_Periph
|
|
echo "Building f303 bootloader"
|
|
$waf configure --board f303-Universal --bootloader
|
|
$waf clean
|
|
$waf bootloader
|
|
echo "Building f303 peripheral fw"
|
|
$waf configure --board f303-Universal
|
|
$waf clean
|
|
$waf AP_Periph
|
|
echo "Building CubeOrange-periph peripheral fw"
|
|
$waf configure --board CubeOrange-periph
|
|
$waf clean
|
|
$waf AP_Periph
|
|
echo "Building G4-ESC peripheral fw"
|
|
$waf configure --board G4-ESC
|
|
$waf clean
|
|
$waf AP_Periph
|
|
echo "Building Nucleo-L496 peripheral fw"
|
|
$waf configure --board Nucleo-L496
|
|
$waf clean
|
|
$waf AP_Periph
|
|
echo "Building Nucleo-L496 peripheral fw"
|
|
$waf configure --board Nucleo-L476
|
|
$waf clean
|
|
$waf AP_Periph
|
|
echo "Building Sierra-L431 peripheral fw"
|
|
$waf configure --board Sierra-L431
|
|
$waf clean
|
|
$waf AP_Periph
|
|
echo "Building FreeflyRTK peripheral fw"
|
|
$waf configure --board FreeflyRTK
|
|
$waf clean
|
|
$waf AP_Periph
|
|
echo "Building CubeNode-ETH peripheral fw"
|
|
$waf configure --board CubeNode-ETH
|
|
$waf clean
|
|
$waf AP_Periph
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "CubeOrange-bootloader" ]; then
|
|
echo "Building CubeOrange bootloader"
|
|
$waf configure --board CubeOrange --bootloader
|
|
$waf clean
|
|
$waf bootloader
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "CubeRedPrimary-bootloader" ]; then
|
|
echo "Building CubeRedPrimary bootloader"
|
|
$waf configure --board CubeRedPrimary --bootloader
|
|
$waf clean
|
|
$waf bootloader
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "fmuv3-bootloader" ]; then
|
|
echo "Building fmuv3 bootloader"
|
|
$waf configure --board fmuv3 --bootloader
|
|
$waf clean
|
|
$waf bootloader
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "stm32f7" ]; then
|
|
echo "Building mRoX21-777/"
|
|
$waf configure --Werror --board mRoX21-777
|
|
$waf clean
|
|
$waf plane
|
|
|
|
# test bi-directional dshot build
|
|
echo "Building KakuteF7Mini"
|
|
$waf configure --Werror --board KakuteF7Mini
|
|
$waf clean
|
|
$waf copter
|
|
|
|
# test bi-directional dshot build and smallest flash
|
|
echo "Building KakuteF7"
|
|
$waf configure --Werror --board KakuteF7
|
|
$waf clean
|
|
$waf copter
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "stm32h7" ]; then
|
|
echo "Building Durandal"
|
|
$waf configure --board Durandal
|
|
$waf clean
|
|
$waf copter
|
|
echo "Building CPUInfo"
|
|
$waf --target=tool/CPUInfo
|
|
|
|
# test external flash build
|
|
echo "Building SPRacingH7"
|
|
$waf configure --Werror --board SPRacingH7
|
|
$waf clean
|
|
$waf copter
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "stm32h7-debug" ]; then
|
|
echo "Building Durandal"
|
|
$waf configure --board Durandal --debug
|
|
$waf clean
|
|
$waf copter
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "CubeOrange-ODID" ]; then
|
|
echo "Building CubeOrange-ODID"
|
|
$waf configure --board CubeOrange-ODID
|
|
$waf clean
|
|
$waf copter
|
|
$waf plane
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "CubeOrange-PPP" ]; then
|
|
echo "Building CubeOrange-PPP"
|
|
$waf configure --board CubeOrange --enable-PPP
|
|
$waf clean
|
|
$waf copter
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "CubeOrange-EKF2" ]; then
|
|
echo "Building CubeOrange with EKF2 enabled"
|
|
$waf configure --board CubeOrange --enable-EKF2
|
|
$waf clean
|
|
$waf copter
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "SOHW" ]; then
|
|
echo "Building CubeOrange-SOHW"
|
|
Tools/scripts/sitl-on-hardware/sitl-on-hw.py --board CubeOrange --vehicle copter --simclass MultiCopter
|
|
echo "Building 6X-SOHW"
|
|
Tools/scripts/sitl-on-hardware/sitl-on-hw.py --board Pixhawk6X --vehicle plane --simclass Plane --frame plane-3d
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "Pixhawk6X-PPPGW" ]; then
|
|
echo "Building Pixhawk6X-PPPGW"
|
|
$waf configure --board Pixhawk6X-PPPGW
|
|
$waf clean
|
|
$waf AP_Periph
|
|
$waf configure --board Pixhawk6X-PPPGW --bootloader
|
|
$waf clean
|
|
$waf bootloader
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "new-check" ]; then
|
|
echo "Building Pixhawk6X with new check"
|
|
$waf configure --board Pixhawk6X --enable-new-checking
|
|
$waf clean
|
|
$waf
|
|
echo "Building Pixhawk6X-PPPGW with new check"
|
|
$waf configure --board Pixhawk6X-PPPGW --enable-new-checking
|
|
$waf clean
|
|
$waf AP_Periph
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "dds-stm32h7" ]; then
|
|
echo "Building with DDS support on a STM32H7"
|
|
$waf configure --board Durandal --enable-DDS
|
|
$waf clean
|
|
$waf copter
|
|
$waf plane
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "dds-sitl" ]; then
|
|
echo "Building with DDS support on SITL"
|
|
$waf configure --board sitl --enable-DDS
|
|
$waf clean
|
|
$waf copter
|
|
$waf plane
|
|
$waf tests
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "fmuv2-plane" ]; then
|
|
echo "Building fmuv2 plane"
|
|
$waf configure --board fmuv2
|
|
$waf clean
|
|
$waf plane
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "iofirmware" ]; then
|
|
echo "Building iofirmware"
|
|
Tools/scripts/build_iofirmware.py
|
|
# now clean up the stuff that's copied into the source tree:
|
|
git checkout Tools/IO_Firmware/
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "navigator" ]; then
|
|
echo "Building navigator"
|
|
$waf configure --board navigator --toolchain=arm-linux-musleabihf
|
|
$waf sub --static
|
|
./Tools/scripts/firmware_version_decoder.py -f build/navigator/bin/ardusub --expected-hash $GIT_VERSION
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "navigator64" ]; then
|
|
echo "Building navigator64"
|
|
$waf configure --board navigator64 --toolchain=aarch64-linux-gnu
|
|
$waf sub
|
|
./Tools/scripts/firmware_version_decoder.py -f build/navigator64/bin/ardusub --expected-hash $GIT_VERSION
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "replay" ]; then
|
|
echo "Building replay"
|
|
$waf configure --board sitl --debug --disable-scripting
|
|
|
|
$waf replay
|
|
echo "Building AP_DAL standalone test"
|
|
$waf configure --board sitl --debug --disable-scripting --no-gcs
|
|
|
|
$waf --target tool/AP_DAL_Standalone
|
|
$waf clean
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "clang_scan_build" ]; then
|
|
unset BUILDROOT
|
|
echo "Running SITL clang-scan-build test"
|
|
./Tools/autotest/autotest.py clang-scan-build
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "validate_board_list" ]; then
|
|
echo "Validating board list"
|
|
./Tools/autotest/validate_board_list.py
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "check_autotest_options" ]; then
|
|
echo "Checking autotest options"
|
|
install_mavproxy
|
|
install_pymavlink
|
|
./Tools/autotest/autotest.py --help
|
|
./Tools/autotest/autotest.py --list
|
|
./Tools/autotest/autotest.py --list-subtests
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "signing" ]; then
|
|
echo "Building signed firmwares"
|
|
sudo apt-get update
|
|
sudo apt-get install -y python3-dev
|
|
python3 -m pip install pymonocypher==3.1.3.2 --progress-bar off --cache-dir /tmp/pip-cache
|
|
./Tools/scripts/signing/generate_keys.py testkey
|
|
$waf configure --board CubeOrange-ODID --signed-fw --private-key testkey_private_key.dat
|
|
$waf copter
|
|
$waf configure --board MatekL431-DShot --signed-fw --private-key testkey_private_key.dat
|
|
$waf AP_Periph
|
|
./Tools/scripts/build_bootloaders.py --signing-key testkey_public_key.dat CubeOrange-ODID
|
|
./Tools/scripts/build_bootloaders.py --signing-key testkey_public_key.dat MatekL431-DShot
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "python-cleanliness" ]; then
|
|
echo "Checking Python code cleanliness"
|
|
./Tools/scripts/run_flake8.py
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "astyle-cleanliness" ]; then
|
|
echo "Checking AStyle code cleanliness"
|
|
|
|
./Tools/scripts/run_astyle.py --dry-run
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "shellcheck" ]; then
|
|
echo "Running shellcheck on scripts"
|
|
|
|
# Ignore scripts in the modules directory
|
|
find . -path ./modules -prune -o -type f -name '*.sh' -exec shellcheck --severity=error '{}' +
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "param-file-validation" ]; then
|
|
echo "Testing param check script"
|
|
./Tools/scripts/param_check_unittests.py
|
|
echo "Validating parameter files"
|
|
./Tools/scripts/param_check_all.py
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "configure-all" ]; then
|
|
echo "Checking configure of all boards"
|
|
./Tools/scripts/configure_all.py
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "build-options-defaults-test" ]; then
|
|
install_pymavlink
|
|
echo "Checking default options in build_options.py work"
|
|
time ./Tools/autotest/test_build_options.py \
|
|
--no-disable-all \
|
|
--no-disable-none \
|
|
--no-disable-in-turn \
|
|
--no-enable-in-turn \
|
|
--board=CubeOrange \
|
|
--build-targets=copter \
|
|
--build-targets=plane
|
|
echo "Checking all/none options in build_options.py work"
|
|
time ./Tools/autotest/test_build_options.py \
|
|
--no-disable-in-turn \
|
|
--no-enable-in-turn \
|
|
--build-targets=copter \
|
|
--build-targets=plane
|
|
echo "Checking building with logging disabled works"
|
|
echo "define HAL_LOGGING_ENABLED 0" >/tmp/extra.hwdef
|
|
time ./waf configure \
|
|
--board=CubeOrange \
|
|
--extra-hwdef=/tmp/extra.hwdef
|
|
time ./waf plane
|
|
time ./waf copter
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "param_parse" ]; then
|
|
for v in Rover AntennaTracker ArduCopter ArduPlane ArduSub Blimp AP_Periph; do
|
|
python3 Tools/autotest/param_metadata/param_parse.py --vehicle $v
|
|
done
|
|
continue
|
|
fi
|
|
|
|
if [ "$t" == "logger_metadata" ]; then
|
|
for v in Rover Tracker Copter Plane Sub Blimp; do
|
|
python3 Tools/autotest/logger_metadata/parse.py --vehicle $v
|
|
done
|
|
python3 Tools/scripts/decode_devid.py --dump-json /dev/null --dump-json5 /dev/null
|
|
continue
|
|
fi
|
|
|
|
if [[ -z ${CI_CRON_JOB+1} ]]; then
|
|
echo "Starting waf build for board ${t}..."
|
|
$waf configure --board "$t" \
|
|
--enable-benchmarks \
|
|
--enable-header-checks \
|
|
--check-c-compiler="$c_compiler" \
|
|
--check-cxx-compiler="$cxx_compiler"
|
|
$waf clean
|
|
$waf all
|
|
ccache -s && ccache -z
|
|
|
|
if [[ $t == "linux" ]]; then
|
|
$waf check
|
|
fi
|
|
continue
|
|
fi
|
|
done
|
|
|
|
echo build OK
|
|
exit 0
|