From 6f3c4cf8107230f1de7c4f20c497c4c412407b6d Mon Sep 17 00:00:00 2001 From: stz Date: Thu, 4 Jun 2026 18:39:14 +0800 Subject: [PATCH] ci(ros): drop Rolling from CI matrices - Remove Rolling from GitHub Actions ROS build, test, E2E, and publish matrices - Drop Rolling Codecov flags and local CI default distro lists - Exclude Rolling from aggregate Docker CI targets while keeping explicit manual targets --- .github/workflows/ci.yml | 4 ++-- .github/workflows/docker-build.yml | 4 +--- .github/workflows/e2e-tests.yml | 8 ++------ .github/workflows/publish.yml | 2 +- .github/workflows/tests-ros.yml | 9 ++------- Makefile | 10 +++++----- codecov.yml | 4 +--- docker/README.md | 1 - docker/docker-compose.test.yml | 14 -------------- scripts/ci-e2e-local.sh | 8 ++++---- scripts/ci-ros-local.sh | 8 ++++---- 11 files changed, 22 insertions(+), 50 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f5da87b5..1fcecfff 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,7 @@ # ┌───────────────┐ ┌───────────────┐ # │ Build Images │ │ C++ Integr. │ # │ (shared, │ │ Tests +cov │ -# │ 4 distros) │ │ │ +# │ 3 distros) │ │ │ # └───────┬───────┘ └───────────────┘ # │ # ┌────┴────┐ @@ -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 diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 7b5fd6df..cc872b3b 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -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: @@ -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 @@ -109,4 +108,3 @@ jobs: run: | echo "Built image for ${{ matrix.distro }}" echo "Tags: ${{ steps.meta.outputs.tags }}" - diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 802ac978..ad90f8f3 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -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. @@ -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 # ========================================================================== @@ -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 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index cacc7f58..da68bfed 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -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 diff --git a/.github/workflows/tests-ros.yml b/.github/workflows/tests-ros.yml index 1f02c683..6bf9f615 100644 --- a/.github/workflows/tests-ros.yml +++ b/.github/workflows/tests-ros.yml @@ -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 @@ -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 diff --git a/Makefile b/Makefile index e959cd2d..6b45a052 100644 --- a/Makefile +++ b/Makefile @@ -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) @@ -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 @@ -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 diff --git a/codecov.yml b/codecov.yml index 3be9f950..21872bde 100644 --- a/codecov.yml +++ b/codecov.yml @@ -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) # ============================================================================= @@ -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 diff --git a/docker/README.md b/docker/README.md index af76d83a..74866359 100644 --- a/docker/README.md +++ b/docker/README.md @@ -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 diff --git a/docker/docker-compose.test.yml b/docker/docker-compose.test.yml index fb38911b..0f56de27 100644 --- a/docker/docker-compose.test.yml +++ b/docker/docker-compose.test.yml @@ -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 - diff --git a/scripts/ci-e2e-local.sh b/scripts/ci-e2e-local.sh index 30f1442e..5641599d 100755 --- a/scripts/ci-e2e-local.sh +++ b/scripts/ci-e2e-local.sh @@ -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: @@ -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 ;; @@ -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:" diff --git a/scripts/ci-ros-local.sh b/scripts/ci-ros-local.sh index d24bf75f..e13f90c2 100755 --- a/scripts/ci-ros-local.sh +++ b/scripts/ci-ros-local.sh @@ -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: @@ -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 ;; @@ -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:"