Skip to content

Commit dabe19e

Browse files
authored
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.
1 parent 5e876d2 commit dabe19e

31 files changed

+301
-90
lines changed

.github/workflows/README.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
2+
ROS2 Distro | Branch | Build status | Documentation | Released packages
3+
:---------: | :----: | :----------: | :-----------: | :---------------:
4+
**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)
5+
**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)
6+
**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)
7+
**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)

.github/workflows/ci-coverage-build.yml

+10-7
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
11
name: Coverage Build
22
on:
3+
workflow_dispatch:
4+
branches:
5+
- master
36
pull_request:
47
branches:
58
- master
69

710
jobs:
811
coverage:
912
name: coverage build
10-
runs-on: ubuntu-20.04
13+
runs-on: ubuntu-22.04
1114
strategy:
1215
fail-fast: false
1316
env:
1417
ROS_DISTRO: rolling
1518
steps:
16-
- uses: ros-tooling/setup-ros@v0.2
19+
- uses: ros-tooling/setup-ros@0.3.4
1720
with:
1821
required-ros-distributions: ${{ env.ROS_DISTRO }}
1922
- uses: actions/checkout@v3
20-
- uses: ros-tooling/action-ros-ci@v0.2
23+
- uses: ros-tooling/action-ros-ci@0.2.6
2124
with:
2225
target-ros2-distro: ${{ env.ROS_DISTRO }}
2326
import-token: ${{ secrets.GITHUB_TOKEN }}
@@ -31,6 +34,7 @@ jobs:
3134
ros2_control
3235
ros2_control_test_assets
3336
transmission_interface
37+
3438
vcs-repo-file-url: |
3539
https://raw.githubusercontent.com/${{ github.repository }}/${{ github.sha }}/ros2_control-not-released.${{ env.ROS_DISTRO }}.repos?token=${{ secrets.GITHUB_TOKEN }}
3640
colcon-defaults: |
@@ -40,13 +44,12 @@ jobs:
4044
}
4145
}
4246
colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
43-
skip-tests: true
44-
- uses: codecov/codecov-action@v1.0.14
47+
- uses: codecov/codecov-action@v3.1.0
4548
with:
4649
file: ros_ws/lcov/total_coverage.info
4750
flags: unittests
4851
name: codecov-umbrella
49-
- uses: actions/upload-artifact@v1
52+
- uses: actions/upload-artifact@v3.1.0
5053
with:
51-
name: colcon-logs-${{ matrix.os }}
54+
name: colcon-logs-ubuntu-22.04-coverage-rolling
5255
path: ros_ws/log

.github/workflows/ci-ros-lint.yml

+8-6
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,13 @@ jobs:
99
strategy:
1010
fail-fast: false
1111
matrix:
12-
linter: [copyright, cppcheck, lint_cmake]
12+
linter: [cppcheck, copyright, lint_cmake]
1313
steps:
1414
- uses: actions/checkout@v3
1515
- uses: ros-tooling/setup-ros@v0.2
1616
- uses: ros-tooling/action-ros-lint@v0.1
1717
with:
18-
distribution: galactic
18+
distribution: rolling
1919
linter: ${{ matrix.linter }}
2020
package-name:
2121
controller_interface
@@ -27,19 +27,21 @@ jobs:
2727
ros2_control_test_assets
2828
transmission_interface
2929

30-
ament_lint_cpplint:
31-
name: ament_lint_cpplint
30+
ament_lint_100:
31+
name: ament_${{ matrix.linter }}
3232
runs-on: ubuntu-20.04
3333
strategy:
3434
fail-fast: false
35+
matrix:
36+
linter: [cpplint]
3537
steps:
3638
- uses: actions/checkout@v3
3739
- uses: ros-tooling/setup-ros@v0.2
3840
- uses: ros-tooling/action-ros-lint@v0.1
3941
with:
40-
distribution: galactic
42+
distribution: rolling
4143
linter: cpplint
42-
arguments: "--filter=-whitespace/newline"
44+
arguments: "--linelength=100 --filter=-whitespace/newline"
4345
package-name:
4446
controller_interface
4547
controller_manager

