-
Notifications
You must be signed in to change notification settings - Fork 46
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #29 from PickNikRobotics/setup-ci-with-script
ci: setup CI using script
- Loading branch information
Showing
47 changed files
with
1,164 additions
and
366 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,75 +1,20 @@ | ||
--- | ||
BasedOnStyle: Google | ||
ColumnLimit: 120 | ||
MaxEmptyLinesToKeep: 1 | ||
SortIncludes: false | ||
Language: Cpp | ||
BasedOnStyle: Google | ||
|
||
Standard: Auto | ||
IndentWidth: 2 | ||
TabWidth: 2 | ||
UseTab: Never | ||
AccessModifierOffset: -2 | ||
ConstructorInitializerIndentWidth: 2 | ||
NamespaceIndentation: None | ||
ContinuationIndentWidth: 4 | ||
IndentCaseLabels: true | ||
IndentFunctionDeclarationAfterType: false | ||
|
||
AlignEscapedNewlinesLeft: false | ||
AlignTrailingComments: true | ||
|
||
AllowAllParametersOfDeclarationOnNextLine: false | ||
ExperimentalAutoDetectBinPacking: false | ||
ObjCSpaceBeforeProtocolList: true | ||
Cpp11BracedListStyle: false | ||
|
||
AllowShortBlocksOnASingleLine: true | ||
AllowShortIfStatementsOnASingleLine: false | ||
AllowShortLoopsOnASingleLine: false | ||
AllowShortFunctionsOnASingleLine: None | ||
AllowShortCaseLabelsOnASingleLine: false | ||
|
||
AlwaysBreakTemplateDeclarations: true | ||
AlwaysBreakBeforeMultilineStrings: false | ||
BreakBeforeBinaryOperators: false | ||
BreakBeforeTernaryOperators: false | ||
BreakConstructorInitializersBeforeComma: true | ||
|
||
BinPackParameters: true | ||
ConstructorInitializerAllOnOneLineOrOnePerLine: true | ||
DerivePointerBinding: false | ||
PointerBindsToType: true | ||
|
||
PenaltyExcessCharacter: 50 | ||
PenaltyBreakBeforeFirstCallParameter: 30 | ||
PenaltyBreakComment: 1000 | ||
PenaltyBreakFirstLessLess: 10 | ||
PenaltyBreakString: 100 | ||
PenaltyReturnTypeOnItsOwnLine: 50 | ||
|
||
SpacesBeforeTrailingComments: 2 | ||
SpacesInParentheses: false | ||
SpacesInAngles: false | ||
SpaceInEmptyParentheses: false | ||
SpacesInCStyleCastParentheses: false | ||
SpaceAfterCStyleCast: false | ||
SpaceAfterControlStatementKeyword: true | ||
SpaceBeforeAssignmentOperators: true | ||
|
||
# Configure each individual brace in BraceWrapping | ||
BreakBeforeBraces: Custom | ||
|
||
# Control of individual brace wrapping cases | ||
AlignAfterOpenBracket: AlwaysBreak | ||
BraceWrapping: | ||
AfterCaseLabel: true | ||
AfterClass: true | ||
AfterControlStatement: true | ||
AfterEnum: true | ||
AfterFunction: true | ||
AfterNamespace: true | ||
AfterStruct: true | ||
AfterUnion: true | ||
BeforeCatch: true | ||
BeforeElse: true | ||
IndentBraces: false | ||
AfterClass: true | ||
AfterFunction: true | ||
AfterNamespace: true | ||
AfterStruct: true | ||
AfterEnum: true | ||
BreakBeforeBraces: Custom | ||
ColumnLimit: 100 | ||
ConstructorInitializerIndentWidth: 0 | ||
ContinuationIndentWidth: 2 | ||
DerivePointerAlignment: false | ||
PointerAlignment: Middle | ||
ReflowComments: false | ||
... |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
[flake8] | ||
max-line-length = 88 | ||
|
||
# Report all errors starting with E, F, W or C - or Bugbear's B590 rule, which is a "pragmatic" version of E501 (line too long) | ||
select = E,F,W,C,B590 | ||
|
||
# Ignore W503 - Line break occurred before a binary operator - because this error is introduced by Black formatter. | ||
# Ignore E203 - whitespace before ':' - because Black includes spaces in formatting slice expressions. | ||
# Ignore E501 - line too long - in favor of B590, which is more forgiving of long strings and comments that would be silly to break up. | ||
extend-ignore = W503, E203, E501 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
|
||
ROS2 Distro | Branch | Build status | Documentation | Released packages | ||
:---------: | :----: | :----------: | :-----------: | :---------------: | ||
**Rolling** | [`rolling`](https://github.com/PickNikRobotics/ros2_robotiq_gripper/tree/rolling) | [![Rolling Binary Build](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/rolling-binary-build-main.yml/badge.svg?branch=main)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/rolling-binary-build-main.yml?branch=main) <br /> [![Rolling Binary Build](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/rolling-binary-build-testing.yml/badge.svg?branch=main)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/rolling-binary-build-testing.yml?branch=main) <br /> [![Rolling Semi-Binary Build](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/rolling-semi-binary-build-main.yml/badge.svg?branch=main)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/rolling-semi-binary-build-main.yml?branch=main) <br /> [![Rolling Semi-Binary Build](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/rolling-semi-binary-build-testing.yml/badge.svg?branch=main)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/rolling-semi-binary-build-testing.yml?branch=main) <br /> [![Rolling Source Build](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/rolling-source-build.yml/badge.svg?branch=main)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/rolling-source-build.yml?branch=main) | [![Doxygen Doc Deployment](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/doxygen-deploy.yml/badge.svg)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/doxygen-deploy.yml) <br /> [Generated Doc](https://PickNikRobotics.github.io/ros2_robotiq_gripper_Documentation/rolling/html/index.html) | [ros2_robotiq_gripper](https://index.ros.org/p/ros2_robotiq_gripper/#rolling) | ||
|
||
## Build status | ||
|
||
|
||
### 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. | ||
|
||
ROS2 Distro | Branch | Build status | Documentation | Released packages | ||
:---------: | :----: | :----------: | :-----------: | :---------------: | ||
**Humble** | [`humble`](https://github.com/PickNikRobotics/ros2_robotiq_gripper/tree/humble) | [![Humble Binary Build](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/humble-binary-build-main.yml/badge.svg?branch=main)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/humble-binary-build-main.yml?branch=main) <br /> [![Humble Binary Build](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/humble-binary-build-testing.yml/badge.svg?branch=main)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/humble-binary-build-testing.yml?branch=main) <br /> [![Humble Semi-Binary Build](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/humble-semi-binary-build-main.yml/badge.svg?branch=main)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/humble-semi-binary-build-main.yml?branch=main) <br /> [![Humble Semi-Binary Build](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/humble-semi-binary-build-testing.yml/badge.svg?branch=main)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/humble-semi-binary-build-testing.yml?branch=main) <br /> [![Humble Source Build](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/humble-source-build.yml/badge.svg?branch=main)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/humble-source-build.yml?branch=main) | [![Doxygen Doc Deployment](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/doxygen-deploy.yml/badge.svg)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/doxygen-deploy.yml) <br /> [Generated Doc](https://PickNikRobotics.github.io/ros2_robotiq_gripper_Documentation/humble/html/index.html) | [ros2_robotiq_gripper](https://index.ros.org/p/ros2_robotiq_gripper/#humble) | ||
|
||
## Build status | ||
|
||
|
||
### 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. | ||
|
||
ROS2 Distro | Branch | Build status | Documentation | Released packages | ||
:---------: | :----: | :----------: | :-----------: | :---------------: | ||
**Iron** | [`iron`](https://github.com/PickNikRobotics/ros2_robotiq_gripper/tree/iron) | [![Iron Binary Build](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/iron-binary-build-main.yml/badge.svg?branch=main)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/iron-binary-build-main.yml?branch=main) <br /> [![Iron Binary Build](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/iron-binary-build-testing.yml/badge.svg?branch=main)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/iron-binary-build-testing.yml?branch=main) <br /> [![Iron Semi-Binary Build](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/iron-semi-binary-build-main.yml/badge.svg?branch=main)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/iron-semi-binary-build-main.yml?branch=main) <br /> [![Iron Semi-Binary Build](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/iron-semi-binary-build-testing.yml/badge.svg?branch=main)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/iron-semi-binary-build-testing.yml?branch=main) <br /> [![Iron Source Build](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/iron-source-build.yml/badge.svg?branch=main)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/iron-source-build.yml?branch=main) | [![Doxygen Doc Deployment](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/doxygen-deploy.yml/badge.svg)](https://github.com/PickNikRobotics/ros2_robotiq_gripper/actions/workflows/doxygen-deploy.yml) <br /> [Generated Doc](https://PickNikRobotics.github.io/ros2_robotiq_gripper_Documentation/iron/html/index.html) | [ros2_robotiq_gripper](https://index.ros.org/p/ros2_robotiq_gripper/#iron) | ||
|
||
## Build status | ||
|
||
|
||
### 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. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
name: Coverage Build | ||
on: | ||
workflow_dispatch: | ||
branches: | ||
- main | ||
pull_request: | ||
branches: | ||
- main | ||
|
||
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: | ||
robotiq_driver | ||
robotiq_controllers | ||
robotiq_description | ||
|
||
vcs-repo-file-url: | | ||
https://raw.githubusercontent.com/${{ github.repository }}/${{ github.sha }}/ros2_robotiq_gripper-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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# 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: | ||
push: | ||
branches: | ||
- main | ||
|
||
jobs: | ||
pre-commit: | ||
name: Format | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/setup-python@v4.4.0 | ||
with: | ||
python-version: '3.10' | ||
- name: Install system hooks | ||
run: sudo apt install -qq clang-format-14 cppcheck | ||
- uses: pre-commit/action@v3.0.0 | ||
with: | ||
extra_args: --all-files --hook-stage manual |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
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: | ||
robotiq_driver | ||
robotiq_controllers | ||
robotiq_description | ||
|
||
|
||
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: | ||
robotiq_driver | ||
robotiq_controllers | ||
robotiq_description | ||
ros2_robotiq_gripper |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: | ||
- main | ||
pull_request: | ||
branches: | ||
- main | ||
push: | ||
branches: | ||
- main | ||
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_robotiq_gripper-not-released.humble.repos | ||
ref_for_scheduled_build: main |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: | ||
- main | ||
pull_request: | ||
branches: | ||
- main | ||
push: | ||
branches: | ||
- main | ||
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_robotiq_gripper-not-released.humble.repos | ||
ref_for_scheduled_build: main |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: | ||
- main | ||
pull_request: | ||
branches: | ||
- main | ||
push: | ||
branches: | ||
- main | ||
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_robotiq_gripper.humble.repos | ||
ref_for_scheduled_build: main |
Oops, something went wrong.