From dabe19edf952c87f7ffa97ce49ed4bcd1e277cec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denis=20=C5=A0togl?= Date: Thu, 30 Jun 2022 19:50:08 +0200 Subject: [PATCH] Update and fix CI setup (#752) * Add names to ABI compatibility workflows. * Don't use source build on the old distros. * Disable rhel build on PRs since it will failanyway. * We need common linters in packages that generate messages since those auto automatically used. * remove disabling of tests. --- .github/workflows/README.md | 7 ++++ .github/workflows/ci-coverage-build.yml | 17 ++++++---- .github/workflows/ci-ros-lint.yml | 14 ++++---- .github/workflows/foxy-abi-compatibility.yml | 5 ++- ...y-build.yml => foxy-binary-build-main.yml} | 6 +++- ...ld.yml => foxy-semi-binary-build-main.yml} | 6 +++- .github/workflows/foxy-source-build.yml | 15 --------- .../workflows/galactic-abi-compatibility.yml | 5 ++- ...ild.yml => galactic-binary-build-main.yml} | 6 +++- .../workflows/galactic-rhel-binary-build.yml | 33 +++++++++++++++++++ ...ml => galactic-semi-binary-build-main.yml} | 5 +-- ...focal.yml => humble-abi-compatibility.yml} | 11 +++---- .../workflows/humble-binary-build-main.yml | 26 +++++++++++++++ .../workflows/humble-binary-build-testing.yml | 26 +++++++++++++++ .../workflows/humble-rhel-binary-build.yml | 33 +++++++++++++++++++ .../humble-semi-binary-build-main.yml | 25 ++++++++++++++ .../humble-semi-binary-build-testing.yml | 25 ++++++++++++++ ...urce-build.yml => humble-source-build.yml} | 12 ++++--- .../reusable-industrial-ci-with-cache.yml | 30 ++++++----------- .../reusable-ros-tooling-source-build.yml | 17 ++++++---- .../workflows/rolling-abi-compatibility.yml | 4 ++- ...uild.yml => rolling-binary-build-main.yml} | 6 +++- ...l.yml => rolling-binary-build-testing.yml} | 11 +++---- .../workflows/rolling-rhel-binary-build.yml | 3 ++ ...yml => rolling-semi-binary-build-main.yml} | 6 +++- ... => rolling-semi-binary-build-testing.yml} | 11 +++---- .github/workflows/rolling-source-build.yml | 4 +++ README.md | 10 +++--- controller_manager_msgs/package.xml | 2 ++ ros2_control-not-released.humble.repos | 1 + ros2_control.humble.repos | 9 +++++ 31 files changed, 301 insertions(+), 90 deletions(-) create mode 100644 .github/workflows/README.md rename .github/workflows/{foxy-binary-build.yml => foxy-binary-build-main.yml} (84%) rename .github/workflows/{foxy-semi-binary-build.yml => foxy-semi-binary-build-main.yml} (81%) delete mode 100644 .github/workflows/foxy-source-build.yml rename .github/workflows/{galactic-binary-build.yml => galactic-binary-build-main.yml} (83%) create mode 100644 .github/workflows/galactic-rhel-binary-build.yml rename .github/workflows/{galactic-semi-binary-build.yml => galactic-semi-binary-build-main.yml} (85%) rename .github/workflows/{rolling-abi-compatibility-last-focal.yml => humble-abi-compatibility.yml} (53%) create mode 100644 .github/workflows/humble-binary-build-main.yml create mode 100644 .github/workflows/humble-binary-build-testing.yml create mode 100644 .github/workflows/humble-rhel-binary-build.yml create mode 100644 .github/workflows/humble-semi-binary-build-main.yml create mode 100644 .github/workflows/humble-semi-binary-build-testing.yml rename .github/workflows/{galactic-source-build.yml => humble-source-build.yml} (57%) rename .github/workflows/{rolling-binary-build.yml => rolling-binary-build-main.yml} (83%) rename .github/workflows/{rolling-binary-build-last-focal.yml => rolling-binary-build-testing.yml} (66%) rename .github/workflows/{rolling-semi-binary-build.yml => rolling-semi-binary-build-main.yml} (81%) rename .github/workflows/{rolling-semi-binary-build-last-focal.yml => rolling-semi-binary-build-testing.yml} (63%) create mode 100644 ros2_control-not-released.humble.repos create mode 100644 ros2_control.humble.repos diff --git a/.github/workflows/README.md b/.github/workflows/README.md new file mode 100644 index 0000000000..fd751faeef --- /dev/null +++ b/.github/workflows/README.md @@ -0,0 +1,7 @@ + +ROS2 Distro | Branch | Build status | Documentation | Released packages +:---------: | :----: | :----------: | :-----------: | :---------------: +**Rolling** | [`rolling`](https://github.com/ros-controls/ros2_control/tree/rolling) | [![Rolling Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build-main.yml?branch=master)
[![Rolling Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build-testing.yml?branch=master)
[![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build-main.yml?branch=master)
[![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build-testing.yml?branch=master)
[![Rolling Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-source-build.yml?branch=master) | [Documentation](https://control.ros.org/master/index.html)
[API Reference](https://control.ros.org/master/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#rolling) +**Humble** | [`humble`](https://github.com/ros-controls/ros2_control/tree/humble) | [![Humble Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build-main.yml?branch=master)
[![Humble Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build-testing.yml?branch=master)
[![Humble Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build-main.yml?branch=master)
[![Humble Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build-testing.yml?branch=master)
[![Humble Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-source-build.yml?branch=master) | [Documentation](https://control.ros.org/master/index.html)
[API Reference](https://control.ros.org/master/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#humble) +**Galactic** | [`galactic`](https://github.com/ros-controls/ros2_control/tree/galactic) | [![Galactic Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-binary-build-main.yml/badge.svg?branch=galactic)](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-binary-build-main.yml?branch=galactic)
[![Galactic Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-binary-build-testing.yml/badge.svg?branch=galactic)](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-binary-build-testing.yml?branch=galactic)
[![Galactic Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-semi-binary-build-main.yml/badge.svg?branch=galactic)](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-semi-binary-build-main.yml?branch=galactic)
[![Galactic Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-semi-binary-build-testing.yml/badge.svg?branch=galactic)](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-semi-binary-build-testing.yml?branch=galactic) | [Documentation](https://control.ros.org/galactic/index.html)
[API Reference](https://control.ros.org/galactic/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#galactic) +**Foxy** | [`foxy`](https://github.com/ros-controls/ros2_control/tree/foxy) | [![Foxy Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-binary-build-main.yml/badge.svg?branch=foxy)](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-binary-build-main.yml?branch=foxy)
[![Foxy Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-binary-build-testing.yml/badge.svg?branch=foxy)](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-binary-build-testing.yml?branch=foxy)
[![Foxy Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-semi-binary-build-main.yml/badge.svg?branch=foxy)](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-semi-binary-build-main.yml?branch=foxy)
[![Foxy Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-semi-binary-build-testing.yml/badge.svg?branch=foxy)](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-semi-binary-build-testing.yml?branch=foxy) | [Documentation](https://control.ros.org/foxy/index.html)
[API Reference](https://control.ros.org/foxy/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#foxy) diff --git a/.github/workflows/ci-coverage-build.yml b/.github/workflows/ci-coverage-build.yml index 6fa6724f64..a2d02ed8a0 100644 --- a/.github/workflows/ci-coverage-build.yml +++ b/.github/workflows/ci-coverage-build.yml @@ -1,5 +1,8 @@ name: Coverage Build on: + workflow_dispatch: + branches: + - master pull_request: branches: - master @@ -7,17 +10,17 @@ on: jobs: coverage: name: coverage build - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 strategy: fail-fast: false env: ROS_DISTRO: rolling steps: - - uses: ros-tooling/setup-ros@v0.2 + - uses: ros-tooling/setup-ros@0.3.4 with: required-ros-distributions: ${{ env.ROS_DISTRO }} - uses: actions/checkout@v3 - - uses: ros-tooling/action-ros-ci@v0.2 + - uses: ros-tooling/action-ros-ci@0.2.6 with: target-ros2-distro: ${{ env.ROS_DISTRO }} import-token: ${{ secrets.GITHUB_TOKEN }} @@ -31,6 +34,7 @@ jobs: ros2_control ros2_control_test_assets transmission_interface + vcs-repo-file-url: | https://raw.githubusercontent.com/${{ github.repository }}/${{ github.sha }}/ros2_control-not-released.${{ env.ROS_DISTRO }}.repos?token=${{ secrets.GITHUB_TOKEN }} colcon-defaults: | @@ -40,13 +44,12 @@ jobs: } } colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml - skip-tests: true - - uses: codecov/codecov-action@v1.0.14 + - uses: codecov/codecov-action@v3.1.0 with: file: ros_ws/lcov/total_coverage.info flags: unittests name: codecov-umbrella - - uses: actions/upload-artifact@v1 + - uses: actions/upload-artifact@v3.1.0 with: - name: colcon-logs-${{ matrix.os }} + name: colcon-logs-ubuntu-22.04-coverage-rolling path: ros_ws/log diff --git a/.github/workflows/ci-ros-lint.yml b/.github/workflows/ci-ros-lint.yml index 55e1dad0c9..009c394bfe 100644 --- a/.github/workflows/ci-ros-lint.yml +++ b/.github/workflows/ci-ros-lint.yml @@ -9,13 +9,13 @@ jobs: strategy: fail-fast: false matrix: - linter: [copyright, cppcheck, lint_cmake] + linter: [cppcheck, copyright, lint_cmake] steps: - uses: actions/checkout@v3 - uses: ros-tooling/setup-ros@v0.2 - uses: ros-tooling/action-ros-lint@v0.1 with: - distribution: galactic + distribution: rolling linter: ${{ matrix.linter }} package-name: controller_interface @@ -27,19 +27,21 @@ jobs: ros2_control_test_assets transmission_interface - ament_lint_cpplint: - name: ament_lint_cpplint + ament_lint_100: + name: ament_${{ matrix.linter }} runs-on: ubuntu-20.04 strategy: fail-fast: false + matrix: + linter: [cpplint] steps: - uses: actions/checkout@v3 - uses: ros-tooling/setup-ros@v0.2 - uses: ros-tooling/action-ros-lint@v0.1 with: - distribution: galactic + distribution: rolling linter: cpplint - arguments: "--filter=-whitespace/newline" + arguments: "--linelength=100 --filter=-whitespace/newline" package-name: controller_interface controller_manager diff --git a/.github/workflows/foxy-abi-compatibility.yml b/.github/workflows/foxy-abi-compatibility.yml index 40b1e1133f..7ce17effd0 100644 --- a/.github/workflows/foxy-abi-compatibility.yml +++ b/.github/workflows/foxy-abi-compatibility.yml @@ -1,5 +1,8 @@ -name: ABI Compatibility Check +name: Foxy - ABI Compatibility Check on: + workflow_dispatch: + branches: + - foxy pull_request: branches: - foxy diff --git a/.github/workflows/foxy-binary-build.yml b/.github/workflows/foxy-binary-build-main.yml similarity index 84% rename from .github/workflows/foxy-binary-build.yml rename to .github/workflows/foxy-binary-build-main.yml index da67426ec5..0d74ce64e4 100644 --- a/.github/workflows/foxy-binary-build.yml +++ b/.github/workflows/foxy-binary-build-main.yml @@ -1,8 +1,11 @@ -name: Foxy Binary Build +name: Foxy Binary Build - main # author: Denis Štogl # description: 'Build & test all dependencies from released (binary) packages.' on: + workflow_dispatch: + branches: + - foxy pull_request: branches: - foxy @@ -18,5 +21,6 @@ jobs: uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml with: ros_distro: foxy + ros_repo: main upstream_workspace: ros2_control-not-released.foxy.repos ref_for_scheduled_build: foxy diff --git a/.github/workflows/foxy-semi-binary-build.yml b/.github/workflows/foxy-semi-binary-build-main.yml similarity index 81% rename from .github/workflows/foxy-semi-binary-build.yml rename to .github/workflows/foxy-semi-binary-build-main.yml index 93f75616d3..68e709cc00 100644 --- a/.github/workflows/foxy-semi-binary-build.yml +++ b/.github/workflows/foxy-semi-binary-build-main.yml @@ -1,7 +1,10 @@ -name: Foxy Semi-Binary Build +name: Foxy Semi-Binary Build - main # description: 'Build & test that compiles the main dependencies from source.' on: + workflow_dispatch: + branches: + - foxy pull_request: branches: - foxy @@ -17,5 +20,6 @@ jobs: uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml with: ros_distro: foxy + ros_repo: main upstream_workspace: ros2_control.foxy.repos ref_for_scheduled_build: foxy diff --git a/.github/workflows/foxy-source-build.yml b/.github/workflows/foxy-source-build.yml deleted file mode 100644 index 94be8d8b57..0000000000 --- a/.github/workflows/foxy-source-build.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Foxy Source Build -on: - push: - branches: - - foxy - schedule: - # Run every day to detect flakiness and broken dependencies - - cron: '03 3 * * *' - -jobs: - source: - uses: ./.github/workflows/reusable-ros-tooling-source-build.yml - with: - ros_distro: foxy - ref: foxy diff --git a/.github/workflows/galactic-abi-compatibility.yml b/.github/workflows/galactic-abi-compatibility.yml index 41c663dd9c..06a48ef9c7 100644 --- a/.github/workflows/galactic-abi-compatibility.yml +++ b/.github/workflows/galactic-abi-compatibility.yml @@ -1,5 +1,8 @@ -name: ABI Compatibility Check +name: Galactic - ABI Compatibility Check on: + workflow_dispatch: + branches: + - galactic pull_request: branches: - galactic diff --git a/.github/workflows/galactic-binary-build.yml b/.github/workflows/galactic-binary-build-main.yml similarity index 83% rename from .github/workflows/galactic-binary-build.yml rename to .github/workflows/galactic-binary-build-main.yml index 97f8a8f231..f50c773444 100644 --- a/.github/workflows/galactic-binary-build.yml +++ b/.github/workflows/galactic-binary-build-main.yml @@ -1,8 +1,11 @@ -name: Galactic Binary Build +name: Galactic Binary Build - main # author: Denis Štogl # description: 'Build & test all dependencies from released (binary) packages.' on: + workflow_dispatch: + branches: + - galactic pull_request: branches: - galactic @@ -18,5 +21,6 @@ jobs: uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml with: ros_distro: galactic + ros_repo: main upstream_workspace: ros2_control-not-released.galactic.repos ref_for_scheduled_build: galactic diff --git a/.github/workflows/galactic-rhel-binary-build.yml b/.github/workflows/galactic-rhel-binary-build.yml new file mode 100644 index 0000000000..cd2d5f0862 --- /dev/null +++ b/.github/workflows/galactic-rhel-binary-build.yml @@ -0,0 +1,33 @@ +name: Galactic RHEL Binary Build +on: + workflow_dispatch: + branches: + - galactic + pull_request: + branches: + - galactic + push: + branches: + - galactic + schedule: + # Run every day to detect flakiness and broken dependencies + - cron: '03 1 * * *' + + +jobs: + galactic_rhel_binary: + name: Galactic RHEL binary build + runs-on: ubuntu-latest + env: + ROS_DISTRO: galactic + container: jaronl/ros:galactic-alma + steps: + - uses: actions/checkout@v3 + with: + path: src/ros2_control + - run: | + rosdep update + rosdep install -iy --from-path src/ros2_control + source /opt/ros/${{ env.ROS_DISTRO }}/setup.bash + colcon build + colcon test diff --git a/.github/workflows/galactic-semi-binary-build.yml b/.github/workflows/galactic-semi-binary-build-main.yml similarity index 85% rename from .github/workflows/galactic-semi-binary-build.yml rename to .github/workflows/galactic-semi-binary-build-main.yml index 9e7073e263..0578366a45 100644 --- a/.github/workflows/galactic-semi-binary-build.yml +++ b/.github/workflows/galactic-semi-binary-build-main.yml @@ -1,8 +1,8 @@ -name: Galactic Semi-Binary Build +name: Galactic Semi-Binary Build - main # description: 'Build & test that compiles the main dependencies from source.' on: - pull_request: + workflow_dispatch: branches: - galactic push: @@ -17,5 +17,6 @@ jobs: uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml with: ros_distro: galactic + ros_repo: main upstream_workspace: ros2_control.galactic.repos ref_for_scheduled_build: galactic diff --git a/.github/workflows/rolling-abi-compatibility-last-focal.yml b/.github/workflows/humble-abi-compatibility.yml similarity index 53% rename from .github/workflows/rolling-abi-compatibility-last-focal.yml rename to .github/workflows/humble-abi-compatibility.yml index 80433e2494..1be00cfc76 100644 --- a/.github/workflows/rolling-abi-compatibility-last-focal.yml +++ b/.github/workflows/humble-abi-compatibility.yml @@ -1,5 +1,8 @@ -name: ABI Compatibility Check - Last Focal +name: Humble - ABI Compatibility Check on: + workflow_dispatch: + branches: + - master pull_request: branches: - master @@ -11,11 +14,7 @@ jobs: - uses: actions/checkout@v3 - uses: ros-industrial/industrial_ci@master env: - ROS_DISTRO: rolling + ROS_DISTRO: humble ROS_REPO: main ABICHECK_URL: github:${{ github.repository }}#${{ github.base_ref }} NOT_TEST_BUILD: true - OS_CODE_NAME: focal - BEFORE_INSTALL_UPSTREAM_DEPENDENCIES: | - export ROSDISTRO_INDEX_URL=https://raw.githubusercontent.com/ros/rosdistro/rolling/2022-01-28/index-v4.yaml - rosdep update diff --git a/.github/workflows/humble-binary-build-main.yml b/.github/workflows/humble-binary-build-main.yml new file mode 100644 index 0000000000..365744af4b --- /dev/null +++ b/.github/workflows/humble-binary-build-main.yml @@ -0,0 +1,26 @@ +name: Humble Binary Build - main +# author: Denis Štogl +# description: 'Build & test all dependencies from released (binary) packages.' + +on: + workflow_dispatch: + branches: + - master + pull_request: + branches: + - master + push: + branches: + - master + schedule: + # Run every morning to detect flakiness and broken dependencies + - cron: '03 1 * * *' + +jobs: + binary: + uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml + with: + ros_distro: humble + ros_repo: main + upstream_workspace: ros2_control-not-released.humble.repos + ref_for_scheduled_build: master diff --git a/.github/workflows/humble-binary-build-testing.yml b/.github/workflows/humble-binary-build-testing.yml new file mode 100644 index 0000000000..edb94f3fe8 --- /dev/null +++ b/.github/workflows/humble-binary-build-testing.yml @@ -0,0 +1,26 @@ +name: Humble Binary Build - testing +# author: Denis Štogl +# description: 'Build & test all dependencies from released (binary) packages.' + +on: + workflow_dispatch: + branches: + - master + pull_request: + branches: + - master + push: + branches: + - master + schedule: + # Run every morning to detect flakiness and broken dependencies + - cron: '03 1 * * *' + +jobs: + binary: + uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml + with: + ros_distro: humble + ros_repo: testing + upstream_workspace: ros2_control-not-released.humble.repos + ref_for_scheduled_build: master diff --git a/.github/workflows/humble-rhel-binary-build.yml b/.github/workflows/humble-rhel-binary-build.yml new file mode 100644 index 0000000000..554e306d65 --- /dev/null +++ b/.github/workflows/humble-rhel-binary-build.yml @@ -0,0 +1,33 @@ +name: Humble RHEL Binary Build +on: + workflow_dispatch: + branches: + - master +# pull_request: +# branches: +# - master +# push: +# branches: +# - master +# schedule: +# # Run every day to detect flakiness and broken dependencies +# - cron: '03 1 * * *' + + +jobs: + humble_rhel_binary: + name: Humble RHEL binary build + runs-on: ubuntu-latest + env: + ROS_DISTRO: humble + container: jaronl/ros:humble-alma + steps: + - uses: actions/checkout@v3 + with: + path: src/ros2_control + - run: | + rosdep update + rosdep install -iy --from-path src/ros2_control + source /opt/ros/${{ env.ROS_DISTRO }}/setup.bash + colcon build + colcon test diff --git a/.github/workflows/humble-semi-binary-build-main.yml b/.github/workflows/humble-semi-binary-build-main.yml new file mode 100644 index 0000000000..7e79db3264 --- /dev/null +++ b/.github/workflows/humble-semi-binary-build-main.yml @@ -0,0 +1,25 @@ +name: Humble Semi-Binary Build - main +# description: 'Build & test that compiles the main dependencies from source.' + +on: + workflow_dispatch: + branches: + - master + pull_request: + branches: + - master + push: + branches: + - master + schedule: + # Run every morning to detect flakiness and broken dependencies + - cron: '33 1 * * *' + +jobs: + semi_binary: + uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml + with: + ros_distro: humble + ros_repo: main + upstream_workspace: ros2_control.humble.repos + ref_for_scheduled_build: master diff --git a/.github/workflows/humble-semi-binary-build-testing.yml b/.github/workflows/humble-semi-binary-build-testing.yml new file mode 100644 index 0000000000..485e49f2cf --- /dev/null +++ b/.github/workflows/humble-semi-binary-build-testing.yml @@ -0,0 +1,25 @@ +name: Humble Semi-Binary Build - testing +# description: 'Build & test that compiles the main dependencies from source.' + +on: + workflow_dispatch: + branches: + - master + pull_request: + branches: + - master + push: + branches: + - master + schedule: + # Run every morning to detect flakiness and broken dependencies + - cron: '33 1 * * *' + +jobs: + semi_binary: + uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml + with: + ros_distro: humble + ros_repo: testing + upstream_workspace: ros2_control.humble.repos + ref_for_scheduled_build: master diff --git a/.github/workflows/galactic-source-build.yml b/.github/workflows/humble-source-build.yml similarity index 57% rename from .github/workflows/galactic-source-build.yml rename to .github/workflows/humble-source-build.yml index d1c3aa97e8..18c33b6d52 100644 --- a/.github/workflows/galactic-source-build.yml +++ b/.github/workflows/humble-source-build.yml @@ -1,8 +1,11 @@ -name: Galactic Source Build +name: Humble Source Build on: + workflow_dispatch: + branches: + - master push: branches: - - galactic + - master schedule: # Run every day to detect flakiness and broken dependencies - cron: '03 3 * * *' @@ -11,5 +14,6 @@ jobs: source: uses: ./.github/workflows/reusable-ros-tooling-source-build.yml with: - ros_distro: galactic - ref: galactic + ros_distro: humble + ref: master + ros2_repo_branch: humble diff --git a/.github/workflows/reusable-industrial-ci-with-cache.yml b/.github/workflows/reusable-industrial-ci-with-cache.yml index 9d2722099d..0ff359d091 100644 --- a/.github/workflows/reusable-industrial-ci-with-cache.yml +++ b/.github/workflows/reusable-industrial-ci-with-cache.yml @@ -20,8 +20,8 @@ on: required: true type: string ros_repo: - description: 'ROS_REPO to run for industrial_ci. Possible values: "all", "main", "testing"' - default: 'all' + description: 'ROS_REPO to run for industrial_ci. Possible values: "main", "testing"' + default: 'main' required: false type: string os_code_name: @@ -49,27 +49,23 @@ on: jobs: reusable_industrial_ci_with_cache: - name: ${{ matrix.ROS_REPO }} ${{ inputs.ros_distro }} ${{ inputs.os_code_name }} - strategy: - fail-fast: false - matrix: - ROS_REPO: [ main, testing ] + name: ${{ inputs.ros_distro }} ${{ inputs.ros_repo }} ${{ inputs.os_code_name }} runs-on: ubuntu-latest env: CCACHE_DIR: ${{ github.workspace }}/${{ inputs.ccache_dir }} BASEDIR: ${{ github.workspace }}/${{ inputs.basedir }} - CACHE_PREFIX: ${{ inputs.ros_distro }}-${{ inputs.os_code_name }}-${{ matrix.ROS_REPO }}-${{ github.job }} + CACHE_PREFIX: ${{ inputs.ros_distro }}-${{ inputs.os_code_name }}-${{ inputs.ros_repo }}-${{ github.job }} steps: - name: Checkout ${{ inputs.ref }} when build is not scheduled - if: ${{ (inputs.ros_repo == 'all' || inputs.ros_repo == matrix.ROS_REPO) && github.event_name != 'schedule' }} + if: ${{ github.event_name != 'schedule' }} uses: actions/checkout@v3 - name: Checkout ${{ inputs.ref }} on scheduled build - if: ${{ (inputs.ros_repo == 'all' || inputs.ros_repo == matrix.ROS_REPO) && github.event_name == 'schedule' }} + if: ${{ github.event_name == 'schedule' }} uses: actions/checkout@v3 with: ref: ${{ inputs.ref_for_scheduled_build }} - name: cache target_ws - if: ${{ ! matrix.env.CCOV && (inputs.ros_repo == 'all' || inputs.ros_repo == matrix.ROS_REPO) }} + if: ${{ ! matrix.env.CCOV }} uses: pat-s/always-upload-cache@v2.1.5 with: path: ${{ env.BASEDIR }}/target_ws @@ -77,7 +73,6 @@ jobs: restore-keys: | target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }} - name: cache ccache - if: ${{ inputs.ros_repo == 'all' || inputs.ros_repo == matrix.ROS_REPO }} uses: pat-s/always-upload-cache@v2.1.5 with: path: ${{ env.CCACHE_DIR }} @@ -85,22 +80,17 @@ jobs: restore-keys: | ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }} ccache-${{ env.CACHE_PREFIX }} - - if: ${{ inputs.ros_repo == 'all' || inputs.ros_repo == matrix.ROS_REPO }} - uses: 'ros-industrial/industrial_ci@master' + - uses: 'ros-industrial/industrial_ci@master' env: UPSTREAM_WORKSPACE: ${{ inputs.upstream_workspace }} ROS_DISTRO: ${{ inputs.ros_distro }} - ROS_REPO: ${{ matrix.ROS_REPO }} + ROS_REPO: ${{ inputs.ros_repo }} OS_CODE_NAME: ${{ inputs.os_code_name }} BEFORE_INSTALL_UPSTREAM_DEPENDENCIES: ${{ inputs.before_install_upstream_dependencies }} - name: prepare target_ws for cache - if: ${{ always() && ! matrix.env.CCOV && (inputs.ros_repo == 'all' || inputs.ros_repo == matrix.ROS_REPO) }} + if: ${{ always() && ! matrix.env.CCOV }} run: | du -sh ${{ env.BASEDIR }}/target_ws sudo find ${{ env.BASEDIR }}/target_ws -wholename '*/test_results/*' -delete sudo rm -rf ${{ env.BASEDIR }}/target_ws/src du -sh ${{ env.BASEDIR }}/target_ws - - name: Is job skipped? - if: ${{ ! (inputs.ros_repo == 'all' || inputs.ros_repo == matrix.ROS_REPO) }} - run: | - echo "This job is skpped!" diff --git a/.github/workflows/reusable-ros-tooling-source-build.yml b/.github/workflows/reusable-ros-tooling-source-build.yml index 71afebac1e..4e5174405d 100644 --- a/.github/workflows/reusable-ros-tooling-source-build.yml +++ b/.github/workflows/reusable-ros-tooling-source-build.yml @@ -13,21 +13,26 @@ on: 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, galactic, foxy.' + default: 'master' + required: false + type: string jobs: reusable_ros_tooling_source_build: - name: ${{ inputs.ros_distro }} ubuntu-20.04 - runs-on: ubuntu-20.04 + name: ${{ inputs.ros_distro }} ubuntu-22.04 + runs-on: ubuntu-22.04 strategy: fail-fast: false steps: - - uses: ros-tooling/setup-ros@v0.3 + - uses: ros-tooling/setup-ros@0.3.4 with: required-ros-distributions: ${{ inputs.ros_distro }} - uses: actions/checkout@v3 with: ref: ${{ inputs.ref }} - - uses: ros-tooling/action-ros-ci@v0.2 + - uses: ros-tooling/action-ros-ci@0.2.6 with: target-ros2-distro: ${{ inputs.ros_distro }} # build all packages listed in the meta package @@ -41,10 +46,10 @@ jobs: ros2_control_test_assets transmission_interface vcs-repo-file-url: | - https://raw.githubusercontent.com/ros2/ros2/${{ inputs.ros_distro }}/ros2.repos + https://raw.githubusercontent.com/ros2/ros2/${{ inputs.ros2_repo_branch }}/ros2.repos https://raw.githubusercontent.com/${{ github.repository }}/${{ github.sha }}/ros2_control.${{ 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@v1 with: - name: colcon-logs-ubuntu-20.04 + name: colcon-logs-ubuntu-22.04 path: ros_ws/log diff --git a/.github/workflows/rolling-abi-compatibility.yml b/.github/workflows/rolling-abi-compatibility.yml index dc797d7718..4589e92e3b 100644 --- a/.github/workflows/rolling-abi-compatibility.yml +++ b/.github/workflows/rolling-abi-compatibility.yml @@ -1,6 +1,8 @@ -name: ABI Compatibility Check +name: Rolling - ABI Compatibility Check on: workflow_dispatch: + branches: + - master pull_request: branches: - master diff --git a/.github/workflows/rolling-binary-build.yml b/.github/workflows/rolling-binary-build-main.yml similarity index 83% rename from .github/workflows/rolling-binary-build.yml rename to .github/workflows/rolling-binary-build-main.yml index 419d78e850..05a9b9c0b2 100644 --- a/.github/workflows/rolling-binary-build.yml +++ b/.github/workflows/rolling-binary-build-main.yml @@ -1,8 +1,11 @@ -name: Rolling Binary Build +name: Rolling Binary Build - main # author: Denis Štogl # description: 'Build & test all dependencies from released (binary) packages.' on: + workflow_dispatch: + branches: + - master pull_request: branches: - master @@ -18,5 +21,6 @@ jobs: uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml with: ros_distro: rolling + ros_repo: main upstream_workspace: ros2_control-not-released.rolling.repos ref_for_scheduled_build: master diff --git a/.github/workflows/rolling-binary-build-last-focal.yml b/.github/workflows/rolling-binary-build-testing.yml similarity index 66% rename from .github/workflows/rolling-binary-build-last-focal.yml rename to .github/workflows/rolling-binary-build-testing.yml index d9bfc0e334..811c96fce4 100644 --- a/.github/workflows/rolling-binary-build-last-focal.yml +++ b/.github/workflows/rolling-binary-build-testing.yml @@ -1,8 +1,11 @@ -name: Rolling Binary Build - Last Focal +name: Rolling Binary Build - testing # author: Denis Štogl # description: 'Build & test all dependencies from released (binary) packages.' on: + workflow_dispatch: + branches: + - master pull_request: branches: - master @@ -18,10 +21,6 @@ jobs: uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml with: ros_distro: rolling + ros_repo: testing upstream_workspace: ros2_control-not-released.rolling.repos ref_for_scheduled_build: master - ros_repo: main - os_code_name: focal - before_install_upstream_dependencies: | - export ROSDISTRO_INDEX_URL=https://raw.githubusercontent.com/ros/rosdistro/rolling/2022-01-28/index-v4.yaml - rosdep update diff --git a/.github/workflows/rolling-rhel-binary-build.yml b/.github/workflows/rolling-rhel-binary-build.yml index c7d1ffc675..fe7386b75b 100644 --- a/.github/workflows/rolling-rhel-binary-build.yml +++ b/.github/workflows/rolling-rhel-binary-build.yml @@ -1,5 +1,8 @@ name: Rolling RHEL Binary Build on: + workflow_dispatch: + branches: + - master pull_request: branches: - master diff --git a/.github/workflows/rolling-semi-binary-build.yml b/.github/workflows/rolling-semi-binary-build-main.yml similarity index 81% rename from .github/workflows/rolling-semi-binary-build.yml rename to .github/workflows/rolling-semi-binary-build-main.yml index c6b0535ef9..1033dd1e6c 100644 --- a/.github/workflows/rolling-semi-binary-build.yml +++ b/.github/workflows/rolling-semi-binary-build-main.yml @@ -1,7 +1,10 @@ -name: Rolling Semi-Binary Build +name: Rolling Semi-Binary Build - main # description: 'Build & test that compiles the main dependencies from source.' on: + workflow_dispatch: + branches: + - master pull_request: branches: - master @@ -17,5 +20,6 @@ jobs: uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml with: ros_distro: rolling + ros_repo: main upstream_workspace: ros2_control.rolling.repos ref_for_scheduled_build: master diff --git a/.github/workflows/rolling-semi-binary-build-last-focal.yml b/.github/workflows/rolling-semi-binary-build-testing.yml similarity index 63% rename from .github/workflows/rolling-semi-binary-build-last-focal.yml rename to .github/workflows/rolling-semi-binary-build-testing.yml index 04538e34b8..4ddfcf5057 100644 --- a/.github/workflows/rolling-semi-binary-build-last-focal.yml +++ b/.github/workflows/rolling-semi-binary-build-testing.yml @@ -1,7 +1,10 @@ -name: Rolling Semi-Binary Build - Last Focal +name: Rolling Semi-Binary Build - testing # description: 'Build & test that compiles the main dependencies from source.' on: + workflow_dispatch: + branches: + - master pull_request: branches: - master @@ -17,10 +20,6 @@ jobs: uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml with: ros_distro: rolling + ros_repo: testing upstream_workspace: ros2_control.rolling.repos ref_for_scheduled_build: master - ros_repo: main - os_code_name: focal - before_install_upstream_dependencies: | - export ROSDISTRO_INDEX_URL=https://raw.githubusercontent.com/ros/rosdistro/rolling/2022-01-28/index-v4.yaml - rosdep update diff --git a/.github/workflows/rolling-source-build.yml b/.github/workflows/rolling-source-build.yml index 0a0ae8de43..b96ad0298e 100644 --- a/.github/workflows/rolling-source-build.yml +++ b/.github/workflows/rolling-source-build.yml @@ -1,5 +1,8 @@ name: Rolling Source Build on: + workflow_dispatch: + branches: + - master push: branches: - master @@ -13,3 +16,4 @@ jobs: with: ros_distro: rolling ref: master + ros2_repo_branch: master diff --git a/README.md b/README.md index a4a55c7c87..0d060c76f5 100644 --- a/README.md +++ b/README.md @@ -10,10 +10,12 @@ For more, please check the [documentation](https://ros-controls.github.io/contro ROS2 Distro | Branch | Build status | Documentation | Released packages :---------: | :----: | :----------: | :-----------: | :---------------: -**Rolling** | [`master`](https://github.com/ros-controls/ros2_control/tree/rolling) | [![Rolling Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build.yml?branch=master)
[![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build.yml?branch=master)
[![Rolling Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-source-build.yml?branch=master) | [Documentation](https://control.ros.org)
[API Reference](https://control.ros.org/rolling/api/) | [ros2_control](https://index.ros.org/p/ros2_control/#rolling) -**Rolling - last Focal** | [`master`](https://github.com/ros-controls/ros2_control/tree/rolling) | [![Rolling Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build-last-focal.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build-last-focal.yml?branch=master)
[![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build-last-focal.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build-last-focal.yml?branch=master) | [Documentation](https://control.ros.org)
[API Reference](https://control.ros.org/rolling/api/) | [ros2_control](https://index.ros.org/p/ros2_control/#rolling) -**Galactic** | [`galactic`](https://github.com/ros-controls/ros2_control/tree/galactic) | [![Galactic Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-binary-build.yml/badge.svg?branch=galactic)](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-binary-build.yml?branch=galactic)
[![Galactic Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-semi-binary-build.yml/badge.svg?branch=galactic)](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-semi-binary-build.yml?branch=galactic)
[![Galactic Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-source-build.yml/badge.svg?branch=galactic)](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-source-build.yml?branch=galactic) | [Documentation](https://control.ros.org)
[API Reference](https://control.ros.org/rolling/api/) | [ros2_control](https://index.ros.org/p/ros2_control/#galactic) -**Foxy** | [`foxy`](https://github.com/ros-controls/ros2_control/tree/foxy) | [![Foxy Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-binary-build.yml/badge.svg?branch=foxy)](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-binary-build.yml?branch=foxy)
[![Foxy Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-semi-binary-build.yml/badge.svg?branch=foxy)](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-semi-binary-build.yml?branch=foxy)
[![Foxy Source Build](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-source-build.yml/badge.svg?branch=foxy)](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-source-build.yml?branch=foxy) | [Documentation](https://control.ros.org)
[API Reference](https://control.ros.org/rolling/api/) | [ros2_control](https://index.ros.org/p/ros2_control/#foxy) +**Rolling** | [`rolling`](https://github.com/ros-controls/ros2_control/tree/rolling) | [![Rolling Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-binary-build-main.yml?branch=master)
[![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/rolling-semi-binary-build-main.yml?branch=master) | [Documentation](https://control.ros.org/master/index.html)
[API Reference](https://control.ros.org/master/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#rolling) +**Humble** | [`humble`](https://github.com/ros-controls/ros2_control/tree/humble) | [![Humble Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-binary-build-main.yml?branch=master)
[![Humble Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_control/actions/workflows/humble-semi-binary-build-main.yml?branch=master) | [Documentation](https://control.ros.org/master/index.html)
[API Reference](https://control.ros.org/master/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#humble) +**Galactic** | [`galactic`](https://github.com/ros-controls/ros2_control/tree/galactic) | [![Galactic Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-binary-build-main.yml/badge.svg?branch=galactic)](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-binary-build-main.yml?branch=galactic)
[![Galactic Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-semi-binary-build-main.yml/badge.svg?branch=galactic)](https://github.com/ros-controls/ros2_control/actions/workflows/galactic-semi-binary-build-main.yml?branch=galactic) | [Documentation](https://control.ros.org/galactic/index.html)
[API Reference](https://control.ros.org/galactic/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#galactic) +**Foxy** | [`foxy`](https://github.com/ros-controls/ros2_control/tree/foxy) | [![Foxy Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-binary-build-main.yml/badge.svg?branch=foxy)](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-binary-build-main.yml?branch=foxy)
[![Foxy Semi-Binary Build](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-semi-binary-build-main.yml/badge.svg?branch=foxy)](https://github.com/ros-controls/ros2_control/actions/workflows/foxy-semi-binary-build-main.yml?branch=foxy) | [Documentation](https://control.ros.org/foxy/index.html)
[API Reference](https://control.ros.org/foxy/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#foxy) + +[Detailed build status](.github/workflows/README.md) ### Explanation of different build types diff --git a/controller_manager_msgs/package.xml b/controller_manager_msgs/package.xml index 4ff02ebbfb..de444ff168 100644 --- a/controller_manager_msgs/package.xml +++ b/controller_manager_msgs/package.xml @@ -20,6 +20,8 @@ lifecycle_msgs rosidl_default_runtime + ament_lint_common + rosidl_interface_packages ament_cmake diff --git a/ros2_control-not-released.humble.repos b/ros2_control-not-released.humble.repos new file mode 100644 index 0000000000..56f46b6f79 --- /dev/null +++ b/ros2_control-not-released.humble.repos @@ -0,0 +1 @@ +repositories: diff --git a/ros2_control.humble.repos b/ros2_control.humble.repos new file mode 100644 index 0000000000..afb1cbf640 --- /dev/null +++ b/ros2_control.humble.repos @@ -0,0 +1,9 @@ +repositories: + ros-controls/realtime_tools: + type: git + url: https://github.com/ros-controls/realtime_tools.git + version: foxy-devel + ros-controls/control_msgs: + type: git + url: https://github.com/ros-controls/control_msgs.git + version: galactic-devel