From bc447afe6017f8551114962ffe0c59c3c0f1f4e3 Mon Sep 17 00:00:00 2001 From: stelzo Date: Mon, 25 Mar 2024 12:35:46 +0100 Subject: [PATCH] standalone rclrs testing --- .github/workflows/r2r_galactic.yml | 6 +++++ .github/workflows/r2r_humble.yml | 6 +++++ .github/workflows/r2r_iron.yml | 6 +++++ .github/workflows/rclrs_humble.yml | 21 +++++++++++++++++ .github/workflows/rosrust_noetic.yml | 6 +++++ .github/workflows/tests.yml | 6 +++++ tests/Dockerfile_rclrs_humble | 34 ++++++++++++++++++++++++++++ tests/rclrs_test.bash | 25 ++++++++++++++++++++ 8 files changed, 110 insertions(+) create mode 100644 .github/workflows/rclrs_humble.yml create mode 100644 tests/Dockerfile_rclrs_humble create mode 100644 tests/rclrs_test.bash diff --git a/.github/workflows/r2r_galactic.yml b/.github/workflows/r2r_galactic.yml index 99180aa..f1718f5 100644 --- a/.github/workflows/r2r_galactic.yml +++ b/.github/workflows/r2r_galactic.yml @@ -2,7 +2,13 @@ name: r2r_galactic on: push: + branches: + - "*" + - "!rclrs" pull_request: + branches: + - "*" + - "!rclrs" workflow_dispatch: env: diff --git a/.github/workflows/r2r_humble.yml b/.github/workflows/r2r_humble.yml index 2f8721d..25cfe90 100644 --- a/.github/workflows/r2r_humble.yml +++ b/.github/workflows/r2r_humble.yml @@ -2,7 +2,13 @@ name: r2r_humble on: push: + branches: + - "*" + - "!rclrs" pull_request: + branches: + - "*" + - "!rclrs" workflow_dispatch: env: diff --git a/.github/workflows/r2r_iron.yml b/.github/workflows/r2r_iron.yml index a773884..fa435be 100644 --- a/.github/workflows/r2r_iron.yml +++ b/.github/workflows/r2r_iron.yml @@ -2,7 +2,13 @@ name: r2r_iron on: push: + branches: + - "*" + - "!rclrs" pull_request: + branches: + - "*" + - "!rclrs" workflow_dispatch: env: diff --git a/.github/workflows/rclrs_humble.yml b/.github/workflows/rclrs_humble.yml new file mode 100644 index 0000000..7ac4349 --- /dev/null +++ b/.github/workflows/rclrs_humble.yml @@ -0,0 +1,21 @@ +name: rclrs_humble + +on: + push: + branches: + - rclrs + pull_request: + branches: + - rclrs + workflow_dispatch: + +env: + CARGO_TERM_COLOR: always + +jobs: + tests_humble: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - run: docker build . --file ./tests/Dockerfile_rclrs_humble --tag rclrs_humble + - run: docker run rclrs_humble cargo test diff --git a/.github/workflows/rosrust_noetic.yml b/.github/workflows/rosrust_noetic.yml index a5acf78..f262078 100644 --- a/.github/workflows/rosrust_noetic.yml +++ b/.github/workflows/rosrust_noetic.yml @@ -2,7 +2,13 @@ name: rosrust_noetic on: push: + branches: + - "*" + - "!rclrs" pull_request: + branches: + - "*" + - "!rclrs" workflow_dispatch: jobs: diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8066730..c28dde0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -2,7 +2,13 @@ name: Tests on: push: + branches: + - "*" + - "!rclrs" pull_request: + branches: + - "*" + - "!rclrs" workflow_dispatch: env: diff --git a/tests/Dockerfile_rclrs_humble b/tests/Dockerfile_rclrs_humble new file mode 100644 index 0000000..d5ee37b --- /dev/null +++ b/tests/Dockerfile_rclrs_humble @@ -0,0 +1,34 @@ +# syntax=docker/dockerfile:1 +FROM ros:humble + +# Update default packages +RUN apt-get update + +# Get Ubuntu packages +RUN apt-get install -y \ + build-essential \ + curl \ + libclang-dev \ + git \ + python3-pip \ + python3-vcstool + +# Get Rust +RUN curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | bash -s -- -y +RUN echo 'source $HOME/.cargo/env' >> $HOME/.bashrc +RUN . $HOME/.cargo/env && cargo install --debug cargo-ament-build +RUN pip install git+https://github.com/colcon/colcon-cargo.git +RUN pip install git+https://github.com/colcon/colcon-ros-cargo.git + +WORKDIR /ros2_rust_build +RUN git clone https://github.com/ros2-rust/ros2_rust.git src/ros2_rust +RUN vcs import src < src/ros2_rust/ros2_rust_humble.repos + +WORKDIR /ros2_rust_build/src/ros_pointcloud2_tests +COPY . . + +WORKDIR /ros2_rust_build +RUN . $HOME/.cargo/env && . /opt/ros/humble/setup.sh && colcon build + +RUN chmod +x /ros2_rust_build/src/ros_pointcloud2_tests/tests/rclrs_test.bash +ENTRYPOINT [ "/ros2_rust_build/src/ros_pointcloud2_tests/tests/rclrs_test.bash" ] diff --git a/tests/rclrs_test.bash b/tests/rclrs_test.bash new file mode 100644 index 0000000..4afaab4 --- /dev/null +++ b/tests/rclrs_test.bash @@ -0,0 +1,25 @@ +#!/bin/bash + +. "$HOME/.cargo/env" + +# run rustup to test with latest rust version +rustup update + +if [ -e "/opt/ros/iron/setup.bash" ]; then + . "/opt/ros/iron/setup.bash" + . "/ros2_rust_build/install/local_setup.bash" +fi + +if [ -e "/opt/ros/humble/setup.bash" ]; then + . "/opt/ros/humble/setup.bash" + . "/ros2_rust_build/install/local_setup.bash" +fi + +if [ -e "/opt/ros/galactic/setup.bash" ]; then + . "/opt/ros/galactic/setup.bash" + . "/ros2_rust_build/install/local_setup.bash" +fi + +cd /ros2_rust_build/src/ros_pointcloud2_tests/ || exit + +"$@"