ci: unblock and broaden the ros2 matrix for Rolling/Resolute - #63
Merged
Merged
Conversation
Four problems, all of which leave CI on `ros2` uninformative today. 1. fail-fast The matrix had no `fail-fast: false`, so it defaulted to true. The rolling-main job fails in ~60s (problem 2) and GitHub then cancels every sibling before it can report. From run 29725301361 on 5e2fd13: rolling-main + ccov 07:39:31 -> 07:40:39 failure rolling-testing 07:39:31 -> 07:40:47 cancelled humble-main 07:39:31 -> 07:40:47 cancelled humble-testing 07:39:32 -> 07:40:47 cancelled iron-main 07:39:31 -> 07:40:47 cancelled iron-testing 07:39:31 -> 07:40:46 cancelled One environmental failure, five results discarded -- including the two humble jobs that would have passed. As a result #62, the only commit on this branch since 1.0.8, had never been validated by CI. 2. rolling + ROS_REPO: main on Resolute Rolling's base OS moved to Ubuntu Resolute, and Rolling's `main` apt repo has no Resolute packages yet, so the job dies in setup before CMake: E: Unable to locate package ros-rolling-ros-environment 'setup_rosdep' returned with code '100' after 0 min 8 sec 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. 3. iron is EOL and this package is not released to it Iron reached EOL in November 2024, and iron/distribution.yaml carries no `release:` version for warehouse_ros_sqlite. A third of the matrix was testing a distro that never ships. 4. Three released distros had no coverage Released from this single `ros2` branch, versus what was tested: humble 1.0.8-1 tested jazzy 1.0.8-1 NOT tested kilted 1.0.8-1 NOT tested lyrical 1.0.8-1 NOT tested rolling 1.0.8-2 tested (broken) Coverage moves off the deleted rolling-main job onto rolling-testing, making it non-blocking -- the same trade PickNikRobotics/rviz_visual_tools#301 made. lyrical gates. It is released, it is Resolute, and ros-lyrical-warehouse-ros is published, so it gives a blocking Resolute signal rather than leaving all Resolute coverage on the non-blocking rolling job. Verified green. rolling stays non-blocking because ros-rolling-warehouse-ros is not published: E: Unable to locate package ros-rolling-warehouse-ros warehouse_ros 2.0.7 carries the tf2 .h -> .hpp fix that unblocks that build; drop NONBLOCKING from rolling once it is on the buildfarm. Note this renames rolling-testing and deletes rolling-main + ccov, both of which are required status checks on `ros2`, so branch protection must be updated to Format, humble-main, humble-testing, jazzy-main, kilted-main, lyrical-main before this can merge. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
nbbrooks
force-pushed
the
nbbrooks/ci-matrix-resolute
branch
from
August 3, 2026 07:50
6035dbe to
88105ee
Compare
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.
The
ros2matrix currently produces no signal at all, tests a distro this package is not released to, and omits three that it is.1.
fail-fastdiscards every resultThe
strategy:block has nofail-fast: false, so it defaults totrue. Therolling-mainjob fails in ~60s for an environmental reason (below), and GitHub then cancels every sibling before it can report. From the latest run onros2(5e2fd13, run 29725301361):One environmental failure, five results thrown away — including the two humble jobs that would have passed. The consequence is that
#62("Use Boost targets"), the only commit on this branch since 1.0.8, has never been validated by CI.2.
rolling+ROS_REPO: maincannot work on Ubuntu ResoluteRolling's base OS moved to Resolute, and Rolling's
mainapt repo has no Resolute packages yet, so the job dies in setup, well before CMake:Switch it to
ROS_REPO: testing, which does work on Resolute, and pinOS_CODE_NAME: resoluteexplicitly rather than relying on industrial_ci's default — that default has already changed once.3.
ironis EOL, and this package is not released to itBoth
ironjobs go. Iron reached EOL in November 2024, andiron/distribution.yamlcarries norelease:version forwarehouse_ros_sqlite— so a third of the matrix was testing a distro that never ships.4. Three released distros had no coverage
Released from this single
ros2branch, versus what was tested before this PR:Resulting matrix
humble-mainhumble-testingjazzy-mainkilted-mainlyrical-mainrolling-testing + ccovCoverage moves from the deleted
rolling-mainjob ontorolling-testing, so it is non-blocking — the same trade PickNikRobotics/rviz_visual_tools#301 made.lyrical gates. It is released, it is Resolute, and
ros-lyrical-warehouse-rosis published, so it provides a blocking Resolute signal instead of leaving all Resolute coverage on the non-blocking rolling job. Verified green on this branch.rolling stays non-blocking because
ros-rolling-warehouse-rosis not published:warehouse_ros2.0.7 is being released now with thetf2.h→.hppfix that unblocks that build. DropNONBLOCKINGfrom the rolling entry once it is on the buildfarm.Result on this branch
humble-mainhumble-testingjazzy-mainkilted-mainlyrical-mainrolling-testing + ccovros-rolling-warehouse-ros)Overall run conclusion is
success. This is also the first time#62has been validated by CI — on five distros.Required status checks on
ros2are currently:This PR deletes
rolling-main + ccovand renamesrolling-testingtorolling-testing + ccov, so two required checks will never report and the PR cannot merge until protection is updated. Suggested new set, excluding only the intentionally non-blocking rolling job:Use the scoped endpoint rather than a full protection
PUT, which requires the whole object and silently drops anything omitted:Noted but not changed
prepare target_ws for cacheis gated on! matrix.env.CCOV, but the matrix definesCCOV_UPLOAD, neverCCOV— so that condition is always true and the step also runs for the coverage job, whosetarget_wsis deliberately not cached. Harmless, pre-dates this PR, and left alone to keep this diff to the matrix.