A GitHub Action to build and test ROS and ROS 2 packages using colcon in CI/CD workflows.
action-ros-ci is a GitHub Action that automates the building and testing of ROS and ROS 2 packages using the colcon build system. It solves the problem of setting up complex CI/CD pipelines for robotics software by handling workspace assembly, dependency installation, compilation, and test execution in a single, configurable step.
ROS and ROS 2 developers and teams who need automated continuous integration for their robotics projects, particularly those using GitHub for version control and workflow automation.
Developers choose action-ros-ci because it provides a standardized, maintainable way to test ROS packages across distributions, integrates with tools like codecov for coverage reporting, and offers advanced features like memory sanitization and private repo support without manual setup.
Github Action to build and test ROS 2 packages using colcon
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports both ROS 1 and ROS 2 distributions via target-ros1-distro or target-ros2-distro inputs, enabling testing across different ROS versions, as shown in the base usage patterns for ROS 1 and ROS 2.
Generates and processes coverage data for C/C++ and Python using colcon-lcov-result and colcon-coveragepy-result, with detailed examples for integration with codecov.io in the README.
Offers options like Address Sanitizer for memory checks, custom colcon defaults via JSON input, and symlink install toggles, providing fine-grained control over the build process.
Includes import-token input for cloning private repositories, making it suitable for projects with proprietary dependencies, as detailed in the 'Use with private repos' section.
Requires ROS development tools to be pre-installed or the use of specific container images like rostooling/setup-ros-docker, adding steps and potential compatibility issues, especially on non-Ubuntu systems.
The README notes that ROS 2 only officially supports Visual Studio 2019, but GitHub's newer runners use VS 2022, leading to potential build problems on Windows environments.
Heavily relies on external tools like vcstool, rosdep, and colcon, and often pairs with actions like ros-tooling/setup-ros, creating additional points of failure in CI pipelines.