builder: add some tests for validating built image

This commit is contained in:
Oleg Kalachev
2019-02-11 02:38:35 +03:00
parent c8844b424e
commit 6382c25417
5 changed files with 97 additions and 1 deletions

View File

@@ -4,7 +4,7 @@ services:
- docker
env:
global:
- DOCKER="sfalexrog/img-tool:builder-mod"
- DOCKER="okalachev/img-tool:latest"
- TARGET_REPO="https://github.com/${TRAVIS_REPO_SLUG}.git"
- if [[ -z ${TRAVIS_TAG} ]]; then IMAGE_VERSION="${TRAVIS_COMMIT}}"; else IMAGE_VERSION="${TRAVIS_TAG}"; fi
- IMAGE_NAME="$(basename -s '.git' ${TARGET_REPO})_${IMAGE_VERSION}.img"

View File

@@ -100,5 +100,6 @@ ${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/roscore
${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/kinetic-rosdep-clever.yaml' '/etc/ros/rosdep/'
# ${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} copy ${SCRIPTS_DIR}'/assets/kinetic-ros-clever.rosinstall' '/home/pi/ros_catkin_ws/'
${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} exec ${SCRIPTS_DIR}'/image-ros.sh' ${REPO_URL} ${IMAGE_VERSION} false false ${NUMBER_THREADS}
${BUILDER_DIR}/image-chroot.sh ${IMAGE_PATH} exec ${SCRIPTS_DIR}'/image-validate.sh'
${BUILDER_DIR}/image-resize.sh ${IMAGE_PATH}

22
builder/image-validate.sh Executable file
View File

@@ -0,0 +1,22 @@
#!/usr/bin/env bash
#
# Validate built image using tests
#
# Copyright (C) 2018 Copter Express Technologies
#
# Author: Oleg Kalachev <okalachev@gmail.com>
#
set -ex
echo "Run image tests"
export ROS_DISTRO='kinetic'
export ROS_IP='127.0.0.1'
source /opt/ros/kinetic/setup.bash
source /home/pi/catkin_ws/devel/setup.bash
cd /home/pi/catkin_ws/src/clever/builder/test/
./tests.sh
./tests.py

27
builder/test/tests.py Executable file
View File

@@ -0,0 +1,27 @@
#!/usr/bin/env python
# validate all required modules installed
import rospy
from geometry_msgs.msg import PoseStamped
#import cv2 # TODO - fix "NEON - NOT AVAILABLE" error
#import cv2.aruco
import numpy
import mavros
from mavros_msgs.msg import State, StatusText, ExtendedState
from mavros_msgs.srv import CommandBool, CommandLong, SetMode
from std_srvs.srv import Trigger
from clever.srv import GetTelemetry, Navigate, NavigateGlobal, SetPosition, SetVelocity, \
SetAttitude, SetRates
import tf2_ros
import tf2_geometry_msgs
import VL53L1X
import pymavlink
from pymavlink import mavutil
import rpi_ws281x
import pigpio

46
builder/test/tests.sh Executable file
View File

@@ -0,0 +1,46 @@
#!/usr/bin/env bash
set -ex
# TODO: validate versions
# validate required software is installed
python --version
python2 --version
python3 --version
ipython --version
ipython3 --version
node -v
npm -v
byobu --version
nmap --version
lsof -v
git --version
vim --version
pip --version
pip2 --version
pip3 --version
tcpdump --version
monkey --version
pigpiod -v
i2cdetect -V
butterfly -h
# ros stuff
roscore -h
rosversion clever
rosversion aruco_pose
rosversion vl53l1x
#rosversion opencv3 # TODO
rosversion mavros
rosversion mavros_extras
rosversion dynamic_reconfigure
rosversion tf2_web_republisher
rosversion compressed_image_transport
rosversion rosbridge_suite
rosversion rosserial
rosversion usb_cam