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
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
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.