Skip to content

ci: add lint and package checks #3

ci: add lint and package checks

ci: add lint and package checks #3

Workflow file for this run

name: Checks
on:
pull_request:
push:
branches:
- main
workflow_dispatch:
permissions:
contents: read
jobs:
python:
name: Python lint and syntax
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install Python tooling
run: python -m pip install ruff==0.15.17
- name: Check Python syntax
run: |
python -m compileall -q rosidl_generator_rs/rosidl_generator_rs rosidl_generator_rs/test
python -m py_compile rosidl_generator_rs/bin/rosidl_generator_rs
- name: Lint Python sources
run: python -m ruff check rosidl_generator_rs/rosidl_generator_rs rosidl_generator_rs/bin/rosidl_generator_rs rosidl_generator_rs/test
ros:
name: ROS build and test (${{ matrix.ros_distro }})
runs-on: ubuntu-latest
container:
image: ros:${{ matrix.ros_image }}
env:
DEBIAN_FRONTEND: noninteractive
strategy:
fail-fast: false
matrix:
include:
- ros_distro: humble
ros_image: humble-ros-base-jammy
- ros_distro: jazzy
ros_image: jazzy-ros-base-noble
- ros_distro: kilted
ros_image: kilted-ros-base-noble
- ros_distro: lyrical
ros_image: lyrical-ros-base-resolute
- ros_distro: rolling
ros_image: rolling-ros-base
steps:
- name: Install checkout dependencies
run: |
apt-get update
apt-get install -y --no-install-recommends \
ca-certificates \
cargo \
git \
python3-colcon-common-extensions \
python3-rosdep
- name: Checkout repository
uses: actions/checkout@v6
- name: Install package dependencies
run: |
if [ ! -e /etc/ros/rosdep/sources.list.d/20-default.list ]; then
rosdep init
fi
rosdep update
rosdep install --from-paths . --ignore-src --rosdistro ${{ matrix.ros_distro }} -y
- name: Build package
shell: bash
run: |
source /opt/ros/${{ matrix.ros_distro }}/setup.bash
colcon build --packages-up-to rosidl_generator_rs_tests --event-handlers console_direct+
- name: Test package
shell: bash
run: |
source /opt/ros/${{ matrix.ros_distro }}/setup.bash
source install/setup.bash
colcon test --packages-select rosidl_generator_rs --event-handlers console_direct+
colcon test-result --verbose
- name: Check generated Rust package
shell: bash
run: |
tests_crate="$PWD/build/rosidl_generator_rs_tests/rosidl_generator_rs/rosidl_generator_rs_tests/rust"
cargo check --manifest-path "$tests_crate/Cargo.toml"