Skip to content

ci: match moveit2's Rolling-on-Resolute pattern for coverage + ABI check - #37

Merged
nbbrooks merged 2 commits into
mainfrom
nbbrooks/rolling-resolute-ci-workaround
Jul 27, 2026
Merged

ci: match moveit2's Rolling-on-Resolute pattern for coverage + ABI check#37
nbbrooks merged 2 commits into
mainfrom
nbbrooks/rolling-resolute-ci-workaround

Conversation

@nbbrooks

Copy link
Copy Markdown
Member

Why

Coverage Build and Rolling ABI Compatibility Check have been red on every PR since 2026-06-15 (7+ PRs stuck: five Dependabot bumps, two workflow-cleanup PRs, and #25). Neither is a per-PR bug — both hit the same underlying ecosystem transition: Rolling migrated its base OS from Noble to Resolute, and this repo's CI tooling never caught up.

Two distinct failure modes on the same root cause:

  1. Rolling - ABI Compatibility Check: industrial_ci pulls the right ubuntu:resolute container, but can't apt-get install ros-rolling-ros-environment because the ROS 2 main apt doesn't yet ship Rolling-on-Resolute packages — those currently live only in ros2-testing.
  2. Coverage Build: runs on the noble runner (ubuntu-24.04) with ros-tooling/action-ros-ci. Rolling apt on noble now ships packages whose dependency chains are stale, so CMake configure dies with ModuleNotFoundError: No module named 'ament_package' even though ros-dev-tools reports installed. Dependabot Bump ros-tooling/action-ros-ci from 0.3 to 0.4 #33's bump to action-ros-ci@v0.4 hits the same wall.

moveit/moveit2 already worked through this transition on its own CI (see its ci.yaml — the rolling-resolute matrix entry). We mirror that pattern here.

How

rolling-abi-compatibility.yml — real fix:

  • Switch ROS_REPO: mainROS_REPO: testing so industrial_ci resolves ros-rolling-* against ros2-testing apt (which has Resolute support).
  • Add explicit OS_CODE_NAME: resolute. industrial_ci already picks the right container, but the explicit setting pins it and documents intent (matches moveit2's style).
  • Mark continue-on-error: true as belt-and-braces — matches how moveit2 handles its rolling-resolute (experimental) job. If the ecosystem shifts again, this workflow won't gate merges.

ci-coverage-build.yml — non-blocking workaround only:

  • Add continue-on-error: true. There's no analogous configuration fix here: the workflow runs directly on the runner (not in an industrial_ci container), and the noble runner + Rolling apt combination is broken until either GitHub ships an Ubuntu 26.04 runner or ros-tooling/action-ros-ci releases a Resolute-aware version. Rather than block every PR on a transient ecosystem gap, we surface the failure without gating.

Both changes should be revisited once ros-tooling and industrial_ci catch up to the transition.

nbbrooks added 2 commits July 26, 2026 20:43
Both workflows have been red since 2026-06-15 on every PR (7 stuck), blocking
merge for Dependabot bumps and other simple changes. Two adjustments mirroring
moveit2/moveit2's ci.yaml handling of the same base-OS transition:

- rolling-abi-compatibility.yml: OS_CODE_NAME=resolute + ROS_REPO=testing so
  industrial_ci resolves ros-rolling-* packages against ros2-testing apt (which
  has Resolute support) instead of main (Noble-lagged).
- ci-coverage-build.yml: continue-on-error while the noble runner + Rolling
  combination can't resolve the current python3-ament-package chain. There's
  no runner-side fix without either a Resolute-based GitHub runner or a
  ros-tooling/action-ros-ci release that handles this.

Also marks the ABI check continue-on-error as belt-and-braces — matches how
moveit2 handles its (experimental) rolling-resolute job. Long-term: revisit
both once ros-tooling and industrial_ci catch up to the transition.
…w comment

Expand the continue-on-error rationale to record the specific rosdep +
CMake failure (realtime_tools noble gap → controller_interface not found)
so a future maintainer knows what to look for when deciding whether the
workaround can be removed. Also names the two concrete revisit triggers:
a Resolute-aware ros-tooling/action-ros-ci release, or wrapping in
industrial_ci to match moveit2's pattern.
@nbbrooks
nbbrooks merged commit 8b2923b into main Jul 27, 2026
7 of 8 checks passed
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