Skip to content

ci: cover kilted and lyrical, and add a real Resolute rolling job - #753

Open
nbbrooks wants to merge 1 commit into
ros2from
nbbrooks/ci-distro-coverage
Open

ci: cover kilted and lyrical, and add a real Resolute rolling job#753
nbbrooks wants to merge 1 commit into
ros2from
nbbrooks/ci-distro-coverage

Conversation

@nbbrooks

@nbbrooks nbbrooks commented Aug 3, 2026

Copy link
Copy Markdown

Why

The ros2 branch is released to four distros but the matrix tests two:

distro released tested
jazzy 0.1.5-1 jazzy-source
kilted 0.1.5-1
lyrical 0.1.5-3
rolling 0.1.5-2 ⚠️ rolling-source — see below

(humble is released from its own branch, unaffected.)

The rolling jobs don't test Resolute

With a prebuilt image, ROS_DISTRO: rolling doesn't imply Resolute — the OS comes from the image. moveit/moveit2:rolling-source is Ubuntu noble, built 2026-01-24, with MoveIt compiled inside it. Rolling moved to Resolute, so those jobs have been green while testing a distro/OS pairing that no longer ships.

They won't refresh either: moveit2's docker.yaml has 12 successes to 85 failures, last success 2026-06-24 (currently a hardcoded clang-format-14 that Resolute doesn't package).

How

Rather than converting them, add bare-OS jobs alongside — the shape moveit2's own ci.yaml uses, where a non-blocking rolling-resolute job sits next to the prebuilt rolling-ci ones. That keeps ccov, clang-tidy and asan running against MoveIt main while giving the branch a Resolute signal it has never had.

job base OS blocking
jazzy-source • ccov noble (unchanged)
rolling-source • clang-tidy noble (unchanged)
rolling-source • asan noble (unchanged)
kilted-main noble new
lyrical-main resolute ⚠️ new, non-blocking
rolling-testing resolute ⚠️ new, non-blocking

DOCKER_IMAGE moves out of the static job env: into a step gated on ! matrix.env.OS_CODE_NAME, since bare-OS jobs must leave it unset. CACHE_PREFIX and the job name fall back to <distro>-<repo> where IMAGE is absent. UNDERLAY already handled this correctly — it's conditional on endsWith(matrix.env.IMAGE, '-source').

⚠️ Expect the two Resolute jobs to fail initially

E: Unable to locate package ros-lyrical-moveit-core

Only moveit_common, moveit_configs_utils, moveit_msgs and moveit_resources are published for Resolute; moveit_core is not. That blocks every downstream package there — on lyrical as well as rolling. Both jobs are non-blocking and will start passing on their own once moveit2 is released for Resolute.

This mirrors moveit_visual_tools#157 and rviz_visual_tools#301, both merged.

🤖 Generated with Claude Code

The ros2 branch is released to four distros but the matrix tests two:

  jazzy   0.1.5-1   jazzy-source
  kilted  0.1.5-1   NOT tested
  lyrical 0.1.5-3   NOT tested
  rolling 0.1.5-2   rolling-source -- see below

(humble is released from its own branch and is not affected.)

The rolling-source jobs do not test Resolute. With a prebuilt image,
ROS_DISTRO: rolling does not imply Resolute -- the OS comes from the image,
and moveit/moveit2:rolling-source is Ubuntu noble, built 2026-01-24, with
MoveIt compiled inside it. Rolling moved to Resolute, so those jobs have
been green while testing a distro/OS pairing that no longer ships. The tag
will not refresh either: moveit2's docker.yaml has 12 successes to 85
failures, last success 2026-06-24.

Rather than convert them, add bare-OS jobs alongside -- the same shape
moveit2's own ci.yaml uses, where a non-blocking "rolling-resolute" job sits
next to the prebuilt rolling-ci ones. That keeps ccov, clang-tidy and asan
running against MoveIt main while giving the branch a Resolute signal it
did not have.

  kilted-main      noble     blocking
  lyrical-main     resolute  non-blocking
  rolling-testing  resolute  non-blocking

lyrical and rolling will both fail initially:

  E: Unable to locate package ros-lyrical-moveit-core

Only moveit_common, moveit_configs_utils, moveit_msgs and moveit_resources
are published for Resolute; moveit_core is not, which blocks every
downstream package there on lyrical as well as rolling. Both jobs are
non-blocking and start passing once moveit2 is released for Resolute.

DOCKER_IMAGE moves out of the static job env into a step gated on
`! matrix.env.OS_CODE_NAME`, since bare-OS jobs must leave it unset.
CACHE_PREFIX and the job name fall back to <distro>-<repo> where IMAGE is
absent. UNDERLAY already handled this correctly.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.

1 participant