.github/workflows/foxy-abi-compatibility.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
name: ABI Compatibility Check
1+
name: Foxy - ABI Compatibility Check
22
on:
3+
workflow_dispatch:
4+
branches:
5+
- foxy
36
pull_request:
47
branches:
58
- foxy

.github/workflows/foxy-binary-build.yml renamed to .github/workflows/foxy-binary-build-main.yml

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
name: Foxy Binary Build
1+
name: Foxy Binary Build - main
22
# author: Denis Štogl <denis@stoglrobotics.de>
33
# description: 'Build & test all dependencies from released (binary) packages.'
44

55
on:
6+
workflow_dispatch:
7+
branches:
8+
- foxy
69
pull_request:
710
branches:
811
- foxy
@@ -18,5 +21,6 @@ jobs:
1821
uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml
1922
with:
2023
ros_distro: foxy
24+
ros_repo: main
2125
upstream_workspace: ros2_control-not-released.foxy.repos
2226
ref_for_scheduled_build: foxy

.github/workflows/foxy-semi-binary-build.yml renamed to .github/workflows/foxy-semi-binary-build-main.yml

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
1-
name: Foxy Semi-Binary Build
1+
name: Foxy Semi-Binary Build - main
22
# description: 'Build & test that compiles the main dependencies from source.'
33

44
on:
5+
workflow_dispatch:
6+
branches:
7+
- foxy
58
pull_request:
69
branches:
710
- foxy
@@ -17,5 +20,6 @@ jobs:
1720
uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml
1821
with:
1922
ros_distro: foxy
23+
ros_repo: main
2024
upstream_workspace: ros2_control.foxy.repos
2125
ref_for_scheduled_build: foxy

.github/workflows/foxy-source-build.yml

-15
This file was deleted.

.github/workflows/galactic-abi-compatibility.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
name: ABI Compatibility Check
1+
name: Galactic - ABI Compatibility Check
22
on:
3+
workflow_dispatch:
4+
branches:
5+
- galactic
36
pull_request:
47
branches:
58
- galactic

.github/workflows/galactic-binary-build.yml renamed to .github/workflows/galactic-binary-build-main.yml

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
name: Galactic Binary Build
1+
name: Galactic Binary Build - main
22
# author: Denis Štogl <denis@stoglrobotics.de>
33
# description: 'Build & test all dependencies from released (binary) packages.'
44

55
on:
6+
workflow_dispatch:
7+
branches:
8+
- galactic
69
pull_request:
710
branches:
811
- galactic
@@ -18,5 +21,6 @@ jobs:
1821
uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml
1922
with:
2023
ros_distro: galactic
24+
ros_repo: main
2125
upstream_workspace: ros2_control-not-released.galactic.repos
2226
ref_for_scheduled_build: galactic
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Galactic RHEL Binary Build
2+
on:
3+
workflow_dispatch:
4+
branches:
5+
- galactic
6+
pull_request:
7+
branches:
8+
- galactic
9+
push:
10+
branches:
11+
- galactic
12+
schedule:
13+
# Run every day to detect flakiness and broken dependencies
14+
- cron: '03 1 * * *'
15+
16+
17+
jobs:
18+
galactic_rhel_binary:
19+
name: Galactic RHEL binary build
20+
runs-on: ubuntu-latest
21+
env:
22+
ROS_DISTRO: galactic
23+
container: jaronl/ros:galactic-alma
24+
steps:
25+
- uses: actions/checkout@v3
26+
with:
27+
path: src/ros2_control
28+
- run: |
29+
rosdep update
30+
rosdep install -iy --from-path src/ros2_control
31+
source /opt/ros/${{ env.ROS_DISTRO }}/setup.bash
32+
colcon build
33+
colcon test

.github/workflows/galactic-semi-binary-build.yml renamed to .github/workflows/galactic-semi-binary-build-main.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
name: Galactic Semi-Binary Build
1+
name: Galactic Semi-Binary Build - main
22
# description: 'Build & test that compiles the main dependencies from source.'
33

