Skip to content

Commit

Permalink
Update and fix CI setup (#752)
Browse files Browse the repository at this point in the history
* 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.
  • Loading branch information
destogl authored Jun 30, 2022
1 parent 5e876d2 commit dabe19e
Show file tree
Hide file tree
Showing 31 changed files with 301 additions and 90 deletions.
7 changes: 7 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -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) <br /> [![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) <br /> [![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) <br /> [![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) <br /> [![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) <br /> [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) <br /> [![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) <br /> [![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) <br /> [![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) <br /> [![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) <br /> [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) <br /> [![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) <br /> [![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) <br /> [![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) <br /> [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) <br /> [![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) <br /> [![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) <br /> [![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) <br /> [API Reference](https://control.ros.org/foxy/doc/api/index.html) | [ros2_control](https://index.ros.org/p/ros2_control/#foxy)
17 changes: 10 additions & 7 deletions .github/workflows/ci-coverage-build.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,26 @@
name: Coverage Build
on:
workflow_dispatch:
branches:
- master
pull_request:
branches:
- master

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 }}
Expand All @@ -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: |
Expand All @@ -40,13 +44,12 @@ jobs:
}
}
colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
skip-tests: true
- uses: codecov/[email protected]
- uses: codecov/[email protected]
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
14 changes: 8 additions & 6 deletions .github/workflows/ci-ros-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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/[email protected]
- uses: ros-tooling/[email protected]
with:
distribution: galactic
distribution: rolling
linter: ${{ matrix.linter }}
package-name:
controller_interface
Expand All @@ -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/[email protected]
- uses: ros-tooling/[email protected]
with:
distribution: galactic
distribution: rolling
linter: cpplint
arguments: "--filter=-whitespace/newline"
arguments: "--linelength=100 --filter=-whitespace/newline"
package-name:
controller_interface
controller_manager
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/foxy-abi-compatibility.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: ABI Compatibility Check
name: Foxy - ABI Compatibility Check
on:
workflow_dispatch:
branches:
- foxy
pull_request:
branches:
- foxy
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
name: Foxy Binary Build
name: Foxy Binary Build - main
# author: Denis Štogl <[email protected]>
# description: 'Build & test all dependencies from released (binary) packages.'

on:
workflow_dispatch:
branches:
- foxy
pull_request:
branches:
- foxy
Expand All @@ -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
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
15 changes: 0 additions & 15 deletions .github/workflows/foxy-source-build.yml

This file was deleted.

5 changes: 4 additions & 1 deletion .github/workflows/galactic-abi-compatibility.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: ABI Compatibility Check
name: Galactic - ABI Compatibility Check
on:
workflow_dispatch:
branches:
- galactic
pull_request:
branches:
- galactic
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
name: Galactic Binary Build
name: Galactic Binary Build - main
# author: Denis Štogl <[email protected]>
# description: 'Build & test all dependencies from released (binary) packages.'

on:
workflow_dispatch:
branches:
- galactic
pull_request:
branches:
- galactic
Expand All @@ -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
33 changes: 33 additions & 0 deletions .github/workflows/galactic-rhel-binary-build.yml
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -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:
Expand All @@ -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
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: ABI Compatibility Check - Last Focal
name: Humble - ABI Compatibility Check
on:
workflow_dispatch:
branches:
- master
pull_request:
branches:
- master
Expand All @@ -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
26 changes: 26 additions & 0 deletions .github/workflows/humble-binary-build-main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Humble Binary Build - main
# author: Denis Štogl <[email protected]>
# 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
26 changes: 26 additions & 0 deletions .github/workflows/humble-binary-build-testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Humble Binary Build - testing
# author: Denis Štogl <[email protected]>
# 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
33 changes: 33 additions & 0 deletions .github/workflows/humble-rhel-binary-build.yml
Original file line number Diff line number Diff line change
@@ -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
25 changes: 25 additions & 0 deletions .github/workflows/humble-semi-binary-build-main.yml
Original file line number Diff line number Diff line change
@@ -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
Loading

0 comments on commit dabe19e

Please sign in to comment.