ci: unblock and broaden the ros2 matrix for Rolling/Resolute - #20
Merged
Conversation
Three problems, mirroring the fix landed in PickNikRobotics/rviz_visual_tools#301. 1. fail-fast The matrix had no `fail-fast: false`, so it defaulted to true. When the rolling job fails (problem 2), GitHub cancels every sibling before it can report, and the matrix produces no signal at all. 2. rolling + ROS_REPO: main on Resolute Rolling's base OS moved to Ubuntu Resolute. With no OS_CODE_NAME pinned, industrial_ci builds rolling on ubuntu:resolute -- and Rolling's `main` apt repo has no Resolute packages yet, so the job dies before CMake: 'sudo apt-get install ... ros-rolling-ros-environment' returned with 100 'setup_rosdep' returned with code '100' Switch it to `testing`, which does work on Resolute, and pin OS_CODE_NAME explicitly rather than relying on industrial_ci's default -- that default has already changed once. Mark it non-blocking until the Resolute packages are all released. 3. Three released distros had no CI at all graph_msgs is released to five distros from this single branch but only tested two: humble 0.2.0-3 tested jazzy 0.2.0-6 NOT tested kilted 0.2.0-6 NOT tested lyrical 0.2.0-7 NOT tested rolling 0.2.0-6 tested lyrical is Resolute and released, so its `main` repo is populated -- it gives a blocking Resolute job that should stay green, rather than leaving all Resolute coverage on the non-blocking rolling job. Restore the rolling+main entry, and drop the NONBLOCKING flag, once Rolling publishes to `main` for Resolute. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
nbbrooks
force-pushed
the
nbbrooks/ci-resolute-fail-fast
branch
from
August 3, 2026 01:31
e749057 to
6fde22d
Compare
nbbrooks
added a commit
to moveit/moveit_visual_tools
that referenced
this pull request
Aug 3, 2026
This repo ships a single `ros2` branch to five distros but only tested two, and neither gave a Resolute signal: humble 4.1.2-1 tested (humble-source image) jazzy 4.1.2-1 NOT tested kilted 4.1.2-2 NOT tested lyrical 4.1.2-3 NOT tested rolling 4.1.2-2 tested (rolling-source image -- see below) Move the whole matrix to plain ROS_DISTRO/ROS_REPO jobs, matching PickNikRobotics/rviz_visual_tools#301 and PickNikRobotics/graph_msgs#20: humble-main jammy blocking jazzy-main noble blocking kilted-main noble blocking (takes over CLANG_TIDY) lyrical-main resolute non-blocking rolling-testing resolute non-blocking The rolling-source job had to go. With a *prebuilt* image, ROS_DISTRO: rolling does not imply Resolute the way it does for a bare-OS job -- the OS comes from the image. moveit/moveit2:rolling-source is Ubuntu noble, built 2026-01-24, with MoveIt compiled inside it, so the job never asked apt for ros-rolling-moveit-core and never touched Resolute. Rolling moved to Resolute, so it was testing a distro/OS pairing that no longer ships, and reporting green for it -- concealing the blocker below. It could not self-heal either: moveit2's docker.yaml is 12 successes to 85 failures, and even its last success (2026-06-24) did not refresh that tag. The usual argument for a source image -- exercising MoveIt main -- was not being served by a January snapshot. Dropping humble-source too keeps the matrix uniform and removes this repo's last dependency on the moveit2 image pipeline. MoveIt is released as debs on every distro here (humble 2.5.9, jazzy 2.12.4, kilted 2.14.3), so binary jobs test what users actually install. moveit_visual_tools.repos still source-builds rviz_visual_tools and graph_msgs, which is where the unreleased fixes live. With no image left, DOCKER_IMAGE, UNDERLAY (and its AFTER_SETUP_UPSTREAM_WORKSPACE_EMBED predecessor) and the IMAGE fallbacks in CACHE_PREFIX / name are all removed as dead plumbing. lyrical and rolling both fail today for the same reason: 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 on Resolute -- lyrical as well as rolling. Both jobs are non-blocking and will start passing on their own once moveit2 is released there. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
nbbrooks
added a commit
to moveit/moveit_visual_tools
that referenced
this pull request
Aug 3, 2026
This repo ships a single `ros2` branch to five distros but only tested two, and neither gave a Resolute signal: humble 4.1.2-1 tested (humble-source image) jazzy 4.1.2-1 NOT tested kilted 4.1.2-2 NOT tested lyrical 4.1.2-3 NOT tested rolling 4.1.2-2 tested (rolling-source image -- see below) Move the whole matrix to plain ROS_DISTRO/ROS_REPO jobs, matching PickNikRobotics/rviz_visual_tools#301 and PickNikRobotics/graph_msgs#20: humble-main jammy blocking jazzy-main noble blocking kilted-main noble blocking (takes over CLANG_TIDY) lyrical-main resolute non-blocking rolling-testing resolute non-blocking The rolling-source job had to go. With a *prebuilt* image, ROS_DISTRO: rolling does not imply Resolute the way it does for a bare-OS job -- the OS comes from the image. moveit/moveit2:rolling-source is Ubuntu noble, built 2026-01-24, with MoveIt compiled inside it, so the job never asked apt for ros-rolling-moveit-core and never touched Resolute. Rolling moved to Resolute, so it was testing a distro/OS pairing that no longer ships, and reporting green for it -- concealing the blocker below. It could not self-heal either: moveit2's docker.yaml is 12 successes to 85 failures, and even its last success (2026-06-24) did not refresh that tag. The usual argument for a source image -- exercising MoveIt main -- was not being served by a January snapshot. Dropping humble-source too keeps the matrix uniform and removes this repo's last dependency on the moveit2 image pipeline. MoveIt is released as debs on every distro here (humble 2.5.9, jazzy 2.12.4, kilted 2.14.3), so binary jobs test what users actually install. moveit_visual_tools.repos still source-builds rviz_visual_tools and graph_msgs, which is where the unreleased fixes live. With no image left, DOCKER_IMAGE, UNDERLAY (and its AFTER_SETUP_UPSTREAM_WORKSPACE_EMBED predecessor) and the IMAGE fallbacks in CACHE_PREFIX / name are all removed as dead plumbing. lyrical and rolling both fail today for the same reason: 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 on Resolute -- lyrical as well as rolling. Both jobs are non-blocking and will start passing on their own once moveit2 is released there. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
nbbrooks
added a commit
to moveit/moveit_visual_tools
that referenced
this pull request
Aug 3, 2026
This repo ships a single `ros2` branch to five distros but only tested two, and neither gave a Resolute signal: humble 4.1.2-1 tested (humble-source image) jazzy 4.1.2-1 NOT tested kilted 4.1.2-2 NOT tested lyrical 4.1.2-3 NOT tested rolling 4.1.2-2 tested (rolling-source image -- see below) Move the whole matrix to plain ROS_DISTRO/ROS_REPO jobs, matching PickNikRobotics/rviz_visual_tools#301 and PickNikRobotics/graph_msgs#20: humble-main jammy blocking jazzy-main noble blocking kilted-main noble blocking (takes over CLANG_TIDY) lyrical-main resolute non-blocking rolling-testing resolute non-blocking The rolling-source job had to go. With a *prebuilt* image, ROS_DISTRO: rolling does not imply Resolute the way it does for a bare-OS job -- the OS comes from the image. moveit/moveit2:rolling-source is Ubuntu noble, built 2026-01-24, with MoveIt compiled inside it, so the job never asked apt for ros-rolling-moveit-core and never touched Resolute. Rolling moved to Resolute, so it was testing a distro/OS pairing that no longer ships, and reporting green for it -- concealing the blocker below. It could not self-heal either: moveit2's docker.yaml is 12 successes to 85 failures, and even its last success (2026-06-24) did not refresh that tag. The usual argument for a source image -- exercising MoveIt main -- was not being served by a January snapshot. Dropping humble-source too keeps the matrix uniform and removes this repo's last dependency on the moveit2 image pipeline. MoveIt is released as debs on every distro here (humble 2.5.9, jazzy 2.12.4, kilted 2.14.3), so binary jobs test what users actually install. moveit_visual_tools.repos still source-builds rviz_visual_tools and graph_msgs, which is where the unreleased fixes live. With no image left, DOCKER_IMAGE, UNDERLAY (and its AFTER_SETUP_UPSTREAM_WORKSPACE_EMBED predecessor) and the IMAGE fallbacks in CACHE_PREFIX / name are all removed as dead plumbing. lyrical and rolling both fail today for the same reason: 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 on Resolute -- lyrical as well as rolling. Both jobs are non-blocking and will start passing on their own once moveit2 is released there. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
nbbrooks
added a commit
to moveit/moveit_visual_tools
that referenced
this pull request
Aug 3, 2026
This repo ships a single `ros2` branch to five distros but only tested two, and neither gave a Resolute signal: humble 4.1.2-1 tested (humble-source image) jazzy 4.1.2-1 NOT tested kilted 4.1.2-2 NOT tested lyrical 4.1.2-3 NOT tested rolling 4.1.2-2 tested (rolling-source image -- see below) Move the whole matrix to plain ROS_DISTRO/ROS_REPO jobs, matching PickNikRobotics/rviz_visual_tools#301 and PickNikRobotics/graph_msgs#20: humble-main jammy blocking jazzy-main noble blocking kilted-main noble blocking (takes over CLANG_TIDY) lyrical-main resolute non-blocking rolling-testing resolute non-blocking The rolling-source job had to go. With a *prebuilt* image, ROS_DISTRO: rolling does not imply Resolute the way it does for a bare-OS job -- the OS comes from the image. moveit/moveit2:rolling-source is Ubuntu noble, built 2026-01-24, with MoveIt compiled inside it, so the job never asked apt for ros-rolling-moveit-core and never touched Resolute. Rolling moved to Resolute, so it was testing a distro/OS pairing that no longer ships, and reporting green for it -- concealing the blocker below. It could not self-heal either: moveit2's docker.yaml is 12 successes to 85 failures, and even its last success (2026-06-24) did not refresh that tag. The usual argument for a source image -- exercising MoveIt main -- was not being served by a January snapshot. Dropping humble-source too keeps the matrix uniform and removes this repo's last dependency on the moveit2 image pipeline. MoveIt is released as debs on every distro here (humble 2.5.9, jazzy 2.12.4, kilted 2.14.3), so binary jobs test what users actually install. moveit_visual_tools.repos still source-builds rviz_visual_tools and graph_msgs, which is where the unreleased fixes live. With no image left, DOCKER_IMAGE, UNDERLAY (and its AFTER_SETUP_UPSTREAM_WORKSPACE_EMBED predecessor) and the IMAGE fallbacks in CACHE_PREFIX / name are all removed as dead plumbing. lyrical and rolling both fail today for the same reason: 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 on Resolute -- lyrical as well as rolling. Both jobs are non-blocking and will start passing on their own once moveit2 is released there. Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Mirrors PickNikRobotics/rviz_visual_tools#301, which is merged and validated. Three problems, all present here.
1. No
fail-fast: falseThe matrix omits it, so it defaults to
true. When the rolling job fails (problem 2) GitHub cancels every sibling before it finishes, so the matrix reports nothing. On rviz_visual_tools this was measured: one 60-second failure discarded three otherwise-passing jobs.2.
rolling+ROS_REPO: maincannot work on ResoluteRolling's base OS moved to Ubuntu Resolute. With no
OS_CODE_NAMEpinned, industrial_ci builds rolling onubuntu:resolute, and Rolling'smainapt repo has no Resolute packages yet — so the job dies in setup, before CMake:ROS_REPO: testingdoes work on Resolute — verified across sibling repos.3. Three released distros had no CI at all
graph_msgsships a singleros2branch to five distros but tested two:How
ROS_REPOfail-fast: falserolling→ROS_REPO: testingwithOS_CODE_NAME: resolutepinned explicitly, marked non-blockingjazzy,kilted,lyricallyricalis Resolute and released, so itsmainrepo is populated. That gives a blocking Resolute job that should stay green, instead of leaving all Resolute coverage on the non-blocking rolling job.continue-on-erroris placed on the job, valid because this is a step-based job — it would be silently ignored on a job calling a reusable workflow viauses:.Restore the
rolling+mainentry, and drop theNONBLOCKINGflag, once Rolling publishes tomainfor Resolute.Expected result
All six jobs report.
humble,jazzy,kilted,lyricalshould be green;rollingmay be red during the transition without blocking.🤖 Generated with Claude Code