Add ros2 jazzy support.

This commit is contained in:
Desmond Germans 2024-06-18 13:09:16 +02:00 committed by Martin Dahl
parent 05d2c194d0
commit cae671ccda
7 changed files with 56 additions and 15 deletions

View File

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

View File

@ -34,7 +34,7 @@ Since the default behavior is to build all sourced message types, build time can
What works? What works?
-------------------- --------------------
- Up to date with ROS2 ~Dashing~ ~Eloquent~ Foxy Galactic Humble Iron - Up to date with ROS2 ~Dashing~ ~Eloquent~ Foxy Galactic Humble Iron Jazzy
- Building Rust types - Building Rust types
- Publish/subscribe - Publish/subscribe
- Services - Services
@ -46,6 +46,7 @@ What works?
Changelog Changelog
-------------------- --------------------
#### [Unreleased] #### [Unreleased]
- Update for ros2 jazzy <https://github.com/sequenceplanner/r2r/pull/100>
#### [0.9.0] - 2024-05-17 #### [0.9.0] - 2024-05-17
- Fix unsafe precondition(s) violated with rust 1.78 <https://github.com/sequenceplanner/r2r/issues/96>. There may be more of these to fix, please report if you encounter. - Fix unsafe precondition(s) violated with rust 1.78 <https://github.com/sequenceplanner/r2r/issues/96>. There may be more of these to fix, please report if you encounter.

View File

@ -141,12 +141,21 @@ pub const ROS_DISTRO: &str = "foxy";
pub const ROS_DISTRO: &str = "galactic"; pub const ROS_DISTRO: &str = "galactic";
#[cfg(r2r__ros__distro__humble)] #[cfg(r2r__ros__distro__humble)]
pub const ROS_DISTRO: &str = "humble"; pub const ROS_DISTRO: &str = "humble";
#[cfg(r2r__ros__distro__iron)]
pub const ROS_DISTRO: &str = "iron";
#[cfg(r2r__ros__distro__jazzy)]
pub const ROS_DISTRO: &str = "jazzy";
#[cfg(r2r__ros__distro__rolling)] #[cfg(r2r__ros__distro__rolling)]
pub const ROS_DISTRO: &str = "rolling"; pub const ROS_DISTRO: &str = "rolling";
#[cfg(not(any( #[cfg(not(any(
r2r__ros__distro__foxy, r2r__ros__distro__foxy,
r2r__ros__distro__galactic, r2r__ros__distro__galactic,
r2r__ros__distro__humble, r2r__ros__distro__humble,
r2r__ros__distro__iron,
r2r__ros__distro__jazzy,
r2r__ros__distro__rolling r2r__ros__distro__rolling
)))] )))]
pub const ROS_DISTRO: &str = "unknown"; pub const ROS_DISTRO: &str = "unknown";

View File

