Skip to content

Latest commit

 

History

History
65 lines (51 loc) · 2.02 KB

README.md

File metadata and controls

65 lines (51 loc) · 2.02 KB

ROS 2 GitHub Action CI Template

Use this template to create a ROS 2 package repository with automatic CI.

Waiting for a buildfarmer to kickoff a build for your PR is time consuming. With this action, you can immediately get linting and tests feedback. Minimize the number of builds you need to kickoff and catch bugs earlier!

For more information on using GitHub action workflows, see the Official GitHub Workflow Documentation.

Usage

Click on the green Use this Template to create your new repository.

Linting

This action supports the linters in the ament/ament_lint repo. Linter names are based off of ament's naming convention ament_<linter-name>. For example, to use ament_uncrustify, set uncrustify as your linter.

An example job for copyright linting.

ament_copyright:
  name: ament_copyright
  runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - uses: ros-tooling/[email protected]
    - uses: ros-tooling/[email protected]
      with:
        linter: copyright
        package-name: <your-package-name>

For multiple linters, use a matrix:

# Linters applicable to C++ packages
ament_lint_cpp:
  # Give each job a different name for better feedback
  name: ament_${{ matrix.linter }}
  runs-on: ubuntu-latest
  strategy:
    # We want all linters to run even if one fails
    fail-fast: false
    matrix:
      linter: [cppcheck, cpplint, uncrustify]
    steps:
    - uses: actions/checkout@v3
    - uses: ros-tooling/[email protected]
    - uses: ros-tooling/[email protected]
      with:
        linter: ${{ matrix.linter }}
        package-name: <your-package-name>

See .github/workflows/lint.yml for an example linting workflow.

Note: The only unsupported linter at this time is CMake.