Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce CI Docker images and revert to nightly build #2348

Merged
merged 9 commits into from
Jun 2, 2021

Conversation

ruffsl
Copy link
Member

@ruffsl ruffsl commented May 18, 2021

With improved CI caching with colcon cache, like PRs using the main branch to seed workspace changes instead of only the docker image, we could reduce the size and number of docker images used for CI. This abbreviated the CI image by deferring the overlay build to CI, and instead just building and installing overlay dependencies within the builder stage in the Dockerfile. This reduces the CI image sizes considerably:

REPOSITORY                  TAG             IMAGE ID       CREATED          SIZE
rosplanning/navigation2     main.builder    b596d3403956   19 seconds ago   3.91GB

rosplanning/navigation2     main.release    71903333d838   16 hours ago     4.71GB
rosplanning/navigation2     main.debug      80b43ad2f88b   17 hours ago     11.1GB

We'll wait to see how #2343 holds up before merging this to switch to using a single CI image for both debug and release jobs.

@ruffsl ruffsl changed the title Reduce CI Docker images Reduce CI Docker images and revert to nightly build Jun 2, 2021
@ruffsl
Copy link
Member Author

ruffsl commented Jun 2, 2021

@SteveMacenski , you may want to look into the coverage script to see if message packages are still being filtered out correctly:

Processing nav2_msgs/CMakeFiles/3.16.3/CompilerIdC/CMakeCCompilerId.gcno
Processing nav2_msgs/CMakeFiles/3.16.3/CompilerIdCXX/CMakeCXXCompilerId.gcno
Processing nav2_msgs/CMakeFiles/nav2_msgs__python.dir/rosidl_generator_py/nav2_msgs/action/_back_up_s.c.gcno

https://app.circleci.com/pipelines/github/ros-planning/navigation2/5446/workflows/f4da89a3-fdd0-4cf4-8aa1-1444f271495b/jobs/19933/parallel-runs/0/steps/0-117

@ruffsl ruffsl marked this pull request as ready for review June 2, 2021 01:15
@ruffsl ruffsl requested a review from SteveMacenski June 2, 2021 01:15
@ruffsl ruffsl merged commit b63b11f into ros-navigation:main Jun 2, 2021
@ruffsl ruffsl deleted the ci-simplify-dockerimage branch June 2, 2021 01:44
@SteveMacenski
Copy link
Member

We have a mix of things removing packages, I don't see it represented in the final result so I think its OK.

ruffsl added a commit that referenced this pull request Jun 7, 2021
ruffsl added a commit to ruffsl/navigation2 that referenced this pull request Jul 2, 2021
)

* Revert CI to osrf/ros2:nightly

* Rename and remove dockerhub files

* Use single image for both debug and release jobs

* Wipe entire overlay before checkout
to now avoid passing image overlay files into ci caches

* Split out tester stage

* Do not  install recommends or suggests packages
from apt-get or rosdep install

* Only target builder stage for CI image

* Rename folder to builder

* Update colcon-cache
ruffsl added a commit to ruffsl/navigation2 that referenced this pull request Jul 2, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants