Skip to content

Single-node dual MID360 driver: eliminate SDK race condition + logging/thread-safety fixes + unified livox CLI #14

Single-node dual MID360 driver: eliminate SDK race condition + logging/thread-safety fixes + unified livox CLI

Single-node dual MID360 driver: eliminate SDK race condition + logging/thread-safety fixes + unified livox CLI #14

Workflow file for this run

name: ros CI
on:
push:
# you may want to configure the branches that this should be run on here.
branches: [ "master" ]
pull_request:
jobs:
test_docker: # On Linux, iterates on all ROS 1 and ROS 2 distributions.
runs-on: ubuntu-latest
permissions:
contents: read
strategy:
matrix:
ros_distribution:
# - noetic
- humble
# - iron
# Define the Docker image(s) associated with each ROS distribution.
# The include syntax allows additional variables to be defined, like
# docker_image in this case. See documentation:
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#example-including-configurations-in-a-matrix-build
#
# Platforms are defined in REP 3 and REP 2000:
# https://ros.org/reps/rep-0003.html
# https://ros.org/reps/rep-2000.html
include:
# Noetic Ninjemys (May 2020 - May 2025)
# - docker_image: ubuntu:focal
# ros_distribution: noetic
# ros_version: 1
# Humble Hawksbill (May 2022 - May 2027)
- docker_image: ubuntu:jammy
ros_distribution: humble
ros_version: 2
# Iron Irwini (May 2023 - November 2024)
# - docker_image: ubuntu:jammy
# ros_distribution: iron
# ros_version: 2
# # Rolling Ridley (No End-Of-Life)
# - docker_image: ubuntu:jammy
# ros_distribution: rolling
# ros_version: 2
container:
image: ${{ matrix.docker_image }}
steps:
- uses: actions/checkout@v6
with:
path: src/livox_ros_driver2
- name: setup ROS environment
uses: ros-tooling/setup-ros@v0.7
- name: install build dependencies
run: |
apt-get update
apt-get install -y build-essential cmake
- name: install Livox SDK2
run: |
REPO_DIR="/tmp/livox_sdk2_repo"
mkdir -p "$REPO_DIR"
git clone --branch v1.2.5 --depth 1 https://github.com/Livox-SDK/Livox-SDK2.git "$REPO_DIR/Livox-SDK2"
cd "$REPO_DIR/Livox-SDK2"
mkdir -p build && cd build
cmake ..
make -j$(nproc)
make install
ldconfig
rm -rf "$REPO_DIR"
- name: build and test ROS 2
if: ${{ matrix.ros_version == 2 }}
uses: ros-tooling/action-ros-ci@v0.3
with:
import-token: ${{ github.token }}
target-ros2-distro: ${{ matrix.ros_distribution }}
skip-tests: true