Add ros2 iron

This commit is contained in:
Martin Dahl 2024-02-09 14:53:18 +01:00
parent 3ae831acb3
commit 8bd4e0b5e0
5 changed files with 68 additions and 9 deletions

View File

@ -17,7 +17,7 @@ jobs:
- run: docker build . --file ./tests/Dockerfile_no_ros --tag r2r_no_ros
- run: docker run r2r_no_ros cargo build --features doc-only
minimal_workspace_humble:
minimal_workspace_iron:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
@ -26,8 +26,15 @@ jobs:
with:
repository: m-dahl/r2r_minimal_node
path: r2r_minimal_node
- run: docker build . --file ./tests/Dockerfile_humble --tag r2r_humble
- run: docker run r2r_humble /r2r/tests/build_minimal_node.bash
- run: docker build . --file ./tests/Dockerfile_iron --tag r2r_iron
- run: docker run r2r_iron /r2r/tests/build_minimal_node.bash
tests_iron:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: docker build . --file ./tests/Dockerfile_iron --tag r2r_iron
- run: docker run r2r_iron cargo test
tests_humble:
runs-on: ubuntu-latest

View File

@ -251,6 +251,8 @@ pub enum ReliabilityPolicy {
BestEffort,
Reliable,
SystemDefault,
#[cfg(r2r__ros__distro__iron)]
BestAvailable,
Unknown,
}
impl From<ReliabilityPolicy> for rmw_qos_reliability_policy_t {
@ -265,6 +267,10 @@ impl From<ReliabilityPolicy> for rmw_qos_reliability_policy_t {
ReliabilityPolicy::SystemDefault => {
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT
}
#[cfg(r2r__ros__distro__iron)]
ReliabilityPolicy::BestAvailable => {
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_BEST_AVAILABLE
}
ReliabilityPolicy::Unknown => {
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_UNKNOWN
}
@ -284,6 +290,10 @@ impl From<rmw_qos_reliability_policy_t> for ReliabilityPolicy {
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT => {
ReliabilityPolicy::SystemDefault
}
#[cfg(r2r__ros__distro__iron)]
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_BEST_AVAILABLE => {
ReliabilityPolicy::BestAvailable
}
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_UNKNOWN => {
ReliabilityPolicy::Unknown
}
@ -296,6 +306,8 @@ pub enum DurabilityPolicy {
TransientLocal,
Volatile,
SystemDefault,
#[cfg(r2r__ros__distro__iron)]
BestAvailable,
Unknown,
}
@ -311,6 +323,10 @@ impl From<DurabilityPolicy> for rmw_qos_durability_policy_t {
DurabilityPolicy::SystemDefault => {
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT
}
#[cfg(r2r__ros__distro__iron)]
DurabilityPolicy::BestAvailable => {
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_BEST_AVAILABLE
}
DurabilityPolicy::Unknown => {
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_UNKNOWN
}
@ -330,6 +346,10 @@ impl From<rmw_qos_durability_policy_t> for DurabilityPolicy {
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT => {
DurabilityPolicy::SystemDefault
}
#[cfg(r2r__ros__distro__iron)]
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_BEST_AVAILABLE => {
DurabilityPolicy::BestAvailable
}
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_UNKNOWN => {
DurabilityPolicy::Unknown
}
@ -343,6 +363,8 @@ pub enum LivelinessPolicy {
ManualByNode,
ManualByTopic,
SystemDefault,
#[cfg(r2r__ros__distro__iron)]
BestAvailable,
Unknown,
}
@ -361,6 +383,10 @@ impl From<LivelinessPolicy> for rmw_qos_liveliness_policy_t {
LivelinessPolicy::SystemDefault => {
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT
}
#[cfg(r2r__ros__distro__iron)]
LivelinessPolicy::BestAvailable => {
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_BEST_AVAILABLE
}
LivelinessPolicy::Unknown => {
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_UNKNOWN
}
@ -383,6 +409,10 @@ impl From<rmw_qos_liveliness_policy_t> for LivelinessPolicy {
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT => {
LivelinessPolicy::SystemDefault
}
#[cfg(r2r__ros__distro__iron)]
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_BEST_AVAILABLE => {
LivelinessPolicy::BestAvailable
}
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_UNKNOWN => {
LivelinessPolicy::Unknown
}

View File

@ -8,7 +8,7 @@ use std::io::Read;
use std::path::Path;
#[cfg(not(feature = "doc-only"))]
const SUPPORTED_ROS_DISTROS: &[&str] = &["foxy", "galactic", "humble", "rolling"];
const SUPPORTED_ROS_DISTROS: &[&str] = &["foxy", "galactic", "humble", "iron", "rolling"];
const WATCHED_ENV_VARS: &[&str] = &[
"AMENT_PREFIX_PATH",

22
tests/Dockerfile_iron Normal file
View File

@ -0,0 +1,22 @@
# syntax=docker/dockerfile:1
FROM ros:iron
# Update default packages
RUN apt-get update
# Get Ubuntu packages
RUN apt-get install -y \
build-essential \
curl \
libclang-dev
# Get ros test messages
RUN apt-get install -y ros-iron-test-msgs ros-iron-example-interfaces
# Get Rust
RUN curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | bash -s -- -y
RUN echo 'source $HOME/.cargo/env' >> $HOME/.bashrc
COPY . /r2r
RUN chmod +x /r2r/tests/test.bash
ENTRYPOINT [ "/r2r/tests/test.bash" ]

View File

@ -5,13 +5,13 @@
# run rustup to test with latest rust version
rustup update
if [ -e "/opt/ros/humble/setup.bash" ]; then
if [ -e "/opt/ros/iron/setup.bash" ]; then
source "/opt/ros/iron/setup.bash"
elif [ -e "/opt/ros/humble/setup.bash" ]; then
source "/opt/ros/humble/setup.bash"
fi
if [ -e "/opt/ros/galactic/setup.bash" ]; then
elif [ -e "/opt/ros/galactic/setup.bash" ]; then
source "/opt/ros/galactic/setup.bash"
fi
if [ -e "/opt/ros/foxy/setup.bash" ]; then
elif [ -e "/opt/ros/foxy/setup.bash" ]; then
source "/opt/ros/foxy/setup.bash"
fi