Skip to content
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
22 changes: 22 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

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

### Explanation of different build types

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

[Detailed build status](.github/workflows/README.md)

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.
49 changes: 49 additions & 0 deletions .github/workflows/ci-coverage-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
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:
kinematics_interface_kdl
kinematics_interface

vcs-repo-file-url: |
https://raw.githubusercontent.com/${{ github.repository }}/${{ github.sha }}/kinematics_interface-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
23 changes: 23 additions & 0 deletions .github/workflows/ci-format.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# This is a format job. Pre-commit has a first-party GitHub action, so we use
# that: https://github.com/pre-commit/action

name: Format

on:
workflow_dispatch:
pull_request:

jobs:
pre-commit:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v2
with:
python-version: 3.9.7
- name: Install system hooks
run: sudo apt install -qq clang-format-12 cppcheck
- uses: pre-commit/action@v2.0.3
with:
extra_args: --all-files --hook-stage manual
41 changes: 41 additions & 0 deletions .github/workflows/ci-ros-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: ROS Lint
on:
pull_request:

jobs:
ament_lint:
name: ament_${{ matrix.linter }}
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
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: rolling
linter: ${{ matrix.linter }}
package-name:
kinematics_interface_kdl


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: rolling
linter: cpplint
arguments: "--linelength=100 --filter=-whitespace/newline"
package-name:
kinematics_interface_kdl
kinematics_interface
20 changes: 20 additions & 0 deletions .github/workflows/humble-abi-compatibility.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Humble - ABI Compatibility Check
on:
workflow_dispatch:
branches:
- master
pull_request:
branches:
- master

jobs:
abi_check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ros-industrial/industrial_ci@master
env:
ROS_DISTRO: humble
ROS_REPO: main
ABICHECK_URL: github:${{ github.repository }}#${{ github.base_ref }}
NOT_TEST_BUILD: true
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 <denis@stoglrobotics.de>
# 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: kinematics_interface-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 <denis@stoglrobotics.de>
# 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: kinematics_interface-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/kinematics_interface
- run: |
rosdep update
rosdep install -iy --from-path src/kinematics_interface
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: kinematics_interface.humble.repos
ref_for_scheduled_build: master
25 changes: 25 additions & 0 deletions .github/workflows/humble-semi-binary-build-testing.yml
Original file line number Diff line number Diff line change
@@ -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: kinematics_interface.humble.repos
ref_for_scheduled_build: master
19 changes: 19 additions & 0 deletions .github/workflows/humble-source-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: Humble Source Build
on:
workflow_dispatch:
branches:
- master
push:
branches:
- master
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: humble
ref: master
ros2_repo_branch: master-humble
39 changes: 39 additions & 0 deletions .github/workflows/prerelease-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Pre-Release Check

on:
workflow_dispatch:
inputs:
ros_distro:
description: 'Chose ROS distribution'
required: true
default: 'rolling'
type: choice
options:
- foxy
- galactic
- humble
- rolling
branch:
description: 'Chose branch for distro'
required: true
default: 'master'
type: choice
options:
- foxy
- galactic
- humble
- master

jobs:
pre_release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
ref: ${{ github.event.inputs.branch }}
- name: industrial_ci
uses: ros-industrial/industrial_ci@master
env:
ROS_DISTRO: ${{ github.event.inputs.ros_distro }}
PRERELEASE: true
BASEDIR: ${{ github.workspace }}/.work
Loading