Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adjust CI configuration to ros2_control repository. #408

Merged
merged 5 commits into from
Aug 10, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
## Build status

ROS2 Distro | Branch | Build status | Documentation | Released packages
:---------: | :----: | :----------: | :-----------: | :---------------:
**Rolling** | [`rolling`](https://github.com/ros-controls/ros2_controllers/tree/rolling) | [![Rolling Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-binary-build-main.yml?branch=master) <br /> [![Rolling Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-binary-build-testing.yml?branch=master) <br /> [![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-semi-binary-build-main.yml?branch=master) <br /> [![Rolling Semi-Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-semi-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-semi-binary-build-testing.yml?branch=master) <br /> [![Rolling Source Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/rolling-source-build.yml?branch=master) | | [ros2_controllers](https://index.ros.org/p/ros2_controllers/#rolling)
**Humble** | [`humble`](https://github.com/ros-controls/ros2_controllers/tree/humble) | [![Humble Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-binary-build-main.yml?branch=master) <br /> [![Humble Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-binary-build-testing.yml?branch=master) <br /> [![Humble Semi-Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-semi-binary-build-main.yml?branch=master) <br /> [![Humble Semi-Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-semi-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-semi-binary-build-testing.yml?branch=master) <br /> [![Humble Source Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/ros2_controllers/actions/workflows/humble-source-build.yml?branch=master) | | [ros2_controllers](https://index.ros.org/p/ros2_controllers/#humble)
**Galactic** | [`galactic`](https://github.com/ros-controls/ros2_controllers/tree/galactic) | [![Galactic Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/galactic-binary-build-main.yml/badge.svg?branch=galactic)](https://github.com/ros-controls/ros2_controllers/actions/workflows/galactic-binary-build-main.yml?branch=galactic) <br /> [![Galactic Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/galactic-binary-build-testing.yml/badge.svg?branch=galactic)](https://github.com/ros-controls/ros2_controllers/actions/workflows/galactic-binary-build-testing.yml?branch=galactic) <br /> [![Galactic Semi-Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/galactic-semi-binary-build-main.yml/badge.svg?branch=galactic)](https://github.com/ros-controls/ros2_controllers/actions/workflows/galactic-semi-binary-build-main.yml?branch=galactic) <br /> [![Galactic Semi-Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/galactic-semi-binary-build-testing.yml/badge.svg?branch=galactic)](https://github.com/ros-controls/ros2_controllers/actions/workflows/galactic-semi-binary-build-testing.yml?branch=galactic) | | [ros2_controllers](https://index.ros.org/p/ros2_controllers/#galactic)
**Foxy** | [`foxy`](https://github.com/ros-controls/ros2_controllers/tree/foxy) | [![Foxy Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/foxy-binary-build-main.yml/badge.svg?branch=foxy)](https://github.com/ros-controls/ros2_controllers/actions/workflows/foxy-binary-build-main.yml?branch=foxy) <br /> [![Foxy Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/foxy-binary-build-testing.yml/badge.svg?branch=foxy)](https://github.com/ros-controls/ros2_controllers/actions/workflows/foxy-binary-build-testing.yml?branch=foxy) <br /> [![Foxy Semi-Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/foxy-semi-binary-build-main.yml/badge.svg?branch=foxy)](https://github.com/ros-controls/ros2_controllers/actions/workflows/foxy-semi-binary-build-main.yml?branch=foxy) <br /> [![Foxy Semi-Binary Build](https://github.com/ros-controls/ros2_controllers/actions/workflows/foxy-semi-binary-build-testing.yml/badge.svg?branch=foxy)](https://github.com/ros-controls/ros2_controllers/actions/workflows/foxy-semi-binary-build-testing.yml?branch=foxy) | | [ros2_controllers](https://index.ros.org/p/ros2_controllers/#foxy)


### Explanation of different build types

**NOTE**: There are three build stages checking current and future compatibility of the package.

1. Binary builds - against released packages (main and testing) in ROS distributions. Shows that direct local build is possible.

Uses repos file: `$NAME$-not-released.<ros-distro>.repos`

1. Semi-binary builds - against released core ROS packages (main and testing), but the immediate dependencies are pulled from source.
Shows that local build with dependencies is possible and if fails there we can expect that after the next package sync we will not be able to build.

Uses repos file: `$NAME$.repos`

1. Source build - also core ROS packages are build from source. It shows potential issues in the mid future.
48 changes: 48 additions & 0 deletions .github/workflows/ci-coverage-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Coverage Build
on:
workflow_dispatch:
branches:
- master
pull_request:
branches:
- master

jobs:
coverage:
name: coverage build
runs-on: ubuntu-22.04
strategy:
fail-fast: false
env:
ROS_DISTRO: rolling
steps:
- 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@0.2.6
with:
target-ros2-distro: ${{ env.ROS_DISTRO }}
import-token: ${{ secrets.GITHUB_TOKEN }}
# build all packages listed in the meta package
package-name:
diff_drive_controller

vcs-repo-file-url: |
https://raw.githubusercontent.com/${{ github.repository }}/${{ github.sha }}/ros2_controllers-not-released.${{ env.ROS_DISTRO }}.repos?token=${{ secrets.GITHUB_TOKEN }}
colcon-defaults: |
{
"build": {
"mixin": ["coverage-gcc"]
}
}
colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
- uses: codecov/codecov-action@v3.1.0
with:
file: ros_ws/lcov/total_coverage.info
flags: unittests
name: codecov-umbrella
- uses: actions/upload-artifact@v3.1.0
with:
name: colcon-logs-coverage-rolling
path: ros_ws/log
6 changes: 1 addition & 5 deletions .github/workflows/ci-format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,7 @@
name: Format

on:
workflow_dispatch:
pull_request:
push:
branches:
- master

jobs:
pre-commit:
Expand All @@ -20,7 +16,7 @@ jobs:
with:
python-version: 3.9.7
- name: Install system hooks
run: sudo apt install -qq clang-format-11 cppcheck
run: sudo apt install -qq clang-format-12 cppcheck
- uses: pre-commit/action@v2.0.3
with:
extra_args: --all-files --hook-stage manual
44 changes: 14 additions & 30 deletions .github/workflows/ci-ros-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,49 +9,33 @@ jobs:
strategy:
fail-fast: false
matrix:
linter: [copyright, cppcheck, lint_cmake]
linter: [cppcheck, copyright, lint_cmake]
steps:
- uses: actions/checkout@v1
- 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:
diff_drive_controller
effort_controllers
force_torque_sensor_broadcaster
forward_command_controller
joint_state_broadcaster
joint_trajectory_controller
gripper_controllers
position_controllers
ros2_controllers
ros2_controllers_test_nodes
velocity_controllers
diff_drive_controller

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@v1
- 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:
diff_drive_controller
effort_controllers
force_torque_sensor_broadcaster
forward_command_controller
joint_state_broadcaster
joint_trajectory_controller
gripper_controllers
position_controllers
ros2_controllers
ros2_controllers_test_nodes
velocity_controllers
diff_drive_controller
ros2_controllers
26 changes: 14 additions & 12 deletions .github/workflows/foxy-abi-compatibility.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
name: ABI Compatibility Check
name: Foxy - ABI Compatibility Check
on:
workflow_dispatch:
branches:
- foxy
pull_request:
branches:
- foxy

jobs:
# TODO(andyz): disabled because it started failing at the transition to Humble
# abi_check:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# - uses: ros-industrial/industrial_ci@master
# env:
# ROS_DISTRO: foxy
# ROS_REPO: main
# ABICHECK_URL: github:${{ github.repository }}#${{ github.base_ref }}
# NOT_TEST_BUILD: true
abi_check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ros-industrial/industrial_ci@master
env:
ROS_DISTRO: foxy
ROS_REPO: main
ABICHECK_URL: github:${{ github.repository }}#${{ github.base_ref }}
NOT_TEST_BUILD: true
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
name: Foxy Binary Build
# Build & test all dependencies from released (binary) packages.
name: Foxy Binary Build - main
# author: Denis Štogl <denis@stoglrobotics.de>
# description: 'Build & test all dependencies from released (binary) packages.'

on:
workflow_dispatch:
branches:
- foxy
pull_request:
branches:
- foxy
Expand All @@ -10,12 +14,13 @@ on:
- foxy
schedule:
# Run every morning to detect flakiness and broken dependencies
- cron: '08 18 * * *'
- cron: '03 1 * * *'

jobs:
binary:
uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml
with:
ros_distro: foxy
ros_repo: main
upstream_workspace: ros2_controllers-not-released.foxy.repos
ref_for_scheduled_build: foxy
26 changes: 26 additions & 0 deletions .github/workflows/foxy-binary-build-testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Foxy Binary Build - testing
# author: Denis Štogl <denis@stoglrobotics.de>
# description: 'Build & test all dependencies from released (binary) packages.'

on:
workflow_dispatch:
branches:
- foxy
pull_request:
branches:
- foxy
push:
branches:
- foxy
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: foxy
ros_repo: testing
upstream_workspace: ros2_controllers-not-released.foxy.repos
ref_for_scheduled_build: foxy
33 changes: 33 additions & 0 deletions .github/workflows/foxy-rhel-binary-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Foxy RHEL Binary Build
on:
workflow_dispatch:
branches:
- foxy
pull_request:
branches:
- foxy
push:
branches:
- foxy
schedule:
# Run every day to detect flakiness and broken dependencies
- cron: '03 1 * * *'


jobs:
foxy_rhel_binary:
name: Foxy RHEL binary build
runs-on: ubuntu-latest
env:
ROS_DISTRO: foxy
container: jaronl/ros:foxy-alma
steps:
- uses: actions/checkout@v3
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
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
name: Foxy Semi-Binary Build
# Build & test that compiles the main dependencies from source.
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 @@ -10,12 +13,13 @@ on:
- foxy
schedule:
# Run every morning to detect flakiness and broken dependencies
- cron: '13 18 * * *'
- cron: '33 1 * * *'

jobs:
semi_binary:
uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml
with:
ros_distro: foxy
ros_repo: main
upstream_workspace: ros2_controllers.foxy.repos
ref_for_scheduled_build: foxy
25 changes: 25 additions & 0 deletions .github/workflows/foxy-semi-binary-build-testing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Foxy Semi-Binary Build - testing
# description: 'Build & test that compiles the main dependencies from source.'

on:
workflow_dispatch:
branches:
- foxy
pull_request:
branches:
- foxy
push:
branches:
- foxy
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: foxy
ros_repo: testing
upstream_workspace: ros2_controllers.foxy.repos
ref_for_scheduled_build: foxy
26 changes: 14 additions & 12 deletions .github/workflows/galactic-abi-compatibility.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
name: ABI Compatibility Check
name: Galactic - ABI Compatibility Check
on:
workflow_dispatch:
branches:
- galactic
pull_request:
branches:
- galactic

jobs:
# TODO(andyz): disabled because it started failing at the transition to Humble
# abi_check:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# - uses: ros-industrial/industrial_ci@master
# env:
# ROS_DISTRO: galactic
# ROS_REPO: main
# ABICHECK_URL: github:${{ github.repository }}#${{ github.base_ref }}
# NOT_TEST_BUILD: true
abi_check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ros-industrial/industrial_ci@master
env:
ROS_DISTRO: galactic
ROS_REPO: main
ABICHECK_URL: github:${{ github.repository }}#${{ github.base_ref }}
NOT_TEST_BUILD: true
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
name: Galactic Binary Build
# Build & test all dependencies from released (binary) packages.'
name: Galactic Binary Build - main
# author: Denis Štogl <denis@stoglrobotics.de>
# description: 'Build & test all dependencies from released (binary) packages.'

on:
workflow_dispatch:
branches:
- galactic
pull_request:
branches:
- galactic
Expand All @@ -10,12 +14,13 @@ on:
- galactic
schedule:
# Run every morning to detect flakiness and broken dependencies
- cron: '08 18 * * *'
- cron: '03 1 * * *'

jobs:
binary:
uses: ./.github/workflows/reusable-industrial-ci-with-cache.yml
with:
ros_distro: galactic
ros_repo: main
upstream_workspace: ros2_controllers-not-released.galactic.repos
ref_for_scheduled_build: galactic
Loading