Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions .github/workflows/debian-packages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ on:
workflow_dispatch: # Manual trigger
inputs:
ros_distros:
description: 'ROS distributions to build (comma-separated: humble,iron,jazzy,kilted,rolling)'
description: 'ROS distributions to build (comma-separated: humble,iron,jazzy,lyrical,kilted,rolling)'
required: false
schedule:
- cron: '0 2 * * *' # Nightly at 2 AM UTC
Expand All @@ -44,10 +44,10 @@ jobs:
run: |
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
# Manual trigger - use input or default
DISTROS="${{ github.event.inputs.ros_distros || 'humble,iron,jazzy,kilted,rolling' }}"
DISTROS="${{ github.event.inputs.ros_distros || 'humble,iron,jazzy,lyrical,kilted,rolling' }}"
else
# Always build all distributions
DISTROS="humble,iron,jazzy,kilted,rolling"
DISTROS="humble,iron,jazzy,lyrical,kilted,rolling"
fi
echo "Building for distributions: $DISTROS"
# Convert to JSON array for matrix
Expand All @@ -72,6 +72,8 @@ jobs:
ubuntu_distro: jammy
- ros_distro: jazzy
ubuntu_distro: noble
- ros_distro: lyrical
ubuntu_distro: resolute
- ros_distro: kilted
ubuntu_distro: noble
- ros_distro: rolling
Expand Down Expand Up @@ -114,6 +116,8 @@ jobs:
ubuntu_distro: jammy
- ros_distro: jazzy
ubuntu_distro: noble
- ros_distro: lyrical
ubuntu_distro: resolute
- ros_distro: kilted
ubuntu_distro: noble
- ros_distro: rolling
Expand Down Expand Up @@ -232,6 +236,7 @@ jobs:

# Install Python dependencies
if [[ "${{ matrix.ros_distro }}" == "jazzy" || \
"${{ matrix.ros_distro }}" == "lyrical" || \
"${{ matrix.ros_distro }}" == "kilted" || \
"${{ matrix.ros_distro }}" == "rolling" ]]; then
pip3 install --break-system-packages --ignore-installed pygments textual
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/ros-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@ jobs:
ubuntu_distro: jammy
- ros_distro: jazzy
ubuntu_distro: noble
- ros_distro: lyrical
ubuntu_distro: resolute
- ros_distro: kilted
ubuntu_distro: noble
- ros_distro: rolling
Expand Down Expand Up @@ -122,6 +124,7 @@ jobs:
source /opt/ros/${{ matrix.ros_distro }}/setup.bash
source install/setup.bash
if [[ "${{ matrix.ros_distro }}" == "jazzy" || \
"${{ matrix.ros_distro }}" == "lyrical" || \
"${{ matrix.ros_distro }}" == "kilted" || \
"${{ matrix.ros_distro }}" == "rolling" ]]; then
pip3 install --break-system-packages --ignore-installed pygments -r r2s_gw/requirements.txt
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ For implementation details and inline integration guidance, see

## Compatibility

Greenwave monitor is a standalone package tested on Humble, Iron, Jazzy, Kilted, and Rolling ROS 2 releases, under Ubuntu 22.04 and Ubuntu 24.04. It does not depend on Isaac ROS. It does however play nicely with Isaac ROS NITROS diagnostics, see [`docs/DESIGN_AND_IMPLEMENTATION.md`](docs/DESIGN_AND_IMPLEMENTATION.md) for more.
Greenwave monitor is a standalone package tested on Humble, Iron, Jazzy, Lyrical, Kilted, and Rolling ROS 2 releases, under Ubuntu 22.04, Ubuntu 24.04, and Ubuntu 26.04. It does not depend on Isaac ROS. It does however play nicely with Isaac ROS NITROS diagnostics, see [`docs/DESIGN_AND_IMPLEMENTATION.md`](docs/DESIGN_AND_IMPLEMENTATION.md) for more.

## Installation

