From 6fde22d4e771d69fb274aaee4c763fb6cc566594 Mon Sep 17 00:00:00 2001 From: Nathan Brooks Date: Sun, 2 Aug 2026 19:22:29 -0600 Subject: [PATCH] ci: unblock and broaden the ros2 matrix for Rolling/Resolute 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) --- .github/workflows/build.yaml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 6ddf968..5b9e7a8 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -13,16 +13,29 @@ on: jobs: industrial_ci: strategy: + fail-fast: false matrix: env: - ROS_DISTRO: humble ROS_REPO: main - ROS_DISTRO: humble ROS_REPO: testing - - ROS_DISTRO: rolling + - ROS_DISTRO: jazzy + ROS_REPO: main + - ROS_DISTRO: kilted + ROS_REPO: main + - ROS_DISTRO: lyrical ROS_REPO: main + OS_CODE_NAME: resolute + # Rolling's base OS moved to Resolute and its `main` apt repo has no + # Resolute packages yet, so a rolling+main job dies in setup_rosdep. + # Track `testing`, pin OS_CODE_NAME rather than relying on + # industrial_ci's default, and keep it non-blocking until the Resolute + # packages are all released. - ROS_DISTRO: rolling ROS_REPO: testing + OS_CODE_NAME: resolute + NONBLOCKING: true env: CCACHE_DIR: ${{ github.workspace }}/.ccache BASEDIR: ${{ github.workspace }}/.work @@ -30,6 +43,7 @@ jobs: name: ${{ matrix.env.ROS_DISTRO }}-${{ matrix.env.ROS_REPO }} runs-on: ubuntu-latest + continue-on-error: ${{ matrix.env.NONBLOCKING || false }} steps: - uses: actions/checkout@v6 # The target directory cache doesn't include the source directory because