A GitHub Action to set up ROS and ROS 2 environments for CI/CD workflows across Linux, macOS, and Windows.
setup-ros is a GitHub Action that automates the setup of ROS and ROS 2 environments for continuous integration workflows. It solves the problem of manually configuring ROS development environments across different operating systems by installing necessary tools, dependencies, and ROS distributions. This ensures consistent and reproducible builds for robotics software projects.
ROS developers and teams who need to automate testing and building of ROS packages in CI/CD pipelines, especially those working with multiple ROS distributions or cross-platform projects.
Developers choose setup-ros because it provides a standardized, platform-agnostic way to configure ROS environments in GitHub Actions, reducing setup complexity and ensuring compatibility with official ROS platform specifications. Its support for all non-EOL distributions and flexible configuration options make it ideal for comprehensive testing matrices.
Github Action to set up ROS 2 on hosts
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Strictly adheres to ROS REP-3 and REP-2000 standards across Ubuntu, macOS, and Windows, ensuring consistent environments as per official specifications, even with Docker container support for Linux.
Installs core ROS development tools like colcon, rosdep, and vcs automatically, reducing manual setup errors and speeding up CI pipeline configuration.
Supports all non-EOL ROS 1 and ROS 2 distributions with the `required-ros-distributions` parameter, enabling easy matrix testing across multiple versions, as shown in the workflow examples.
Includes built-in support for Eclipse Cyclone DDS, eProsima Fast DDS, and optional RTI Connext with license handling, facilitating comprehensive DDS testing in CI environments.
The README warns that `apt-get update` is unreliable on bare metal GitHub Linux runners, forcing users to use Docker containers for stability, which adds deployment complexity and overhead.
Active development means no guarantee of compatibility between releases, requiring users to pin to specific versions like v0.7 and potentially deal with breaking changes in updates.
For macOS and Windows, GitHub runners may not match exact REP-compliant OS versions, necessitating self-hosted runners for strict compliance, as admitted in the supported platforms section.