Skip to content
Merged
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
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
# ┌───────────────┐ ┌───────────────┐
# │ Build Images │ │ C++ Integr. │
# │ (shared, │ │ Tests +cov │
# │ 4 distros) │ │ │
# │ 3 distros) │ │ │
# └───────┬───────┘ └───────────────┘
# │
# ┌────┴────┐
Expand Down Expand Up @@ -127,7 +127,7 @@ jobs:

# ===========================================================================
# Stage 1: Build Docker Images (shared for ROS and E2E tests)
# Builds all ROS distributions once, used by both tests-ros and e2e-tests
# Builds all CI ROS distributions once, used by both tests-ros and e2e-tests
# ===========================================================================
build-images:
name: Build Images
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/docker-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ on:
distros:
description: 'JSON array of ROS distros to build (e.g., ["humble", "noetic"])'
required: false
default: '["humble", "noetic", "jazzy", "rolling"]'
default: '["humble", "noetic", "jazzy"]'
type: string
outputs:
image_tag:
Expand Down Expand Up @@ -74,7 +74,6 @@ jobs:
noetic) echo "path=docker/Dockerfile.ros1" >> $GITHUB_OUTPUT ;;
humble) echo "path=docker/Dockerfile.ros2.humble" >> $GITHUB_OUTPUT ;;
jazzy) echo "path=docker/Dockerfile.ros2.jazzy" >> $GITHUB_OUTPUT ;;
rolling) echo "path=docker/Dockerfile.ros2.rolling" >> $GITHUB_OUTPUT ;;
*) echo "ERROR: Unknown distro: ${{ matrix.distro }}"; exit 1 ;;
esac

Expand Down Expand Up @@ -109,4 +108,3 @@ jobs:
run: |
echo "Built image for ${{ matrix.distro }}"
echo "Tags: ${{ steps.meta.outputs.tags }}"

8 changes: 2 additions & 6 deletions .github/workflows/e2e-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Runs end-to-end tests that start axon_recorder_node and make actual ROS
# service calls. Uses Docker images from GHCR for consistent builds.
# Collects coverage data to maximize overall test coverage.
# Runs on all ROS distributions (Noetic, Humble, Jazzy, Rolling).
# Runs on all CI ROS distributions (Noetic, Humble, Jazzy).
#
# NOTE: Docker images are built by ci.yml's build-images job before this workflow
# runs. This workflow only pulls and uses the pre-built images.
Expand All @@ -28,7 +28,7 @@ jobs:
# ==========================================================================
# E2E Tests - End-to-end ROS service tests
# Starts axon_recorder_node and runs actual ROS service calls
# Runs on all ROS distributions (Noetic, Humble, Jazzy, Rolling)
# Runs on all CI ROS distributions (Noetic, Humble, Jazzy)
# Collects coverage to capture code paths exercised by E2E scenarios
# Note: Docker images are expected to be pre-built by ci.yml's build-images job
# ==========================================================================
Expand All @@ -49,10 +49,6 @@ jobs:
# ROS 2 Jazzy - collect coverage
- ros_distro: jazzy
ros_version: "2"
# ROS 2 Rolling - collect coverage
- ros_distro: rolling
ros_version: "2"

permissions:
contents: read
packages: read
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
ros-distro: [noetic, humble, jazzy, rolling]
ros-distro: [noetic, humble, jazzy]
steps:
- uses: actions/checkout@v4

Expand Down
9 changes: 2 additions & 7 deletions .github/workflows/tests-ros.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
# Runs all ROS unit + integration tests for axon_recorder package.
# Uses Docker images from GHCR for consistent builds across environments.
#
# Coverage is collected from ALL distros (Noetic, Humble, Jazzy, Rolling)
# Coverage is collected from all CI distros (Noetic, Humble, Jazzy)
# and uploaded as artifacts for merging in ci.yml.
#
# NOTE: Docker images are built by ci.yml's build-images job before this workflow
# runs. This workflow only pulls and uses the pre-built images.
# NOTE: E2E tests (service call tests) run separately via e2e-tests.yml
# on all ROS distributions (Noetic, Humble, Jazzy, Rolling).
# on all CI ROS distributions (Noetic, Humble, Jazzy).
# =============================================================================

name: ROS Tests
Expand Down Expand Up @@ -53,11 +53,6 @@ jobs:
- ros_distro: jazzy
ros_version: "2"
script: run_integration.sh
# ROS 2 Rolling
- ros_distro: rolling
ros_version: "2"
script: run_integration.sh

permissions:
contents: read
packages: read
Expand Down
10 changes: 5 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -751,11 +751,11 @@ docker-test-ros2-rolling: docker-build-ros2-rolling
/usr/local/bin/run_integration.sh --clean
@printf "%s\n" "$(GREEN)✓ ROS2 Rolling tests passed$(NC)"

docker-build: docker-build-ros1 docker-build-ros2-humble docker-build-ros2-jazzy docker-build-ros2-rolling
docker-build: docker-build-ros1 docker-build-ros2-humble docker-build-ros2-jazzy
@printf "%s\n" "$(GREEN)✓ All Docker images built$(NC)"

# Run tests in all Docker containers
docker-test-all: docker-test-ros1 docker-test-ros2-humble docker-test-ros2-jazzy docker-test-ros2-rolling
docker-test-all: docker-test-ros1 docker-test-ros2-humble docker-test-ros2-jazzy
@printf "%s\n" "$(GREEN)✓ All Docker tests passed!$(NC)"

# Quick Docker test (single version)
Expand Down Expand Up @@ -930,8 +930,8 @@ ci-docker-middleware:
ci-docker-ros1: docker-test-ros1
@printf "%s\n" "$(GREEN)✓ ROS1 tests passed$(NC)"

