-
-
Notifications
You must be signed in to change notification settings - Fork 17
Updating CI
When a PR introduces a new dependency it is sometimes necessary to update the CI job if that dependency cannot automatically be pulled in with rosdep. The CI job runs on a Docker container pulled from Dockerhub, the following explains how to bump the Docker container to make your PR build.
Docker containers on Dockerhub are built from a Dockerfile, which is contained in the root of this repository. This process of building and pushing changes is not automatic. The Dockerfile must be built into a container on your system locally, then you can push the updated binary container to Dockerhub.
- Install Docker Engine on your system: https://docs.docker.com/engine/install/ubuntu/
- Make your desired changes to the Dockerfile (the syntax is fairly intuitive)
-
docker build . -t umrover1/ros:latest
. This may take a while. - You should see your build container with with
docker image list
- Now do
docker run -it umrover1/ros:latest
to get an interactive terminal in a new session of your container - Create a new catkin workspace and git clone the repository
source /opt/ros/noetic/setup.zsh
and runcatkin init
- Run
catkin build
and confirm that your change allows things to build as expected - Note that if the build fails, you can use the interactive session to prototype changes such as with
apt install
. However, any changes made here will not be reflected in the Dockerfile, so you MUST make those changes in the Dockerfile and restart the processes from step 3 once you've done so. -
exit
from the container - Perform
docker login
, dm Ashwin for the mrover Dockerhub credentials docker push umrover1/ros:latest
Warning: It is absolutely imperative that the Dockerfile in the repo remains synchronized with the Docker container on Dockerhub. As soon as you push an update to the container do one of the following:
- If you have permissions, push your change to the Dockerfile directly to master, bypassing the PR review processes
- Otherwise, open a PR and ping Ashwin in #dev-ops so he can merge it for you