Skip to content

Warning

You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?

ROS 2 CI

Actions
Continuous integration for ROS 2 project
v0.4.2
Star (12)

ROS 2 Continuous Integration

latest version license workflows test status

This action could be used as a continuous integration (CI) to build and test a ROS 2 project.

How It Works?

This action works by building and testing a ROS 2 project inside a Docker's container using the official ROS 2 Docker image. To handle which ROS 2 environment to be used, this action uses a Docker in Docker (DinD). Hence the CI process happens inside the container's container, not just the first layer of the Docker's container for GitHub Actions. Although, The CI process is guaranteed to be fast (approximately 3-5 minutes, depends on each package) as almost every component of the ROS 2 has already been installed inside the Docker's image.

To be able to build and test the project inside the repository, This action requires the Checkout action. Before the build process, the project files will be put under the /ws/repo directory inside the container. Then, the build and test process will be done using colcon inside the /ws directory. After the test process happens, the build results (build, install, and log) will be copied inside the /ws/repo/.ws.

The drawback of using this action is it still needs to install external dependencies that haven't been included in the ROS 2 default installation. But that problem could be solved by adding a apt-packages or a pip-packages input inside the action configuration (see this) or by cloning external packages inside the /ws directory before the build process happens (see this).

Usage

For more information, see the action.yml and the GitHub Actions guide.

Default Usage

name: Build and Test
on:
  pull_request:
    branches: [ main ]
  push:
    branches: [ main ]
jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - name: Checking out
        uses: actions/[email protected]
      - name: Building and testing
        uses: ichiro-its/[email protected]

This will be defaulted to use ROS 2 Foxy Fitzroy.

Using Different ROS 2 Distributin

- name: Building and testing
  uses: ichiro-its/[email protected]
  with:
    ros2-distro: rolling

Install Several Dependencies

- name: Building and testing
  uses: ichiro-its/[email protected]
  with:
    apt-packages: libssh-dev libopencv-dev

Run Command During the Process

- name: Building and testing
  uses: ichiro-its/[email protected]
  with:
    post-test: ls .ws

Include External Project

- name: Building and testing
  uses: ichiro-its/[email protected]
  with:
    apt-packages: git
    pre-build: git clone https://github.com/ros2/examples /ws/examples

License

This project is licensed under the MIT License.

ROS 2 CI is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

Continuous integration for ROS 2 project
v0.4.2

ROS 2 CI is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.