44
on:
5-
pull_request:
5+
workflow_dispatch:
66
branches:
77
- galactic
88
push:
@@ -17,5 +17,6 @@ jobs:
1717
uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml
1818
with:
1919
ros_distro: galactic
20+
ros_repo: main
2021
upstream_workspace: ros2_control.galactic.repos
2122
ref_for_scheduled_build: galactic
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
name: ABI Compatibility Check - Last Focal
1+
name: Humble - ABI Compatibility Check
22
on:
3+
workflow_dispatch:
4+
branches:
5+
- master
36
pull_request:
47
branches:
58
- master
@@ -11,11 +14,7 @@ jobs:
1114
- uses: actions/checkout@v3
1215
- uses: ros-industrial/industrial_ci@master
1316
env:
14-
ROS_DISTRO: rolling
17+
ROS_DISTRO: humble
1518
ROS_REPO: main
1619
ABICHECK_URL: github:${{ github.repository }}#${{ github.base_ref }}
1720
NOT_TEST_BUILD: true
18-
OS_CODE_NAME: focal
19-
BEFORE_INSTALL_UPSTREAM_DEPENDENCIES: |
20-
export ROSDISTRO_INDEX_URL=https://raw.githubusercontent.com/ros/rosdistro/rolling/2022-01-28/index-v4.yaml
21-
rosdep update
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Humble Binary Build - main
2+
# author: Denis Štogl <denis@stoglrobotics.de>
3+
# description: 'Build & test all dependencies from released (binary) packages.'
4+
5+
on:
6+
workflow_dispatch:
7+
branches:
8+
- master
9+
pull_request:
10+
branches:
11+
- master
12+
push:
13+
branches:
14+
- master
15+
schedule:
16+
# Run every morning to detect flakiness and broken dependencies
17+
- cron: '03 1 * * *'
18+
19+
jobs:
20+
binary:
21+
uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml
22+
with:
23+
ros_distro: humble
24+
ros_repo: main
25+
upstream_workspace: ros2_control-not-released.humble.repos
26+
ref_for_scheduled_build: master
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: Humble Binary Build - testing
2+
# author: Denis Štogl <denis@stoglrobotics.de>
3+
# description: 'Build & test all dependencies from released (binary) packages.'
4+
5+
on:
6+
workflow_dispatch:
7+
branches:
8+
- master
9+
pull_request:
10+
branches:
11+
- master
12+
push:
13+
branches:
14+
- master
15+
schedule:
16+
# Run every morning to detect flakiness and broken dependencies
17+
- cron: '03 1 * * *'
18+
19+
jobs:
20+
binary:
21+
uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml
22+
with:
23+
ros_distro: humble
24+
ros_repo: testing
25+
upstream_workspace: ros2_control-not-released.humble.repos
26+
ref_for_scheduled_build: master
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Humble RHEL Binary Build
2+
on:
3+
workflow_dispatch:
4+
branches:
5+
- master
6+
# pull_request:
7+
# branches:
8+
# - master
9+
# push:
10+
# branches:
11+
# - master
12+
# schedule:
13+
# # Run every day to detect flakiness and broken dependencies
14+
# - cron: '03 1 * * *'
15+
16+
17+
jobs:
18+
humble_rhel_binary:
19+
name: Humble RHEL binary build
20+
runs-on: ubuntu-latest
21+
env:
22+
ROS_DISTRO: humble
23+
container: jaronl/ros:humble-alma
24+
steps:
25+
- uses: actions/checkout@v3
26+
with:
27+
path: src/ros2_control
28+
- run: |
29+
rosdep update
30+
rosdep install -iy --from-path src/ros2_control
31+
source /opt/ros/${{ env.ROS_DISTRO }}/setup.bash
32+
colcon build
33+
colcon test
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Humble Semi-Binary Build - main
2+
# description: 'Build & test that compiles the main dependencies from source.'
3+
4+
on:
5+
workflow_dispatch:
6+
branches:
7+
- master
8+
pull_request:
9+
branches:
10+
- master
11+
push:
12+
branches:
13+
- master
14+
schedule:
15+
# Run every morning to detect flakiness and broken dependencies
16+
- cron: '33 1 * * *'
17+
18+
jobs:
19+
semi_binary:
20+
uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml
21+
with:
22+
ros_distro: humble
23+
ros_repo: main
24+
upstream_workspace: ros2_control.humble.repos
25+
ref_for_scheduled_build: master

0 commit comments

Comments
 (0)