@ -251,7 +251,7 @@ pub enum ReliabilityPolicy {
BestEffort, BestEffort,
Reliable, Reliable,
SystemDefault, SystemDefault,
#[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__rolling))] #[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__jazzy, r2r__ros__distro__rolling))]
BestAvailable, BestAvailable,
Unknown, Unknown,
} }
@ -267,7 +267,7 @@ impl From<ReliabilityPolicy> for rmw_qos_reliability_policy_t {
ReliabilityPolicy::SystemDefault => { ReliabilityPolicy::SystemDefault => {
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT
} }
#[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__rolling))] #[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__jazzy, r2r__ros__distro__rolling))]
ReliabilityPolicy::BestAvailable => { ReliabilityPolicy::BestAvailable => {
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_BEST_AVAILABLE rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_BEST_AVAILABLE
} }
@ -290,7 +290,7 @@ impl From<rmw_qos_reliability_policy_t> for ReliabilityPolicy {
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT => { rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_SYSTEM_DEFAULT => {
ReliabilityPolicy::SystemDefault ReliabilityPolicy::SystemDefault
} }
#[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__rolling))] #[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__jazzy, r2r__ros__distro__rolling))]
rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_BEST_AVAILABLE => { rmw_qos_reliability_policy_t::RMW_QOS_POLICY_RELIABILITY_BEST_AVAILABLE => {
ReliabilityPolicy::BestAvailable ReliabilityPolicy::BestAvailable
} }
@ -306,7 +306,7 @@ pub enum DurabilityPolicy {
TransientLocal, TransientLocal,
Volatile, Volatile,
SystemDefault, SystemDefault,
#[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__rolling))] #[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__jazzy, r2r__ros__distro__rolling))]
BestAvailable, BestAvailable,
Unknown, Unknown,
} }
@ -323,7 +323,7 @@ impl From<DurabilityPolicy> for rmw_qos_durability_policy_t {
DurabilityPolicy::SystemDefault => { DurabilityPolicy::SystemDefault => {
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT
} }
#[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__rolling))] #[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__jazzy, r2r__ros__distro__rolling))]
DurabilityPolicy::BestAvailable => { DurabilityPolicy::BestAvailable => {
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_BEST_AVAILABLE rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_BEST_AVAILABLE
} }
@ -346,7 +346,7 @@ impl From<rmw_qos_durability_policy_t> for DurabilityPolicy {
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT => { rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_SYSTEM_DEFAULT => {
DurabilityPolicy::SystemDefault DurabilityPolicy::SystemDefault
} }
#[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__rolling))] #[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__jazzy, r2r__ros__distro__rolling))]
rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_BEST_AVAILABLE => { rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_BEST_AVAILABLE => {
DurabilityPolicy::BestAvailable DurabilityPolicy::BestAvailable
} }
@ -363,7 +363,7 @@ pub enum LivelinessPolicy {
ManualByNode, ManualByNode,
ManualByTopic, ManualByTopic,
SystemDefault, SystemDefault,
#[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__rolling))] #[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__jazzy, r2r__ros__distro__rolling))]
BestAvailable, BestAvailable,
Unknown, Unknown,
} }
@ -383,7 +383,7 @@ impl From<LivelinessPolicy> for rmw_qos_liveliness_policy_t {
LivelinessPolicy::SystemDefault => { LivelinessPolicy::SystemDefault => {
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT
} }
#[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__rolling))] #[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__jazzy, r2r__ros__distro__rolling))]
LivelinessPolicy::BestAvailable => { LivelinessPolicy::BestAvailable => {
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_BEST_AVAILABLE rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_BEST_AVAILABLE
} }
@ -409,7 +409,7 @@ impl From<rmw_qos_liveliness_policy_t> for LivelinessPolicy {
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT => { rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_SYSTEM_DEFAULT => {
LivelinessPolicy::SystemDefault LivelinessPolicy::SystemDefault
} }
#[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__rolling))] #[cfg(any(r2r__ros__distro__iron, r2r__ros__distro__jazzy, r2r__ros__distro__rolling))]
rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_BEST_AVAILABLE => { rmw_qos_liveliness_policy_t::RMW_QOS_POLICY_LIVELINESS_BEST_AVAILABLE => {
LivelinessPolicy::BestAvailable LivelinessPolicy::BestAvailable
} }

View File

@ -10,7 +10,7 @@ use std::{
}; };
#[cfg(not(feature = "doc-only"))] #[cfg(not(feature = "doc-only"))]
const SUPPORTED_ROS_DISTROS: &[&str] = &["foxy", "galactic", "humble", "iron", "rolling"]; const SUPPORTED_ROS_DISTROS: &[&str] = &["foxy", "galactic", "humble", "iron", "jazzy", "rolling"];
const WATCHED_ENV_VARS: &[&str] = &[ const WATCHED_ENV_VARS: &[&str] = &[
"AMENT_PREFIX_PATH", "AMENT_PREFIX_PATH",

22
tests/Dockerfile_jazzy Normal file
View File

@ -0,0 +1,22 @@
# syntax=docker/dockerfile:1
FROM ros:jazzy
# 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-jazzy-test-msgs ros-jazzy-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,7 +5,9 @@
# run rustup to test with latest rust version # run rustup to test with latest rust version
rustup update rustup update
if [ -e "/opt/ros/iron/setup.bash" ]; then if [ -e "/opt/ros/jazzy/setup.bash" ]; then
source "/opt/ros/jazzy/setup.bash"
elif [ -e "/opt/ros/iron/setup.bash" ]; then
source "/opt/ros/iron/setup.bash" source "/opt/ros/iron/setup.bash"
elif [ -e "/opt/ros/humble/setup.bash" ]; then elif [ -e "/opt/ros/humble/setup.bash" ]; then
source "/opt/ros/humble/setup.bash" source "/opt/ros/humble/setup.bash"