Expand Down
17 changes: 9 additions & 8 deletions scripts/build_debian_packages.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,37 +23,38 @@
#
# Usage: ./scripts/build_debian_packages.sh [ROS_DISTRO] [UBUNTU_DISTRO]
# Examples:
# ./scripts/build_debian_packages.sh # Uses defaults (humble/jammy)
# ./scripts/build_debian_packages.sh # Uses defaults (lyrical/resolute)
# ./scripts/build_debian_packages.sh humble jammy # ROS Humble on Ubuntu 22.04
# ./scripts/build_debian_packages.sh jazzy noble # ROS Jazzy on Ubuntu 24.04
# ./scripts/build_debian_packages.sh lyrical resolute # ROS Lyrical on Ubuntu 26.04
# ./scripts/build_debian_packages.sh rolling resolute # ROS Rolling on Ubuntu 26.04
#
# Docker Usage (Recommended):
# docker run -it --rm -v $(pwd):/workspace -w /workspace \
# ubuntu:jammy ./scripts/build_debian_packages.sh humble jammy
# ubuntu:resolute ./scripts/build_debian_packages.sh lyrical resolute
#
# Supported combinations:
# humble/jammy, iron/jammy, jazzy/noble, kilted/noble, rolling/resolute
# humble/jammy, iron/jammy, jazzy/noble, lyrical/resolute, kilted/noble, rolling/resolute
#
# Output: Debian packages will be created in debian_packages/[ROS_DISTRO]/
# Install: sudo apt install ./debian_packages/[ROS_DISTRO]/*.deb

set -eo pipefail

# Default values
DEFAULT_ROS_DISTRO="humble"
DEFAULT_UBUNTU_DISTRO="jammy"
DEFAULT_ROS_DISTRO="lyrical"
DEFAULT_UBUNTU_DISTRO="resolute"

# Parse arguments
ROS_DISTRO="${1:-$DEFAULT_ROS_DISTRO}"
UBUNTU_DISTRO="${2:-$DEFAULT_UBUNTU_DISTRO}"

# Validate ROS distro
case "$ROS_DISTRO" in
humble | iron | jazzy | kilted | rolling) ;;
humble | iron | jazzy | lyrical | kilted | rolling) ;;
*)
echo "Error: Unsupported ROS distro: $ROS_DISTRO"
echo "Supported distros: humble, iron, jazzy, kilted, rolling"
echo "Supported distros: humble, iron, jazzy, lyrical, kilted, rolling"
exit 1
;;
esac
Expand Down Expand Up @@ -110,7 +111,7 @@ echo "Installing build dependencies..."

# Check if we need --break-system-packages for pip
USE_BREAK_SYSTEM_PACKAGES=""
if [[ "$ROS_DISTRO" == "jazzy" || "$ROS_DISTRO" == "kilted" || "$ROS_DISTRO" == "rolling" ]]; then
if [[ "$ROS_DISTRO" == "jazzy" || "$ROS_DISTRO" == "lyrical" || "$ROS_DISTRO" == "kilted" || "$ROS_DISTRO" == "rolling" ]]; then
USE_BREAK_SYSTEM_PACKAGES="--break-system-packages"
fi

Expand Down
11 changes: 7 additions & 4 deletions scripts/docker-test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@

set -e

# Default to Humble if no distro specified
DISTRO=${1:-humble}
# Default to Lyrical if no distro specified
DISTRO=${1:-lyrical}

# Image mapping based on ROS distro
case $DISTRO in
Expand All @@ -36,6 +36,9 @@ iron)
jazzy)
IMAGE="ros:jazzy-ros-base-noble"
;;
lyrical)
IMAGE="ros:lyrical-ros-base-resolute"
;;
kilted)
IMAGE="ros:kilted-ros-base-noble"
;;
Expand All @@ -44,7 +47,7 @@ rolling)
;;
*)
echo "Unsupported ROS 2 distribution: $DISTRO"
echo "Supported: humble, iron, jazzy, kilted, rolling"
echo "Supported: humble, iron, jazzy, lyrical, kilted, rolling"
exit 1
;;
esac
Expand Down Expand Up @@ -72,7 +75,7 @@ docker run -it --rm \
apt-get update -qq && apt-get install -y build-essential python3-pip

# Install Python requirements based on ROS distro
if [[ '${DISTRO}' == 'jazzy' || '${DISTRO}' == 'kilted' || '${DISTRO}' == 'rolling' ]]; then
if [[ '${DISTRO}' == 'jazzy' || '${DISTRO}' == 'lyrical' || '${DISTRO}' == 'kilted' || '${DISTRO}' == 'rolling' ]]; then
pip3 install --break-system-packages -I pygments -r /workspace/src/greenwave_monitor/r2s_gw/requirements.txt
else
pip3 install -r /workspace/src/greenwave_monitor/r2s_gw/requirements.txt
Expand Down
Loading