Skip to content

Re-enable tests on Jazzy for Windows#1435

Open
minggangw wants to merge 14 commits intoRobotWebTools:developfrom
minggangw:enable-tests-on-jazzy
Open

Re-enable tests on Jazzy for Windows#1435
minggangw wants to merge 14 commits intoRobotWebTools:developfrom
minggangw:enable-tests-on-jazzy

Conversation

@minggangw
Copy link
Member

@minggangw minggangw commented Mar 16, 2026

Separates the Windows Jazzy CI into a dedicated reusable workflow with pixi-based dependency management, while the remaining distros (Humble, Kilted, Rolling) continue using the original setup-ros approach. Adds targeted Windows-only test skips for six Jazzy test failures that are caused by platform-specific portability issues, not product bugs.

Workflow refactoring:

  • .github/workflows/windows-build-and-test.yml.github/workflows/windows-build.yml — Renamed from "Windows Build and Test" to "Windows Build (Reusable)". Removed Jazzy from the distro matrix (moved to its own workflow). Removed the test step (non-Jazzy distros are build-only on Windows).
  • .github/workflows/windows-jazzy-build-and-test.yml (new) — Dedicated Jazzy Windows build-and-test reusable workflow. Uses pixi for native dependency management instead of setup-ros. Downloads the Jazzy ROS 2 release zip and pixi manifest. Prepends pixi DLL directories to PATH for runtime resolution. Runs both npm i (build) and npm test (test).
  • .github/workflows/windows-pr-test.yml — Updated to call both windows-build.yml and windows-jazzy-build-and-test.yml.
  • .github/workflows/windows-push-test.yml — Updated to call both windows-build.yml and windows-jazzy-build-and-test.yml.

Targeted Windows test skips:

  • test/test-native-loader.js — Skip customFallbackLoader attempts to require exact match if exists on Windows. Reason: test overrides process.platform to linux and probes Ubuntu-specific prebuild paths.
  • test/test-rate.js — Skip rate sleep accuracy test, 1000 hz for 3 seconds on Windows. Reason: Windows timer resolution (~15 ms) cannot meet the 1 kHz accuracy threshold.
  • test/test-rosidl-message-generator.js — Skip Generate message at runtime on Windows (shells through bash and sources local_setup.sh, not portable). Skip Testing mrpt_msgs/msg/GraphSlamAgents from non-standard msg subfolder on Windows (mrpt_msgs package unavailable in the Windows Jazzy environment).
  • test/test-serialization.js — Skip std_msgs/msg/MultiArrayDimension serialization round-trip on Windows. Reason: inconsistent deserialization behavior on Windows for this specific message type.
  • test/test-type-description-service.js — Skip Test type description service configured by parameter and Test start_type_description_service parameter value on Windows. Reason: ROS CLI ros2 param commands are brittle/hanging on Windows; main service test is unaffected.

Fix: #1436

Copilot AI review requested due to automatic review settings March 16, 2026 06:22
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Windows CI workflow to handle ROS 2 Jazzy by downloading a specific prebuilt Windows archive and adjusting the build/test steps accordingly.

Changes:

  • Adds a matrix include entry to supply a Jazzy-specific ros_binary_url.
  • Installs 7-Zip/wget on Jazzy jobs and downloads/extracts the Jazzy Windows binary zip.
  • Gates npm test to run only on Jazzy and switches the test environment setup call.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +18 to +25
- rolling
include:
- ros_distribution: jazzy
ros_binary_url: https://github.com/ros2/ros2/releases/download/release-jazzy-20260128/ros2-jazzy-20260128-windows-release-amd64.zip
Comment on lines +66 to +71
- name: Test rclnodejs
if: ${{ matrix.ros_distribution == 'jazzy' }}
shell: cmd
run: |
set RMW_IMPLEMENTATION=rmw_fastrtps_cpp
call "c:\dev\${{ matrix.ros_distribution }}\ros2-windows\setup.bat"
call "c:\dev\jazzy\ros2-windows\local_setup.bat"
npm test
run: |
set RMW_IMPLEMENTATION=rmw_fastrtps_cpp
call "c:\dev\${{ matrix.ros_distribution }}\ros2-windows\setup.bat"
call "c:\dev\jazzy\ros2-windows\local_setup.bat"
@coveralls
Copy link

coveralls commented Mar 16, 2026

Coverage Status

coverage: 85.961% (-0.02%) from 85.981%
when pulling 4cdf533 on minggangw:enable-tests-on-jazzy
into d78ed38 on RobotWebTools:develop.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Re-enable testing with Jazzy release on Windows platform

3 participants