# ci-docker-ros2: ROS2 tests in Docker (all distros)
ci-docker-ros2: docker-test-ros2-humble docker-test-ros2-jazzy docker-test-ros2-rolling
# ci-docker-ros2: ROS2 tests in Docker (CI-supported distros)
ci-docker-ros2: docker-test-ros2-humble docker-test-ros2-jazzy
@printf "%s\n" "$(GREEN)✓ ROS2 tests passed$(NC)"

# ci-docker-zenoh: Zenoh tests in Docker
Expand Down Expand Up @@ -985,7 +985,7 @@ e2e:
@printf "%s\n" "$(GREEN)✓ E2E tests passed$(NC)"

# e2e-docker: All E2E tests in Docker
e2e-docker: e2e-docker-ros1 e2e-docker-ros2-humble e2e-docker-ros2-jazzy e2e-docker-ros2-rolling
e2e-docker: e2e-docker-ros1 e2e-docker-ros2-humble e2e-docker-ros2-jazzy
@printf "%s\n" "$(GREEN)✓ All E2E tests passed$(NC)"

# e2e-docker-ros1: ROS1 E2E tests in Docker
Expand Down
4 changes: 1 addition & 3 deletions codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
# Architecture:
# - core/ contains common libraries (axon_logging, axon_mcap, axon_uploader)
# - middlewares/src/axon_recorder uses core/ libraries as dependencies
# - ROS tests run on 4 distros: ROS1 Noetic, ROS2 Humble/Jazzy/Rolling
# - ROS tests run on 3 CI distros: ROS1 Noetic, ROS2 Humble/Jazzy
# - ROS tests cover BOTH middlewares/ code AND core/ code (via library usage)
# =============================================================================

Expand Down Expand Up @@ -42,11 +42,9 @@ flag_management:
- name: ros-noetic
- name: ros-humble
- name: ros-jazzy
- name: ros-rolling
- name: e2e-noetic
- name: e2e-humble
- name: e2e-jazzy
- name: e2e-rolling

# Component management - components aggregate coverage across all flags for tracking
# Components are for metrics/tracking only, not status checks
Expand Down
1 change: 0 additions & 1 deletion docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ docker-compose -f docker-compose.test.yml run test-ros2-humble /bin/bash
| `test-ros1` | ROS 1 Noetic |
| `test-ros2-humble` | ROS 2 Humble |
| `test-ros2-jazzy` | ROS 2 Jazzy |
| `test-ros2-rolling` | ROS 2 Rolling |

## CI ↔ Local Docker Mapping

Expand Down
14 changes: 0 additions & 14 deletions docker/docker-compose.test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,17 +40,3 @@ services:
- ROS_VERSION=2
command: /usr/local/bin/run_integration.sh
network_mode: host

test-ros2-rolling:
build:
context: ..
dockerfile: docker/Dockerfile.ros2.rolling
container_name: axon_test_ros2_rolling
volumes:
- ..:/workspace/axon
environment:
- ROS_DISTRO=rolling
- ROS_VERSION=2
command: /usr/local/bin/run_integration.sh
network_mode: host

8 changes: 4 additions & 4 deletions scripts/ci-e2e-local.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
# ./scripts/ci-e2e-local.sh [distro] [--coverage]
#
# Arguments:
# distro ROS distribution: noetic, humble, jazzy, rolling
# distro CI ROS distribution: noetic, humble, jazzy
# (default: all distros sequentially)
#
# Options:
Expand All @@ -35,13 +35,13 @@ NC='\033[0m' # No Color
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
RUN_COVERAGE=false
DISTROS=("noetic" "humble" "jazzy" "rolling")
DISTROS=("noetic" "humble" "jazzy")
SELECTED_DISTROS=()

# Parse arguments
while [[ $# -gt 0 ]]; do
case $1 in
noetic|humble|jazzy|rolling)
noetic|humble|jazzy)
SELECTED_DISTROS+=("$1")
shift
;;
Expand All @@ -53,7 +53,7 @@ while [[ $# -gt 0 ]]; do
echo "Usage: $0 [distro] [--coverage] [--help]"
echo ""
echo "Arguments:"
echo " distro ROS distribution: noetic, humble, jazzy, rolling"
echo " distro CI ROS distribution: noetic, humble, jazzy"
echo " (default: all distros sequentially)"
echo ""
echo "Options:"
Expand Down
8 changes: 4 additions & 4 deletions scripts/ci-ros-local.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
# ./scripts/ci-ros-local.sh [distro] [--coverage]
#
# Arguments:
# distro ROS distribution: noetic, humble, jazzy, rolling
# distro CI ROS distribution: noetic, humble, jazzy
# (default: all distros sequentially)
#
# Options:
Expand All @@ -34,13 +34,13 @@ NC='\033[0m' # No Color
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"
RUN_COVERAGE=false
DISTROS=("noetic" "humble" "jazzy" "rolling")
DISTROS=("noetic" "humble" "jazzy")
SELECTED_DISTROS=()

# Parse arguments
while [[ $# -gt 0 ]]; do
case $1 in
noetic|humble|jazzy|rolling)
noetic|humble|jazzy)
SELECTED_DISTROS+=("$1")
shift
;;
Expand All @@ -52,7 +52,7 @@ while [[ $# -gt 0 ]]; do
echo "Usage: $0 [distro] [--coverage] [--help]"
echo ""
echo "Arguments:"
echo " distro ROS distribution: noetic, humble, jazzy, rolling"
echo " distro CI ROS distribution: noetic, humble, jazzy"
echo " (default: all distros sequentially)"
echo ""
echo "Options:"
Expand Down
Loading