The CI/CD pipeline is based on a runner that uses docker images to compile and test our ROS application. The CI/CD pipeline starts with pulling an image that should already contain a clone of real-world architecture. The current setup is based on raspbian buster with ROS melodic installed. Recommended ROS-Comm edition of ROS is reinforced with the perception library.
Docker file listing is:
FROM balenalib/raspberry-pi-debian:latest
RUN export DEBIAN_FRONTEND=noninteractive
RUN apt-get update
RUN apt-get install python-empy
RUN apt install -y lsb-release
RUN apt install -y python-setuptools
RUN sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
RUN apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
RUN apt install -y python-rosdep python-rosinstall-generator python-wstool python-rosinstall build-essential cmake
RUN rosdep init
RUN rosdep update
RUN mkdir -p ~/ros_catkin_ws
RUN cd ~/ros_catkin_ws
RUN rosinstall_generator ros_comm --rosdistro melodic --deps --wet-only --tar > melodic-ros_comm-wet.rosinstall
RUN wstool init src melodic-ros_comm-wet.rosinstall
RUN rosinstall_generator perception --rosdistro melodic --deps --wet-only --tar > melodic-custom_ros.rosinstall
RUN wstool merge -t src melodic-custom_ros.rosinstall
RUN wstool update -t src
RUN rosdep install -y --from-paths src --ignore-src --rosdistro melodic -r --os=debian:buster
RUN ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release --install-space /opt/ros/melodic
RUN echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
Content type
Image
Digest
Size
875.9 MB
Last updated
almost 6 years ago
docker pull artemmelnyk/qrasp