Ekumen-OS / beluga

A general implementation of Monte Carlo Localization (MCL) algorithms written in C++17, and a ROS package that can be used in ROS 1 and ROS 2.
https://ekumen-os.github.io/beluga/
Apache License 2.0
155 stars 9 forks source link

Cache CI/CD prerequisites #354

Open hidmic opened 1 month ago

hidmic commented 1 month ago

Feature description

Our CI/CD workflows install the same dependencies on every run, which means longer runtimes and heat somewhere around the world. We should leverage regular containers and GHA caching to reuse them.

Implementation considerations

Containers make sense for environment and tooling dependencies as those almost never change and we can rebuild on demand. For package dependencies that may change on every PR, package manager caching would work best.

hidmic commented 1 month ago

FYI @nahueespinosa. Also @JADC362. We could use a containerization expert.

nahueespinosa commented 1 month ago

FWIW, we have a docker build pipeline: https://github.com/Ekumen-OS/beluga/blob/main/.github/workflows/docker_ci_pipeline.yml

It might just be a matter of re-using those images in regular CI.