|
| 1 | +#! /bin/bash |
| 2 | + |
| 3 | +if [ -z ${PX4_DOCKER_REPO+x} ]; then |
| 4 | + echo "guessing PX4_DOCKER_REPO based on input"; |
| 5 | + if [[ $@ =~ .*px4_fmu.* ]]; then |
| 6 | + # nuttx-px4fmu-v{1,2,3,4,5} |
| 7 | + PX4_DOCKER_REPO="px4io/px4-dev-nuttx-focal:2022-08-12" |
| 8 | + elif [[ $@ =~ .*navio2.* ]] || [[ $@ =~ .*raspberry.* ]] || [[ $@ =~ .*beaglebone.* ]] || [[ $@ =~ .*pilotpi.default ]]; then |
| 9 | + # beaglebone_blue_default, emlid_navio2_default, px4_raspberrypi_default, scumaker_pilotpi_default |
| 10 | + PX4_DOCKER_REPO="px4io/px4-dev-armhf:2023-06-26" |
| 11 | + elif [[ $@ =~ .*pilotpi.arm64 ]]; then |
| 12 | + # scumaker_pilotpi_arm64 |
| 13 | + PX4_DOCKER_REPO="px4io/px4-dev-aarch64:2022-08-12" |
| 14 | + elif [[ $@ =~ .*navio2.* ]] || [[ $@ =~ .*raspberry.* ]] || [[ $@ =~ .*bebop.* ]]; then |
| 15 | + # posix_rpi_cross, posix_bebop_default |
| 16 | + PX4_DOCKER_REPO="px4io/px4-dev-armhf:2023-06-26" |
| 17 | + elif [[ $@ =~ .*clang.* ]] || [[ $@ =~ .*scan-build.* ]]; then |
| 18 | + # clang tools |
| 19 | + PX4_DOCKER_REPO="px4io/px4-dev-clang:2021-02-04" |
| 20 | + elif [[ $@ =~ .*tests* ]]; then |
| 21 | + # run all tests with simulation |
| 22 | + PX4_DOCKER_REPO="px4io/px4-dev-simulation-bionic:2021-12-11" |
| 23 | + fi |
| 24 | +else |
| 25 | + echo "PX4_DOCKER_REPO is set to '$PX4_DOCKER_REPO'"; |
| 26 | +fi |
| 27 | + |
| 28 | +# otherwise default to nuttx |
| 29 | +if [ -z ${PX4_DOCKER_REPO+x} ]; then |
| 30 | + PX4_DOCKER_REPO="px4io/px4-dev-nuttx-focal:2022-08-12" |
| 31 | +fi |
| 32 | + |
| 33 | +# docker hygiene |
| 34 | + |
| 35 | +#Delete all stopped containers (including data-only containers) |
| 36 | +#docker rm $(docker ps -a -q) |
| 37 | + |
| 38 | +#Delete all 'untagged/dangling' (<none>) images |
| 39 | +#docker rmi $(docker images -q -f dangling=true) |
| 40 | + |
| 41 | +echo "PX4_DOCKER_REPO: $PX4_DOCKER_REPO"; |
| 42 | + |
| 43 | +PWD=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) |
| 44 | +SRC_DIR=$PWD/../ |
| 45 | + |
| 46 | +CCACHE_DIR=${HOME}/.ccache |
| 47 | +mkdir -p "${CCACHE_DIR}" |
| 48 | + |
| 49 | +docker run -it --rm -w "${SRC_DIR}" \ |
| 50 | + --env=AWS_ACCESS_KEY_ID \ |
| 51 | + --env=AWS_SECRET_ACCESS_KEY \ |
| 52 | + --env=BRANCH_NAME \ |
| 53 | + --env=CCACHE_DIR="${CCACHE_DIR}" \ |
| 54 | + --env=CI \ |
| 55 | + --env=CODECOV_TOKEN \ |
| 56 | + --env=COVERALLS_REPO_TOKEN \ |
| 57 | + --env=LOCAL_USER_ID="$(id -u)" \ |
| 58 | + --env=PX4_ASAN \ |
| 59 | + --env=PX4_MSAN \ |
| 60 | + --env=PX4_TSAN \ |
| 61 | + --env=PX4_UBSAN \ |
| 62 | + --env=TRAVIS_BRANCH \ |
| 63 | + --env=TRAVIS_BUILD_ID \ |
| 64 | + --publish 14556:14556/udp \ |
| 65 | + --volume=${CCACHE_DIR}:${CCACHE_DIR}:rw \ |
| 66 | + --volume=${SRC_DIR}:${SRC_DIR}:rw \ |
| 67 | + ${PX4_DOCKER_REPO} /bin/bash -c "$1 $2 $3" |
0 commit comments