Browse Source

tools/autobuild: Automatically build all stm32 boards.

Any board with a board.json file will be built.  Additional variants for
certain pyboards will also be built by the explicit build-stm32-extra.sh
script.  Both .dfu and .hex files will be made available.

Also build boards in a sorted order, and don't stop building if a single
board fails.

Signed-off-by: Damien George <damien@micropython.org>
pull/8019/head
Damien George 3 years ago
parent
commit
bb7aae557b
  1. 7
      tools/autobuild/autobuild.sh
  2. 15
      tools/autobuild/build-boards.sh
  3. 13
      tools/autobuild/build-stm32-extra.sh

7
tools/autobuild/autobuild.sh

@ -65,9 +65,7 @@ FW_GIT="$(git describe --dirty || echo unknown)"
FW_TAG="-$FW_DATE-unstable-$FW_GIT"
# build new firmware
cd ports/stm32
${AUTODIR}/build-stm32-latest.sh ${FW_TAG} ${LOCAL_FIRMWARE}
cd ../cc3200
cd ports/cc3200
${AUTODIR}/build-cc3200-latest.sh ${FW_TAG} ${LOCAL_FIRMWARE}
cd ../esp8266
${AUTODIR}/build-esp8266-latest.sh ${FW_TAG} ${LOCAL_FIRMWARE}
@ -81,6 +79,9 @@ cd ../rp2
build_rp2_boards ${FW_TAG} ${LOCAL_FIRMWARE}
cd ../samd
build_samd_boards ${FW_TAG} ${LOCAL_FIRMWARE}
cd ../stm32
build_stm32_boards ${FW_TAG} ${LOCAL_FIRMWARE}
${AUTODIR}/build-stm32-extra.sh ${FW_TAG} ${LOCAL_FIRMWARE}
popd

15
tools/autobuild/build-boards.sh

@ -26,16 +26,17 @@ function build_boards {
return 1
fi
for board_json in $(find boards/ -name board.json); do
for board_json in $(find boards/ -name board.json | sort); do
board=$(echo $board_json | awk -F '/' '{ print $2 }')
descr=$(cat $board_json | python3 -c "import json,sys; print(json.load(sys.stdin).get('id', '$board'))")
build_dir=/tmp/micropython-build-$board
echo "building $descr $board"
$MICROPY_AUTOBUILD_MAKE BOARD=$board BUILD=$build_dir || return 1
for ext in $@; do
mv $build_dir/firmware.$ext $dest_dir/$descr$fw_tag.$ext
done
$MICROPY_AUTOBUILD_MAKE BOARD=$board BUILD=$build_dir && (
for ext in $@; do
mv $build_dir/firmware.$ext $dest_dir/$descr$fw_tag.$ext
done
)
rm -rf $build_dir
done
}
@ -51,3 +52,7 @@ function build_rp2_boards {
function build_samd_boards {
build_boards $1 $2 samd_soc.c uf2
}
function build_stm32_boards {
build_boards $1 $2 modpyb.c dfu hex
}

13
tools/autobuild/build-stm32-latest.sh → tools/autobuild/build-stm32-extra.sh

@ -1,4 +1,5 @@
#!/bin/bash
# Build additional variants of pyboard firmware (base variants are built by build-boards.sh).
# function for building firmware
function do_build() {
@ -10,6 +11,7 @@ function do_build() {
build_dir=/tmp/stm-build-$board
$MICROPY_AUTOBUILD_MAKE $@ BOARD=$board BUILD=$build_dir || exit 1
mv $build_dir/firmware.dfu $dest_dir/$descr$fw_tag.dfu
mv $build_dir/firmware.hex $dest_dir/$descr$fw_tag.hex
rm -rf $build_dir
}
@ -31,26 +33,15 @@ fi
# build the versions
do_build pybv3 PYBV3
do_build pybv3-network PYBV3 MICROPY_PY_WIZNET5K=5200 MICROPY_PY_CC3K=1
do_build pybv10 PYBV10
do_build pybv10-dp PYBV10 MICROPY_FLOAT_IMPL=double
do_build pybv10-thread PYBV10 CFLAGS_EXTRA='-DMICROPY_PY_THREAD=1'
do_build pybv10-dp-thread PYBV10 MICROPY_FLOAT_IMPL=double CFLAGS_EXTRA='-DMICROPY_PY_THREAD=1'
do_build pybv10-network PYBV10 MICROPY_PY_WIZNET5K=5200 MICROPY_PY_CC3K=1
do_build pybv11 PYBV11
do_build pybv11-dp PYBV11 MICROPY_FLOAT_IMPL=double
do_build pybv11-thread PYBV11 CFLAGS_EXTRA='-DMICROPY_PY_THREAD=1'
do_build pybv11-dp-thread PYBV11 MICROPY_FLOAT_IMPL=double CFLAGS_EXTRA='-DMICROPY_PY_THREAD=1'
do_build pybv11-network PYBV11 MICROPY_PY_WIZNET5K=5200 MICROPY_PY_CC3K=1
do_build pyblitev10 PYBLITEV10
do_build pyblitev10-dp PYBLITEV10 MICROPY_FLOAT_IMPL=double
do_build pyblitev10-thread PYBLITEV10 CFLAGS_EXTRA='-DMICROPY_PY_THREAD=1'
do_build pyblitev10-dp-thread PYBLITEV10 MICROPY_FLOAT_IMPL=double CFLAGS_EXTRA='-DMICROPY_PY_THREAD=1'
do_build pyblitev10-network PYBLITEV10 MICROPY_PY_WIZNET5K=5200 MICROPY_PY_CC3K=1
do_build PYBD-SF2 PYBD_SF2
do_build PYBD-SF3 PYBD_SF3
do_build PYBD-SF6 PYBD_SF6
for board in boards/{NUCLEO_*,STM32F*DISC,B_L*,USBDONGLE_WB55,ESPRUINO_PICO} ; do
bd=$(basename $board)
do_build $bd $bd USE_MBOOT=0 MBOOT_ENABLE_PACKING=0
done
Loading…
Cancel
Save