Skip to content

Commit 8bd4e0b

Browse files
committed
Add ros2 iron
1 parent 3ae831a commit 8bd4e0b

File tree

5 files changed

+68
-9
lines changed

5 files changed

+68
-9
lines changed

.github/workflows/rust_and_ros2.yml

+10-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- run: docker build . --file ./tests/Dockerfile_no_ros --tag r2r_no_ros
1818
- run: docker run r2r_no_ros cargo build --features doc-only
1919

20-
minimal_workspace_humble:
20+
minimal_workspace_iron:
2121
runs-on: ubuntu-latest
2222
steps:
2323
- uses: actions/checkout@v4
@@ -26,8 +26,15 @@ jobs:
2626
with:
2727
repository: m-dahl/r2r_minimal_node
2828
path: r2r_minimal_node
29-
- run: docker build . --file ./tests/Dockerfile_humble --tag r2r_humble
30-
- run: docker run r2r_humble /r2r/tests/build_minimal_node.bash
29+
- run: docker build . --file ./tests/Dockerfile_iron --tag r2r_iron
30+
- run: docker run r2r_iron /r2r/tests/build_minimal_node.bash
31+
32+
tests_iron:
33+
runs-on: ubuntu-latest
34+
steps:
35+
- uses: actions/checkout@v4
36+
- run: docker build . --file ./tests/Dockerfile_iron --tag r2r_iron
37+
- run: docker run r2r_iron cargo test
3138

3239
tests_humble:
3340
runs-on: ubuntu-latest

r2r/src/qos.rs

+30
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,8 @@ pub enum ReliabilityPolicy {
251251
BestEffort,
252252
Reliable,
253253
SystemDefault,
254+
#[cfg(r2r__ros__distro__iron)]
255+
BestAvailable,
254256
Unknown,
255257
}
256258
impl From<ReliabilityPolicy> for rmw_qos_reliability_policy_t {
@@ -265,6 +267,10 @@ impl From<ReliabilityPolicy> for rmw_qos_reliability_policy_t {
265267
ReliabilityPolicy::SystemDefault => {
266268
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT
267269
}
270+
#[cfg(r2r__ros__distro__iron)]
271+
ReliabilityPolicy::BestAvailable => {
272+
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_BEST_AVAILABLE
273+
}
268274
ReliabilityPolicy::Unknown => {
269275
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_UNKNOWN
270276
}
@@ -284,6 +290,10 @@ impl From<rmw_qos_reliability_policy_t> for ReliabilityPolicy {
284290
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT => {
285291
ReliabilityPolicy::SystemDefault
286292
}
293+
#[cfg(r2r__ros__distro__iron)]
294+
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_BEST_AVAILABLE => {
295+
ReliabilityPolicy::BestAvailable
296+
}
287297
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_UNKNOWN => {
288298
ReliabilityPolicy::Unknown
289299
}
@@ -296,6 +306,8 @@ pub enum DurabilityPolicy {
296306
TransientLocal,
297307
Volatile,
298308
SystemDefault,
309+
#[cfg(r2r__ros__distro__iron)]
310+
BestAvailable,
299311
Unknown,
300312
}
301313

@@ -311,6 +323,10 @@ impl From<DurabilityPolicy> for rmw_qos_durability_policy_t {
311323
DurabilityPolicy::SystemDefault => {
312324
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT
313325
}
326+
#[cfg(r2r__ros__distro__iron)]
327+
DurabilityPolicy::BestAvailable => {
328+
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_BEST_AVAILABLE
329+
}
314330
DurabilityPolicy::Unknown => {
315331
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_UNKNOWN
316332
}
@@ -330,6 +346,10 @@ impl From<rmw_qos_durability_policy_t> for DurabilityPolicy {
330346
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT => {
331347
DurabilityPolicy::SystemDefault
332348
}
349+
#[cfg(r2r__ros__distro__iron)]
350+
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_BEST_AVAILABLE => {
351+
DurabilityPolicy::BestAvailable
352+
}
333353
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_UNKNOWN => {
334354
DurabilityPolicy::Unknown
335355
}
@@ -343,6 +363,8 @@ pub enum LivelinessPolicy {
343363
ManualByNode,
344364
ManualByTopic,
345365
SystemDefault,
366+
#[cfg(r2r__ros__distro__iron)]
367+
BestAvailable,
346368
Unknown,
347369
}
348370

@@ -361,6 +383,10 @@ impl From<LivelinessPolicy> for rmw_qos_liveliness_policy_t {
361383
LivelinessPolicy::SystemDefault => {
362384
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT
363385
}
386+
#[cfg(r2r__ros__distro__iron)]
387+
LivelinessPolicy::BestAvailable => {
388+
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_BEST_AVAILABLE
389+
}
364390
LivelinessPolicy::Unknown => {
365391
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_UNKNOWN
366392
}
@@ -383,6 +409,10 @@ impl From<rmw_qos_liveliness_policy_t> for LivelinessPolicy {
383409
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT => {
384410
LivelinessPolicy::SystemDefault
385411
}
412+
#[cfg(r2r__ros__distro__iron)]
413+
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_BEST_AVAILABLE => {
414+
LivelinessPolicy::BestAvailable
415+
}
386416
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_UNKNOWN => {
387417
LivelinessPolicy::Unknown
388418
}

r2r_common/src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ use std::io::Read;
88
use std::path::Path;
99

1010
#[cfg(not(feature = "doc-only"))]
11-
const SUPPORTED_ROS_DISTROS: &[&str] = &["foxy", "galactic", "humble", "rolling"];
11+
const SUPPORTED_ROS_DISTROS: &[&str] = &["foxy", "galactic", "humble", "iron", "rolling"];
1212

1313
const WATCHED_ENV_VARS: &[&str] = &[
1414
"AMENT_PREFIX_PATH",

tests/Dockerfile_iron

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# syntax=docker/dockerfile:1
2+
FROM ros:iron
3+
4+
# Update default packages
5+
RUN apt-get update
6+
7+
# Get Ubuntu packages
8+
RUN apt-get install -y \
9+
build-essential \
10+
curl \
11+
libclang-dev
12+
13+
# Get ros test messages
14+
RUN apt-get install -y ros-iron-test-msgs ros-iron-example-interfaces
15+
16+
# Get Rust
17+
RUN curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | bash -s -- -y
18+
RUN echo 'source $HOME/.cargo/env' >> $HOME/.bashrc
19+
20+
COPY . /r2r
21+
RUN chmod +x /r2r/tests/test.bash
22+
ENTRYPOINT [ "/r2r/tests/test.bash" ]

tests/test.bash

+5-5
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
# run rustup to test with latest rust version
66
rustup update
77

8-
if [ -e "/opt/ros/humble/setup.bash" ]; then
8+
if [ -e "/opt/ros/iron/setup.bash" ]; then
9+
source "/opt/ros/iron/setup.bash"
10+
elif [ -e "/opt/ros/humble/setup.bash" ]; then
911
source "/opt/ros/humble/setup.bash"
10-
fi
11-
if [ -e "/opt/ros/galactic/setup.bash" ]; then
12+
elif [ -e "/opt/ros/galactic/setup.bash" ]; then
1213
source "/opt/ros/galactic/setup.bash"
13-
fi
14-
if [ -e "/opt/ros/foxy/setup.bash" ]; then
14+
elif [ -e "/opt/ros/foxy/setup.bash" ]; then
1515
source "/opt/ros/foxy/setup.bash"
1616
fi
1717

0 commit comments

Comments
 (0)