Skip to content

Commit

Permalink
Merge branch 'master' into feature/realtime-barrier
Browse files Browse the repository at this point in the history
  • Loading branch information
destogl authored Oct 1, 2022
2 parents 5607dfc + 27361fd commit c1a49d7
Show file tree
Hide file tree
Showing 48 changed files with 1,439 additions and 387 deletions.
20 changes: 20 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
Language: Cpp
BasedOnStyle: Google

AccessModifierOffset: -2
AlignAfterOpenBracket: AlwaysBreak
BreakBeforeBraces: Custom
BraceWrapping:
AfterClass: true
AfterFunction: true
AfterNamespace: true
AfterStruct: true
ColumnLimit: 100
ConstructorInitializerIndentWidth: 0
ContinuationIndentWidth: 2
DerivePointerAlignment: false
PointerAlignment: Middle
ReflowComments: false
IncludeBlocks: Preserve
...
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/realtime_tools/tree/rolling) | [![Rolling Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-binary-build-main.yml?branch=master) <br /> [![Rolling Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-binary-build-testing.yml?branch=master) <br /> [![Rolling Semi-Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-semi-binary-build-main.yml?branch=master) <br /> [![Rolling Semi-Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-semi-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-semi-binary-build-testing.yml?branch=master) <br /> [![Rolling Source Build](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/rolling-source-build.yml?branch=master) | | [realtime_tools](https://index.ros.org/p/realtime_tools/#rolling)
**Humble** | [`humble`](https://github.com/ros-controls/realtime_tools/tree/humble) | [![Humble Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-binary-build-main.yml?branch=master) <br /> [![Humble Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-binary-build-testing.yml?branch=master) <br /> [![Humble Semi-Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-semi-binary-build-main.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-semi-binary-build-main.yml?branch=master) <br /> [![Humble Semi-Binary Build](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-semi-binary-build-testing.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-semi-binary-build-testing.yml?branch=master) <br /> [![Humble Source Build](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-source-build.yml/badge.svg?branch=master)](https://github.com/ros-controls/realtime_tools/actions/workflows/humble-source-build.yml?branch=master) | | [realtime_tools](https://index.ros.org/p/realtime_tools/#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.
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/[email protected]
with:
required-ros-distributions: ${{ env.ROS_DISTRO }}
- uses: actions/checkout@v3
- uses: ros-tooling/[email protected]
with:
target-ros2-distro: ${{ env.ROS_DISTRO }}
import-token: ${{ secrets.GITHUB_TOKEN }}
# build all packages listed in the meta package
package-name:
realtime_tools

vcs-repo-file-url: |
https://raw.githubusercontent.com/${{ github.repository }}/${{ github.sha }}/realtime_tools-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/[email protected]
with:
file: ros_ws/lcov/total_coverage.info
flags: unittests
name: codecov-umbrella
- uses: actions/[email protected]
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/[email protected]
with:
extra_args: --all-files --hook-stage manual
57 changes: 57 additions & 0 deletions .github/workflows/ci-ros-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: ROS Lint
on:
pull_request:

jobs:
ament_lint:
name: ament_${{ matrix.linter }}
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
linter: [copyright, lint_cmake]
steps:
- uses: actions/checkout@v3
- uses: ros-tooling/[email protected]
- uses: ros-tooling/[email protected]
with:
distribution: rolling
linter: ${{ matrix.linter }}
package-name:
realtime_tools

ament_cpplint:
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: rolling
linter: cpplint
arguments: "--linelength=100 --filter=-whitespace/newline"
package-name:
realtime_tools

ament_cppcheck:
name: ament_${{ matrix.linter }}
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
linter: [cppcheck]
steps:
- uses: actions/checkout@v3
- uses: ros-tooling/[email protected]
- uses: ros-tooling/[email protected]
with:
distribution: rolling
linter: ${{ matrix.linter }}
arguments: "--language=c++"
package-name:
realtime_tools
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 <[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: realtime_tools-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: realtime_tools-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: ghcr.io/ros-controls/ros:${{ env.ROS_DISTRO }}-rhel
steps:
- uses: actions/checkout@v3
with:
path: src/realtime_tools
- run: |
rosdep update
rosdep install -iy --from-path src/realtime_tools
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: realtime_tools.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: realtime_tools.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: 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

0 comments on commit c1a49d7

Please sign in to comment.