From 4412f89ac3566597ff6c18b0886f5b8415f173e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoph=20Fr=C3=B6hlich?= Date: Thu, 15 Feb 2024 11:35:15 +0100 Subject: [PATCH] Use reusable wfs from ros2_control_ci and use matrix strategy (#1040) (cherry picked from commit cb6884a64a6d1f5e22afd48bb9fe0d8bafc8fece) # Conflicts: # .github/workflows/humble-binary-build.yml # .github/workflows/humble-debian-build.yml # .github/workflows/humble-rhel-semi-binary-build.yml # .github/workflows/humble-semi-binary-build.yml # .github/workflows/humble-source-build.yml # .github/workflows/iron-binary-build-testing.yml # .github/workflows/iron-debian-build.yml # .github/workflows/iron-rhel-semi-binary-build.yml # .github/workflows/iron-semi-binary-build-testing.yml # .github/workflows/reusable-industrial-ci-with-cache.yml # .github/workflows/rolling-binary-build-testing.yml # .github/workflows/rolling-debian-build.yml # .github/workflows/rolling-rhel-semi-binary-build.yml # .github/workflows/rolling-semi-binary-build-testing.yml --- .github/workflows/humble-binary-build.yml | 27 ++++++++ .github/workflows/humble-debian-build.yml | 20 ++++++ .../humble-rhel-semi-binary-build.yml | 19 +++++ .../workflows/humble-semi-binary-build.yml | 26 +++++++ .github/workflows/humble-source-build.yml | 17 +++++ ...y-build-main.yml => iron-binary-build.yml} | 9 ++- .github/workflows/iron-debian-build.yml | 20 ++++++ ...ld.yml => iron-rhel-semi-binary-build.yml} | 9 +++ ...ld-main.yml => iron-semi-binary-build.yml} | 9 ++- .github/workflows/iron-source-build.yml | 2 +- .../reusable-ros-tooling-source-build.yml | 69 ------------------- ...uild-main.yml => rolling-binary-build.yml} | 9 ++- .github/workflows/rolling-debian-build.yml | 20 ++++++ .../workflows/rolling-rhel-binary-build.yml | 28 -------- .../rolling-rhel-semi-binary-build.yml | 42 +++++++++++ ...main.yml => rolling-semi-binary-build.yml} | 9 ++- .github/workflows/rolling-source-build.yml | 4 +- 17 files changed, 226 insertions(+), 113 deletions(-) create mode 100644 .github/workflows/humble-binary-build.yml create mode 100644 .github/workflows/humble-debian-build.yml create mode 100644 .github/workflows/humble-rhel-semi-binary-build.yml create mode 100644 .github/workflows/humble-semi-binary-build.yml create mode 100644 .github/workflows/humble-source-build.yml rename .github/workflows/{iron-binary-build-main.yml => iron-binary-build.yml} (72%) create mode 100644 .github/workflows/iron-debian-build.yml rename .github/workflows/{iron-rhel-binary-build.yml => iron-rhel-semi-binary-build.yml} (58%) rename .github/workflows/{iron-semi-binary-build-main.yml => iron-semi-binary-build.yml} (70%) delete mode 100644 .github/workflows/reusable-ros-tooling-source-build.yml rename .github/workflows/{rolling-binary-build-main.yml => rolling-binary-build.yml} (72%) create mode 100644 .github/workflows/rolling-debian-build.yml delete mode 100644 .github/workflows/rolling-rhel-binary-build.yml create mode 100644 .github/workflows/rolling-rhel-semi-binary-build.yml rename .github/workflows/{rolling-semi-binary-build-main.yml => rolling-semi-binary-build.yml} (70%) diff --git a/.github/workflows/humble-binary-build.yml b/.github/workflows/humble-binary-build.yml new file mode 100644 index 0000000000..989805733f --- /dev/null +++ b/.github/workflows/humble-binary-build.yml @@ -0,0 +1,27 @@ +name: Humble Binary Build +# author: Denis Štogl +# description: 'Build & test all dependencies from released (binary) packages.' + +on: + workflow_dispatch: + pull_request: + branches: + - humble + push: + branches: + - humble + schedule: + # Run every morning to detect flakiness and broken dependencies + - cron: '03 1 * * *' + +jobs: + binary: + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-industrial-ci-with-cache.yml@master + strategy: + matrix: + ROS_REPO: [main, testing] + with: + ros_distro: humble + ros_repo: ${{ matrix.ROS_REPO }} + upstream_workspace: ros2_controllers-not-released.humble.repos + ref_for_scheduled_build: humble diff --git a/.github/workflows/humble-debian-build.yml b/.github/workflows/humble-debian-build.yml new file mode 100644 index 0000000000..db0a8456f8 --- /dev/null +++ b/.github/workflows/humble-debian-build.yml @@ -0,0 +1,20 @@ +name: Debian Humble Source Build +on: + workflow_dispatch: + pull_request: + branches: + - humble + schedule: + # Run every day to detect flakiness and broken dependencies + - cron: '03 1 * * *' + + +jobs: + humble_debian: + name: Humble debian build + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-debian-build.yml@master + with: + ros_distro: humble + upstream_workspace: ros2_controllers.humble.repos + ref_for_scheduled_build: humble + skip_packages: rqt_joint_trajectory_controller diff --git a/.github/workflows/humble-rhel-semi-binary-build.yml b/.github/workflows/humble-rhel-semi-binary-build.yml new file mode 100644 index 0000000000..ccf64a0246 --- /dev/null +++ b/.github/workflows/humble-rhel-semi-binary-build.yml @@ -0,0 +1,19 @@ +name: RHEL Humble Binary Build +on: + workflow_dispatch: + pull_request: + branches: + - humble + schedule: + # Run every day to detect flakiness and broken dependencies + - cron: '03 1 * * *' + +jobs: + humble_rhel_binary: + name: Humble RHEL binary build + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-rhel-binary-build.yml@master + with: + ros_distro: humble + upstream_workspace: ros2_controllers.humble.repos + ref_for_scheduled_build: humble + skip_packages: rqt_joint_trajectory_controller diff --git a/.github/workflows/humble-semi-binary-build.yml b/.github/workflows/humble-semi-binary-build.yml new file mode 100644 index 0000000000..1d9d3bd1fb --- /dev/null +++ b/.github/workflows/humble-semi-binary-build.yml @@ -0,0 +1,26 @@ +name: Humble Semi-Binary Build +# description: 'Build & test that compiles the main dependencies from source.' + +on: + workflow_dispatch: + pull_request: + branches: + - humble + push: + branches: + - humble + schedule: + # Run every morning to detect flakiness and broken dependencies + - cron: '33 1 * * *' + +jobs: + semi_binary: + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-industrial-ci-with-cache.yml@master + strategy: + matrix: + ROS_REPO: [main, testing] + with: + ros_distro: humble + ros_repo: ${{ matrix.ROS_REPO }} + upstream_workspace: ros2_controllers.humble.repos + ref_for_scheduled_build: humble diff --git a/.github/workflows/humble-source-build.yml b/.github/workflows/humble-source-build.yml new file mode 100644 index 0000000000..7b4427d6d6 --- /dev/null +++ b/.github/workflows/humble-source-build.yml @@ -0,0 +1,17 @@ +name: Humble Source Build +on: + workflow_dispatch: + push: + branches: + - humble + schedule: + # Run every day to detect flakiness and broken dependencies + - cron: '03 3 * * *' + +jobs: + source: + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-ros-tooling-source-build.yml@master + with: + ros_distro: humble + ref: humble + ros2_repo_branch: humble diff --git a/.github/workflows/iron-binary-build-main.yml b/.github/workflows/iron-binary-build.yml similarity index 72% rename from .github/workflows/iron-binary-build-main.yml rename to .github/workflows/iron-binary-build.yml index ef35397855..079620771c 100644 --- a/.github/workflows/iron-binary-build-main.yml +++ b/.github/workflows/iron-binary-build.yml @@ -1,4 +1,4 @@ -name: Iron Binary Build - main +name: Iron Binary Build # author: Denis Štogl # description: 'Build & test all dependencies from released (binary) packages.' @@ -22,9 +22,12 @@ on: jobs: binary: - uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-industrial-ci-with-cache.yml@master + strategy: + matrix: + ROS_REPO: [main, testing] with: ros_distro: iron - ros_repo: main + ros_repo: ${{ matrix.ROS_REPO }} upstream_workspace: ros2_controllers-not-released.iron.repos ref_for_scheduled_build: iron diff --git a/.github/workflows/iron-debian-build.yml b/.github/workflows/iron-debian-build.yml new file mode 100644 index 0000000000..e56e8940ad --- /dev/null +++ b/.github/workflows/iron-debian-build.yml @@ -0,0 +1,20 @@ +name: Debian Iron Source Build +on: + workflow_dispatch: + pull_request: + branches: + - iron + schedule: + # Run every day to detect flakiness and broken dependencies + - cron: '03 1 * * *' + + +jobs: + iron_debian: + name: Iron debian build + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-debian-build.yml@master + with: + ros_distro: iron + upstream_workspace: ros2_controllers.iron.repos + ref_for_scheduled_build: iron + skip_packages: rqt_joint_trajectory_controller diff --git a/.github/workflows/iron-rhel-binary-build.yml b/.github/workflows/iron-rhel-semi-binary-build.yml similarity index 58% rename from .github/workflows/iron-rhel-binary-build.yml rename to .github/workflows/iron-rhel-semi-binary-build.yml index 5664d61768..89c37ac869 100644 --- a/.github/workflows/iron-rhel-binary-build.yml +++ b/.github/workflows/iron-rhel-semi-binary-build.yml @@ -12,6 +12,7 @@ on: jobs: iron_rhel_binary: name: Iron RHEL binary build +<<<<<<< HEAD:.github/workflows/iron-rhel-binary-build.yml runs-on: ubuntu-latest env: ROS_DISTRO: iron @@ -26,3 +27,11 @@ jobs: source /opt/ros/${{ env.ROS_DISTRO }}/setup.bash colcon build colcon test +======= + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-rhel-binary-build.yml@master + with: + ros_distro: iron + upstream_workspace: ros2_controllers.iron.repos + ref_for_scheduled_build: iron + skip_packages: rqt_joint_trajectory_controller +>>>>>>> cb6884a (Use reusable wfs from ros2_control_ci and use matrix strategy (#1040)):.github/workflows/iron-rhel-semi-binary-build.yml diff --git a/.github/workflows/iron-semi-binary-build-main.yml b/.github/workflows/iron-semi-binary-build.yml similarity index 70% rename from .github/workflows/iron-semi-binary-build-main.yml rename to .github/workflows/iron-semi-binary-build.yml index 2224a59f0e..064be40555 100644 --- a/.github/workflows/iron-semi-binary-build-main.yml +++ b/.github/workflows/iron-semi-binary-build.yml @@ -1,4 +1,4 @@ -name: Iron Semi-Binary Build - main +name: Iron Semi-Binary Build # description: 'Build & test that compiles the main dependencies from source.' on: @@ -21,9 +21,12 @@ on: jobs: semi_binary: - uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-industrial-ci-with-cache.yml@master + strategy: + matrix: + ROS_REPO: [main, testing] with: ros_distro: iron - ros_repo: main + ros_repo: ${{ matrix.ROS_REPO }} upstream_workspace: ros2_controllers.iron.repos ref_for_scheduled_build: iron diff --git a/.github/workflows/iron-source-build.yml b/.github/workflows/iron-source-build.yml index 1e9d865c49..b27adb1d50 100644 --- a/.github/workflows/iron-source-build.yml +++ b/.github/workflows/iron-source-build.yml @@ -12,7 +12,7 @@ on: jobs: source: - uses: ./.github/workflows/reusable-ros-tooling-source-build.yml + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-ros-tooling-source-build.yml@master with: ros_distro: iron ref: iron diff --git a/.github/workflows/reusable-ros-tooling-source-build.yml b/.github/workflows/reusable-ros-tooling-source-build.yml deleted file mode 100644 index 3d5bc1cf35..0000000000 --- a/.github/workflows/reusable-ros-tooling-source-build.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: Reusable industrial_ci Workflow with Cache -# Reusable action to simplify dealing with ROS/ROS2 industrial_ci builds with cache -# author: Denis Štogl - -on: - workflow_call: - inputs: - ros_distro: - description: 'ROS2 distribution name' - required: true - type: string - ref: - description: 'Reference on which the repo should be checkout. Usually is this name of a branch or a tag.' - required: true - type: string - ros2_repo_branch: - description: 'Branch in the ros2/ros2 repozitory from which ".repos" should be used. Possible values: master (Rolling), humble.' - default: 'master' - required: false - type: string - -jobs: - reusable_ros_tooling_source_build: - name: ${{ inputs.ros_distro }} ubuntu-22.04 - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - steps: - - uses: ros-tooling/setup-ros@0.7.1 - with: - required-ros-distributions: ${{ inputs.ros_distro }} - - uses: actions/checkout@v4 - with: - ref: ${{ inputs.ref }} - - uses: ros-tooling/action-ros-ci@0.3.6 - with: - target-ros2-distro: ${{ inputs.ros_distro }} - ref: ${{ inputs.ref }} - # build all packages listed in the meta package - package-name: - ackermann_steering_controller - admittance_controller - bicycle_steering_controller - diff_drive_controller - effort_controllers - force_torque_sensor_broadcaster - forward_command_controller - gripper_controllers - imu_sensor_broadcaster - joint_state_broadcaster - joint_trajectory_controller - position_controllers - range_sensor_broadcaster - ros2_controllers - ros2_controllers_test_nodes - rqt_joint_trajectory_controller - steering_controllers_library - tricycle_controller - tricycle_steering_controller - velocity_controllers - - vcs-repo-file-url: | - https://raw.githubusercontent.com/ros2/ros2/${{ inputs.ros2_repo_branch }}/ros2.repos - https://raw.githubusercontent.com/${{ github.repository }}/${{ github.sha }}/ros2_controllers.${{ inputs.ros_distro }}.repos?token=${{ secrets.GITHUB_TOKEN }} - colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml - - uses: actions/upload-artifact@v4.3.1 - with: - name: colcon-logs-ubuntu-22.04 - path: ros_ws/log diff --git a/.github/workflows/rolling-binary-build-main.yml b/.github/workflows/rolling-binary-build.yml similarity index 72% rename from .github/workflows/rolling-binary-build-main.yml rename to .github/workflows/rolling-binary-build.yml index 793db5d7e5..7b5a3bda65 100644 --- a/.github/workflows/rolling-binary-build-main.yml +++ b/.github/workflows/rolling-binary-build.yml @@ -1,4 +1,4 @@ -name: Rolling Binary Build - main +name: Rolling Binary Build # author: Denis Štogl # description: 'Build & test all dependencies from released (binary) packages.' @@ -22,9 +22,12 @@ on: jobs: binary: - uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-industrial-ci-with-cache.yml@master + strategy: + matrix: + ROS_REPO: [main, testing] with: ros_distro: rolling - ros_repo: main + ros_repo: ${{ matrix.ROS_REPO }} upstream_workspace: ros2_controllers-not-released.rolling.repos ref_for_scheduled_build: master diff --git a/.github/workflows/rolling-debian-build.yml b/.github/workflows/rolling-debian-build.yml new file mode 100644 index 0000000000..cecd67603f --- /dev/null +++ b/.github/workflows/rolling-debian-build.yml @@ -0,0 +1,20 @@ +name: Debian Rolling Source Build +on: + workflow_dispatch: + pull_request: + branches: + - master + schedule: + # Run every day to detect flakiness and broken dependencies + - cron: '03 1 * * *' + + +jobs: + rolling_debian: + name: Rolling debian build + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-debian-build.yml@master + with: + ros_distro: rolling + upstream_workspace: ros2_controllers.rolling.repos + ref_for_scheduled_build: master + skip_packages: rqt_joint_trajectory_controller diff --git a/.github/workflows/rolling-rhel-binary-build.yml b/.github/workflows/rolling-rhel-binary-build.yml deleted file mode 100644 index 04dc58775f..0000000000 --- a/.github/workflows/rolling-rhel-binary-build.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Rolling RHEL Binary Build -on: - workflow_dispatch: - push: - branches: - - master - schedule: - # Run every day to detect flakiness and broken dependencies - - cron: '03 1 * * *' - - -jobs: - rolling_rhel_binary: - name: Rolling RHEL binary build - runs-on: ubuntu-latest - env: - ROS_DISTRO: rolling - container: ghcr.io/ros-controls/ros:rolling-rhel - steps: - - uses: actions/checkout@v4 - with: - path: src/ros2_controllers - - run: | - rosdep update - rosdep install -iy --from-path src/ros2_controllers - source /opt/ros/${{ env.ROS_DISTRO }}/setup.bash - colcon build - colcon test diff --git a/.github/workflows/rolling-rhel-semi-binary-build.yml b/.github/workflows/rolling-rhel-semi-binary-build.yml new file mode 100644 index 0000000000..d2db6db4e5 --- /dev/null +++ b/.github/workflows/rolling-rhel-semi-binary-build.yml @@ -0,0 +1,42 @@ +<<<<<<< HEAD:.github/workflows/rolling-rhel-binary-build.yml +name: Rolling RHEL Binary Build +======= +name: RHEL Rolling Semi-Binary Build +>>>>>>> cb6884a (Use reusable wfs from ros2_control_ci and use matrix strategy (#1040)):.github/workflows/rolling-rhel-semi-binary-build.yml +on: + workflow_dispatch: + push: + branches: + - master + schedule: + # Run every day to detect flakiness and broken dependencies + - cron: '03 1 * * *' + + +jobs: +<<<<<<< HEAD:.github/workflows/rolling-rhel-binary-build.yml + rolling_rhel_binary: + name: Rolling RHEL binary build + runs-on: ubuntu-latest + env: + ROS_DISTRO: rolling + container: ghcr.io/ros-controls/ros:rolling-rhel + steps: + - uses: actions/checkout@v4 + with: + path: src/ros2_controllers + - run: | + rosdep update + rosdep install -iy --from-path src/ros2_controllers + source /opt/ros/${{ env.ROS_DISTRO }}/setup.bash + colcon build + colcon test +======= + rolling_rhel: + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-rhel-binary-build.yml@master + with: + ros_distro: rolling + upstream_workspace: ros2_controllers.rolling.repos + ref_for_scheduled_build: master + skip_packages: rqt_joint_trajectory_controller +>>>>>>> cb6884a (Use reusable wfs from ros2_control_ci and use matrix strategy (#1040)):.github/workflows/rolling-rhel-semi-binary-build.yml diff --git a/.github/workflows/rolling-semi-binary-build-main.yml b/.github/workflows/rolling-semi-binary-build.yml similarity index 70% rename from .github/workflows/rolling-semi-binary-build-main.yml rename to .github/workflows/rolling-semi-binary-build.yml index 8b395e5163..a20c4d4fd3 100644 --- a/.github/workflows/rolling-semi-binary-build-main.yml +++ b/.github/workflows/rolling-semi-binary-build.yml @@ -1,4 +1,4 @@ -name: Rolling Semi-Binary Build - main +name: Rolling Semi-Binary Build # description: 'Build & test that compiles the main dependencies from source.' on: @@ -21,9 +21,12 @@ on: jobs: semi_binary: - uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-industrial-ci-with-cache.yml@master + strategy: + matrix: + ROS_REPO: [main, testing] with: ros_distro: rolling - ros_repo: main + ros_repo: ${{ matrix.ROS_REPO }} upstream_workspace: ros2_controllers.rolling.repos ref_for_scheduled_build: master diff --git a/.github/workflows/rolling-source-build.yml b/.github/workflows/rolling-source-build.yml index 40abcd1b0c..567b2c8ec6 100644 --- a/.github/workflows/rolling-source-build.yml +++ b/.github/workflows/rolling-source-build.yml @@ -1,8 +1,6 @@ name: Rolling Source Build on: workflow_dispatch: - branches: - - master push: branches: - master @@ -12,7 +10,7 @@ on: jobs: source: - uses: ./.github/workflows/reusable-ros-tooling-source-build.yml + uses: ros-controls/ros2_control_ci/.github/workflows/reusable-ros-tooling-source-build.yml@master with: ros_distro: rolling ref: master