From 978200d08a71bee9b0a9170d2ef04c82ac956e3c Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Tue, 10 Dec 2024 20:28:02 +0000 Subject: [PATCH 1/7] Add downstream jobs --- .../humble-semi-binary-downstream-build.yml | 49 +++++++++++++++++ .../jazzy-semi-binary-downstream-build.yml | 49 +++++++++++++++++ .../rolling-semi-binary-downstream-build.yml | 54 +++++++++++++++++++ ros_controls.humble.repos | 13 +++++ ros_controls.jazzy.repos | 9 ++++ ros_controls.rolling.repos | 9 ++++ 6 files changed, 183 insertions(+) create mode 100644 .github/workflows/humble-semi-binary-downstream-build.yml create mode 100644 .github/workflows/jazzy-semi-binary-downstream-build.yml create mode 100644 .github/workflows/rolling-semi-binary-downstream-build.yml create mode 100644 ros_controls.humble.repos create mode 100644 ros_controls.jazzy.repos create mode 100644 ros_controls.rolling.repos diff --git a/.github/workflows/humble-semi-binary-downstream-build.yml b/.github/workflows/humble-semi-binary-downstream-build.yml new file mode 100644 index 0000000000..95e3609256 --- /dev/null +++ b/.github/workflows/humble-semi-binary-downstream-build.yml @@ -0,0 +1,49 @@ +name: Humble Downstream Build +# description: 'Build & test downstream packages from source.' +# author: Christoph Froehlich + +on: + workflow_dispatch: + pull_request: + branches: + - humble + paths: + - '**.hpp' + - '**.h' + - '**.cpp' + - '**.py' + - '**.yaml' + - '.github/workflows/humble-semi-binary-downstream-build.yml' + - '**/package.xml' + - '**/CMakeLists.txt' + - 'ros_controls.humble.repos' + push: + branches: + - humble + paths: + - '**.hpp' + - '**.h' + - '**.cpp' + - '**.py' + - '**.yaml' + - '.github/workflows/humble-semi-binary-downstream-build.yml' + - '**/package.xml' + - '**/CMakeLists.txt' + - 'ros_controls.humble.repos' + +concurrency: + # cancel previous runs of the same workflow, except for pushes on humble branch + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ !startsWith(github.ref, '/refs/heads') }} + +jobs: + build-downstream: + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-industrial-ci-with-cache.yml@master + with: + ros_distro: humble + ros_repo: testing + ref_for_scheduled_build: master + not_test_build: true + upstream_workspace: ros2_controllers.humble.repos + downstream_workspace: ros_controls.humble.repos + not_test_downstream: true diff --git a/.github/workflows/jazzy-semi-binary-downstream-build.yml b/.github/workflows/jazzy-semi-binary-downstream-build.yml new file mode 100644 index 0000000000..955fd6bbe5 --- /dev/null +++ b/.github/workflows/jazzy-semi-binary-downstream-build.yml @@ -0,0 +1,49 @@ +name: Jazzy Downstream Build +# description: 'Build & test downstream packages from source.' +# author: Christoph Froehlich + +on: + workflow_dispatch: + pull_request: + branches: + - master + paths: + - '**.hpp' + - '**.h' + - '**.cpp' + - '**.py' + - '**.yaml' + - '.github/workflows/jazzy-semi-binary-downstream-build.yml' + - '**/package.xml' + - '**/CMakeLists.txt' + - 'ros_controls.jazzy.repos' + push: + branches: + - master + paths: + - '**.hpp' + - '**.h' + - '**.cpp' + - '**.py' + - '**.yaml' + - '.github/workflows/jazzy-semi-binary-downstream-build.yml' + - '**/package.xml' + - '**/CMakeLists.txt' + - 'ros_controls.jazzy.repos' + +concurrency: + # cancel previous runs of the same workflow, except for pushes on master branch + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ !startsWith(github.ref, '/refs/heads') }} + +jobs: + build-downstream: + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-industrial-ci-with-cache.yml@master + with: + ros_distro: jazzy + ros_repo: testing + ref_for_scheduled_build: master + not_test_build: true + upstream_workspace: ros2_controllers.jazzy.repos + downstream_workspace: ros_controls.jazzy.repos + not_test_downstream: true diff --git a/.github/workflows/rolling-semi-binary-downstream-build.yml b/.github/workflows/rolling-semi-binary-downstream-build.yml new file mode 100644 index 0000000000..1935e968f1 --- /dev/null +++ b/.github/workflows/rolling-semi-binary-downstream-build.yml @@ -0,0 +1,54 @@ +name: Rolling Downstream Build +# description: 'Build & test downstream packages from source.' +# author: Christoph Froehlich + +on: + workflow_dispatch: + pull_request: + branches: + - master + paths: + - '**.hpp' + - '**.h' + - '**.cpp' + - '**.py' + - '**.yaml' + - '.github/workflows/rolling-semi-binary-downstream-build.yml' + - '**/package.xml' + - '**/CMakeLists.txt' + - 'ros_controls.rolling.repos' + push: + branches: + - master + paths: + - '**.hpp' + - '**.h' + - '**.cpp' + - '**.py' + - '**.yaml' + - '.github/workflows/rolling-semi-binary-downstream-build.yml' + - '**/package.xml' + - '**/CMakeLists.txt' + - 'ros_controls.rolling.repos' + +concurrency: + # cancel previous runs of the same workflow, except for pushes on master branch + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ !startsWith(github.ref, '/refs/heads') }} + +jobs: + build-downstream: + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-industrial-ci-with-cache.yml@master + strategy: + fail-fast: false + matrix: + ROS_DISTRO: [rolling] + ROS_REPO: [testing] + with: + ros_distro: ${{ matrix.ROS_DISTRO }} + ros_repo: ${{ matrix.ROS_REPO }} + ref_for_scheduled_build: master + not_test_build: true + upstream_workspace: ros2_controllers.${{ matrix.ROS_DISTRO }}.repos + downstream_workspace: ros_controls.${{ matrix.ROS_DISTRO }}.repos + not_test_downstream: true diff --git a/ros_controls.humble.repos b/ros_controls.humble.repos new file mode 100644 index 0000000000..f57a077307 --- /dev/null +++ b/ros_controls.humble.repos @@ -0,0 +1,13 @@ +repositories: + ros-controls/gazebo_ros2_control: + type: git + url: https://github.com/ros-controls/gazebo_ros2_control.git + version: humble + ros-controls/gz_ros2_control: + type: git + url: https://github.com/ros-controls/gz_ros2_control.git + version: humble + ros-controls/ros2_control_demos: + type: git + url: https://github.com/ros-controls/ros2_control_demos.git + version: humble diff --git a/ros_controls.jazzy.repos b/ros_controls.jazzy.repos new file mode 100644 index 0000000000..e7cfd385f8 --- /dev/null +++ b/ros_controls.jazzy.repos @@ -0,0 +1,9 @@ +repositories: + ros-controls/gz_ros2_control: + type: git + url: https://github.com/ros-controls/gz_ros2_control.git + version: jazzy + ros-controls/ros2_control_demos: + type: git + url: https://github.com/ros-controls/ros2_control_demos.git + version: master diff --git a/ros_controls.rolling.repos b/ros_controls.rolling.repos new file mode 100644 index 0000000000..da64a510fd --- /dev/null +++ b/ros_controls.rolling.repos @@ -0,0 +1,9 @@ +repositories: + ros-controls/gz_ros2_control: + type: git + url: https://github.com/ros-controls/gz_ros2_control.git + version: rolling + ros-controls/ros2_control_demos: + type: git + url: https://github.com/ros-controls/ros2_control_demos.git + version: master From 7e3a77c0bd24ab0ad817718d17f7fbe52da36985 Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Wed, 11 Dec 2024 11:13:51 +0000 Subject: [PATCH 2/7] Remove push trigger --- .../humble-semi-binary-downstream-build.yml | 16 +--------------- .../jazzy-semi-binary-downstream-build.yml | 16 +--------------- .../rolling-semi-binary-downstream-build.yml | 16 +--------------- 3 files changed, 3 insertions(+), 45 deletions(-) diff --git a/.github/workflows/humble-semi-binary-downstream-build.yml b/.github/workflows/humble-semi-binary-downstream-build.yml index 95e3609256..b96ed74148 100644 --- a/.github/workflows/humble-semi-binary-downstream-build.yml +++ b/.github/workflows/humble-semi-binary-downstream-build.yml @@ -17,24 +17,10 @@ on: - '**/package.xml' - '**/CMakeLists.txt' - 'ros_controls.humble.repos' - push: - branches: - - humble - paths: - - '**.hpp' - - '**.h' - - '**.cpp' - - '**.py' - - '**.yaml' - - '.github/workflows/humble-semi-binary-downstream-build.yml' - - '**/package.xml' - - '**/CMakeLists.txt' - - 'ros_controls.humble.repos' concurrency: - # cancel previous runs of the same workflow, except for pushes on humble branch group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: ${{ !startsWith(github.ref, '/refs/heads') }} + cancel-in-progress: true jobs: build-downstream: diff --git a/.github/workflows/jazzy-semi-binary-downstream-build.yml b/.github/workflows/jazzy-semi-binary-downstream-build.yml index 955fd6bbe5..d85a31a805 100644 --- a/.github/workflows/jazzy-semi-binary-downstream-build.yml +++ b/.github/workflows/jazzy-semi-binary-downstream-build.yml @@ -17,24 +17,10 @@ on: - '**/package.xml' - '**/CMakeLists.txt' - 'ros_controls.jazzy.repos' - push: - branches: - - master - paths: - - '**.hpp' - - '**.h' - - '**.cpp' - - '**.py' - - '**.yaml' - - '.github/workflows/jazzy-semi-binary-downstream-build.yml' - - '**/package.xml' - - '**/CMakeLists.txt' - - 'ros_controls.jazzy.repos' concurrency: - # cancel previous runs of the same workflow, except for pushes on master branch group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: ${{ !startsWith(github.ref, '/refs/heads') }} + cancel-in-progress: true jobs: build-downstream: diff --git a/.github/workflows/rolling-semi-binary-downstream-build.yml b/.github/workflows/rolling-semi-binary-downstream-build.yml index 1935e968f1..9199b3f4c0 100644 --- a/.github/workflows/rolling-semi-binary-downstream-build.yml +++ b/.github/workflows/rolling-semi-binary-downstream-build.yml @@ -17,24 +17,10 @@ on: - '**/package.xml' - '**/CMakeLists.txt' - 'ros_controls.rolling.repos' - push: - branches: - - master - paths: - - '**.hpp' - - '**.h' - - '**.cpp' - - '**.py' - - '**.yaml' - - '.github/workflows/rolling-semi-binary-downstream-build.yml' - - '**/package.xml' - - '**/CMakeLists.txt' - - 'ros_controls.rolling.repos' concurrency: - # cancel previous runs of the same workflow, except for pushes on master branch group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: ${{ !startsWith(github.ref, '/refs/heads') }} + cancel-in-progress: true jobs: build-downstream: From 2a712d0b5f204d32c54e51a70907f8b61bf52c5a Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Wed, 11 Dec 2024 11:15:47 +0000 Subject: [PATCH 3/7] Does it build this repo if we set target_workspace? --- .github/workflows/humble-semi-binary-downstream-build.yml | 3 +-- .github/workflows/jazzy-semi-binary-downstream-build.yml | 3 +-- .github/workflows/rolling-semi-binary-downstream-build.yml | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/humble-semi-binary-downstream-build.yml b/.github/workflows/humble-semi-binary-downstream-build.yml index b96ed74148..c04acfb31e 100644 --- a/.github/workflows/humble-semi-binary-downstream-build.yml +++ b/.github/workflows/humble-semi-binary-downstream-build.yml @@ -29,7 +29,6 @@ jobs: ros_distro: humble ros_repo: testing ref_for_scheduled_build: master - not_test_build: true upstream_workspace: ros2_controllers.humble.repos - downstream_workspace: ros_controls.humble.repos + target_workspace: ros_controls.humble.repos not_test_downstream: true diff --git a/.github/workflows/jazzy-semi-binary-downstream-build.yml b/.github/workflows/jazzy-semi-binary-downstream-build.yml index d85a31a805..4313ae92d8 100644 --- a/.github/workflows/jazzy-semi-binary-downstream-build.yml +++ b/.github/workflows/jazzy-semi-binary-downstream-build.yml @@ -29,7 +29,6 @@ jobs: ros_distro: jazzy ros_repo: testing ref_for_scheduled_build: master - not_test_build: true upstream_workspace: ros2_controllers.jazzy.repos - downstream_workspace: ros_controls.jazzy.repos + target_workspace: ros_controls.jazzy.repos not_test_downstream: true diff --git a/.github/workflows/rolling-semi-binary-downstream-build.yml b/.github/workflows/rolling-semi-binary-downstream-build.yml index 9199b3f4c0..059b4f1880 100644 --- a/.github/workflows/rolling-semi-binary-downstream-build.yml +++ b/.github/workflows/rolling-semi-binary-downstream-build.yml @@ -36,5 +36,5 @@ jobs: ref_for_scheduled_build: master not_test_build: true upstream_workspace: ros2_controllers.${{ matrix.ROS_DISTRO }}.repos - downstream_workspace: ros_controls.${{ matrix.ROS_DISTRO }}.repos + target_workspace: ros_controls.${{ matrix.ROS_DISTRO }}.repos not_test_downstream: true From 43f81baa069fa3a5e7c3efb4fc4b39cd2d6c3f5b Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Wed, 11 Dec 2024 11:17:45 +0000 Subject: [PATCH 4/7] Remove strategy field --- .github/workflows/rolling-semi-binary-downstream-build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/rolling-semi-binary-downstream-build.yml b/.github/workflows/rolling-semi-binary-downstream-build.yml index 059b4f1880..d2c403d358 100644 --- a/.github/workflows/rolling-semi-binary-downstream-build.yml +++ b/.github/workflows/rolling-semi-binary-downstream-build.yml @@ -29,10 +29,9 @@ jobs: fail-fast: false matrix: ROS_DISTRO: [rolling] - ROS_REPO: [testing] with: ros_distro: ${{ matrix.ROS_DISTRO }} - ros_repo: ${{ matrix.ROS_REPO }} + ros_repo: testing ref_for_scheduled_build: master not_test_build: true upstream_workspace: ros2_controllers.${{ matrix.ROS_DISTRO }}.repos From 0a67b715e3e70a0a3c966d0bfa9cff540fdd7409 Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Wed, 11 Dec 2024 11:19:20 +0000 Subject: [PATCH 5/7] Test target workspace --- .github/workflows/rolling-semi-binary-downstream-build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/rolling-semi-binary-downstream-build.yml b/.github/workflows/rolling-semi-binary-downstream-build.yml index d2c403d358..ce18651a8c 100644 --- a/.github/workflows/rolling-semi-binary-downstream-build.yml +++ b/.github/workflows/rolling-semi-binary-downstream-build.yml @@ -33,7 +33,6 @@ jobs: ros_distro: ${{ matrix.ROS_DISTRO }} ros_repo: testing ref_for_scheduled_build: master - not_test_build: true upstream_workspace: ros2_controllers.${{ matrix.ROS_DISTRO }}.repos target_workspace: ros_controls.${{ matrix.ROS_DISTRO }}.repos not_test_downstream: true From fac83b3302fb41bcc51fa7b7349c50bc5149c2e7 Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Wed, 11 Dec 2024 12:08:42 +0000 Subject: [PATCH 6/7] Add 3d party packages to build but not test --- .../humble-semi-binary-downstream-build.yml | 21 +++++++++++++++-- .../jazzy-semi-binary-downstream-build.yml | 19 ++++++++++++++- .../rolling-semi-binary-downstream-build.yml | 23 ++++++++++++++++++- downstream.humble.repos | 5 ++++ downstream.jazzy.repos | 5 ++++ downstream.rolling.repos | 5 ++++ 6 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 downstream.humble.repos create mode 100644 downstream.jazzy.repos create mode 100644 downstream.rolling.repos diff --git a/.github/workflows/humble-semi-binary-downstream-build.yml b/.github/workflows/humble-semi-binary-downstream-build.yml index c04acfb31e..9dd4a717cf 100644 --- a/.github/workflows/humble-semi-binary-downstream-build.yml +++ b/.github/workflows/humble-semi-binary-downstream-build.yml @@ -28,7 +28,24 @@ jobs: with: ros_distro: humble ros_repo: testing - ref_for_scheduled_build: master + ref_for_scheduled_build: humble upstream_workspace: ros2_controllers.humble.repos - target_workspace: ros_controls.humble.repos + # we don't test this repository, we just build it + not_test_build: true + # we test the downstream packages, which are part of our organization + downstream_workspace: ros_controls.humble.repos + not_test_downstream: false + build-downstream-3rd-party: + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-industrial-ci-with-cache.yml@master + with: + ros_distro: humble + ros_repo: testing + ref_for_scheduled_build: humble + upstream_workspace: ros2_controllers.humble.repos + # we don't test this repository, we just build it + not_test_build: true + # we don't test the downstream packages, which are outside of our organization + downstream_workspace: | + ros_controls.humble.repos + downstream.humble.repos not_test_downstream: true diff --git a/.github/workflows/jazzy-semi-binary-downstream-build.yml b/.github/workflows/jazzy-semi-binary-downstream-build.yml index 4313ae92d8..9c17ee7422 100644 --- a/.github/workflows/jazzy-semi-binary-downstream-build.yml +++ b/.github/workflows/jazzy-semi-binary-downstream-build.yml @@ -30,5 +30,22 @@ jobs: ros_repo: testing ref_for_scheduled_build: master upstream_workspace: ros2_controllers.jazzy.repos - target_workspace: ros_controls.jazzy.repos + # we don't test this repository, we just build it + not_test_build: true + # we test the downstream packages, which are part of our organization + downstream_workspace: ros_controls.jazzy.repos + not_test_downstream: false + build-downstream-3rd-party: + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-industrial-ci-with-cache.yml@master + with: + ros_distro: jazzy + ros_repo: testing + ref_for_scheduled_build: master + upstream_workspace: ros2_controllers.jazzy.repos + # we don't test this repository, we just build it + not_test_build: true + # we don't test the downstream packages, which are outside of our organization + downstream_workspace: | + ros_controls.jazzy.repos + downstream.jazzy.repos not_test_downstream: true diff --git a/.github/workflows/rolling-semi-binary-downstream-build.yml b/.github/workflows/rolling-semi-binary-downstream-build.yml index ce18651a8c..b726a74931 100644 --- a/.github/workflows/rolling-semi-binary-downstream-build.yml +++ b/.github/workflows/rolling-semi-binary-downstream-build.yml @@ -34,5 +34,26 @@ jobs: ros_repo: testing ref_for_scheduled_build: master upstream_workspace: ros2_controllers.${{ matrix.ROS_DISTRO }}.repos - target_workspace: ros_controls.${{ matrix.ROS_DISTRO }}.repos + # we don't test this repository, we just build it + not_test_build: true + # we test the downstream packages, which are part of our organization + downstream_workspace: ros_controls.${{ matrix.ROS_DISTRO }}.repos + not_test_downstream: false + build-downstream-3rd-party: + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-industrial-ci-with-cache.yml@master + strategy: + fail-fast: false + matrix: + ROS_DISTRO: [rolling] + with: + ros_distro: ${{ matrix.ROS_DISTRO }} + ros_repo: testing + ref_for_scheduled_build: master + upstream_workspace: ros2_controllers.${{ matrix.ROS_DISTRO }}.repos + # we don't test this repository, we just build it + not_test_build: true + # we don't test the downstream packages, which are outside of our organization + downstream_workspace: | + ros_controls.${{ matrix.ROS_DISTRO }}.repos + downstream.${{ matrix.ROS_DISTRO }}.repos not_test_downstream: true diff --git a/downstream.humble.repos b/downstream.humble.repos new file mode 100644 index 0000000000..81feb3723b --- /dev/null +++ b/downstream.humble.repos @@ -0,0 +1,5 @@ +repositories: + UniversalRobots/Universal_Robots_ROS2_Driver: + type: git + url: https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git + version: humble diff --git a/downstream.jazzy.repos b/downstream.jazzy.repos new file mode 100644 index 0000000000..e5a26574b7 --- /dev/null +++ b/downstream.jazzy.repos @@ -0,0 +1,5 @@ +repositories: + UniversalRobots/Universal_Robots_ROS2_Driver: + type: git + url: https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git + version: main diff --git a/downstream.rolling.repos b/downstream.rolling.repos new file mode 100644 index 0000000000..e5a26574b7 --- /dev/null +++ b/downstream.rolling.repos @@ -0,0 +1,5 @@ +repositories: + UniversalRobots/Universal_Robots_ROS2_Driver: + type: git + url: https://github.com/UniversalRobots/Universal_Robots_ROS2_Driver.git + version: main From e2b66e754665d79c02845bd92ba5f1b84d639a6d Mon Sep 17 00:00:00 2001 From: Christoph Froehlich Date: Wed, 11 Dec 2024 13:36:01 +0000 Subject: [PATCH 7/7] Don't build ros_controls packages again --- .github/workflows/humble-semi-binary-downstream-build.yml | 4 +--- .github/workflows/jazzy-semi-binary-downstream-build.yml | 4 +--- .github/workflows/rolling-semi-binary-downstream-build.yml | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/.github/workflows/humble-semi-binary-downstream-build.yml b/.github/workflows/humble-semi-binary-downstream-build.yml index 9dd4a717cf..fc185032e1 100644 --- a/.github/workflows/humble-semi-binary-downstream-build.yml +++ b/.github/workflows/humble-semi-binary-downstream-build.yml @@ -45,7 +45,5 @@ jobs: # we don't test this repository, we just build it not_test_build: true # we don't test the downstream packages, which are outside of our organization - downstream_workspace: | - ros_controls.humble.repos - downstream.humble.repos + downstream_workspace: downstream.humble.repos not_test_downstream: true diff --git a/.github/workflows/jazzy-semi-binary-downstream-build.yml b/.github/workflows/jazzy-semi-binary-downstream-build.yml index 9c17ee7422..91ec818e91 100644 --- a/.github/workflows/jazzy-semi-binary-downstream-build.yml +++ b/.github/workflows/jazzy-semi-binary-downstream-build.yml @@ -45,7 +45,5 @@ jobs: # we don't test this repository, we just build it not_test_build: true # we don't test the downstream packages, which are outside of our organization - downstream_workspace: | - ros_controls.jazzy.repos - downstream.jazzy.repos + downstream_workspace: downstream.jazzy.repos not_test_downstream: true diff --git a/.github/workflows/rolling-semi-binary-downstream-build.yml b/.github/workflows/rolling-semi-binary-downstream-build.yml index b726a74931..0cf978e528 100644 --- a/.github/workflows/rolling-semi-binary-downstream-build.yml +++ b/.github/workflows/rolling-semi-binary-downstream-build.yml @@ -53,7 +53,5 @@ jobs: # we don't test this repository, we just build it not_test_build: true # we don't test the downstream packages, which are outside of our organization - downstream_workspace: | - ros_controls.${{ matrix.ROS_DISTRO }}.repos - downstream.${{ matrix.ROS_DISTRO }}.repos + downstream_workspace: downstream.${{ matrix.ROS_DISTRO }}.repos not_test_downstream: true