Here we outline the current setup of MoveIt’s continuous integration setup, including Docker files and Travis configuration.
For each ROS distribution there are up to 4 containers, built on top of a standard ros:noetic-ros-base (or other distro version) image. We use Dockerhub to automatically build new versions of the containers each time a code change is commited to the moveit
repo (but only for the corresponding branch).
An image optimized for running continuous integration with Travis. This container downloads all of the MoveIt source code, using MoveIt’s rosinstall file, and then installs all the required dependencies for that source code. It then removes the source code before saving the image. It uses ros-shadow-fixed
and runs apt dist-upgrade
to ensure it has the latest code.
Builds ontop of the CI image, contains a full MoveIt workspace downloaded and built to ~/ws_moveit/src
. This container is useful for developers wanting to test or develop in a sandbox.
Builds ontop of the CI image, the full debian-based install of MoveIt using apt
.
Adds experimental packages to the source install. Use this if you want a working warehouse database.
MoveIt has its own Travis script located at moveit_ci. The script starts by spawning the MoveIt Docker image for the targeted distro to test. Within that Docker image the moveit_ci
script is called a second time, which then begins to download the source of the target repo and any dependencies specified in the rosinstall file.
After gathering the source code, the moveit_ci
script downloads any further dependencies via rosdep
. Then it builds the entire workspace using catkin_tools
build command and the --install
option.
Finally, if no errors have been detected yet, the moveit_ci
script rebuilds the workspace with tests enabled and then runs all of MoveIt’s tests.