Skip to content

Commit

Permalink
Merge pull request #325 from vortexntnu/feature/containerization
Browse files Browse the repository at this point in the history
Feature/containerization
  • Loading branch information
chrstrom authored May 12, 2022
2 parents 938d89a + 79a7b1b commit e04f237
Show file tree
Hide file tree
Showing 271 changed files with 5,977 additions and 54,567 deletions.
137 changes: 137 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
---
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignConsecutiveMacros: false
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Right
AlignOperands: true
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortLambdasOnASingleLine: All
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: MultiLine
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Attach
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 80
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IncludeBlocks: Preserve
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
SortPriority: 0
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
Priority: 3
SortPriority: 0
- Regex: '.*'
Priority: 1
SortPriority: 0
IncludeIsMainRegex: '(Test)?$'
IncludeIsMainSourceRegex: ''
IndentCaseLabels: false
IndentGotoLabels: true
IndentPPDirectives: None
IndentWidth: 2
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpaceBeforeSquareBrackets: false
Standard: Latest
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 8
UseCRLF: false
UseTab: Never
...

56 changes: 0 additions & 56 deletions .github/workflows/ROS_build.yml

This file was deleted.

19 changes: 19 additions & 0 deletions .github/workflows/black-format-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: black-format check
on: [push]
jobs:
linter_name:
name: runner / black formatter
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2

- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: 3.8

- name: Install deps
run: pip install black

- name: Run Python black formatting check
run: python3 -m black . --check --diff
16 changes: 16 additions & 0 deletions .github/workflows/clang-format-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
name: clang-format check

on: [ push ]

jobs:
formatting-check:
name: C/C++ LLVM formatting check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run clang-format style check for C/C++ packages
uses: jidicula/clang-format-action@v4.5.0
with:
clang-format-version: '12'
check-path: '.'
fallback-style: 'llvm' # for when the .clang-format file does not exist
41 changes: 41 additions & 0 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Publish Docker image to ghcr

on:
push:
branches: [ development ]

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
build-and-push-image:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}

- name: Build and push Docker image
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
24 changes: 24 additions & 0 deletions .github/workflows/ros-build-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: ROS build check

on:
push:
branches: [ development ]
pull_request:
branches: [ development ]

defaults:
run:
shell: bash

jobs:
build-and-test-run:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v1

- name: Build the Docker image
run: docker build . --file Dockerfile --tag auv:ci-build
# Note that the Dockerfile contains a RUN that builds the catkin workspace. Running will however not work due to a cross-dep with another repo
# For this reason, the image is also not uploaded to the registry
60 changes: 60 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
FROM ros:noetic

ARG distro=noetic
ENV DEBIAN_FRONTEND=noninteractive
SHELL ["/bin/bash", "-c"]

# ROS package dependencies
RUN apt update && \
apt install -y --no-install-recommends \
apt-utils \
net-tools \
tcpdump \
nano \
git \
ros-$distro-roslint \
ros-$distro-move-base-msgs \
ros-$distro-tf \
ros-$distro-tf2 \
ros-$distro-eigen-conversions \
ros-$distro-joy \
ros-$distro-tf2-geometry-msgs \
ros-$distro-pcl-ros \
ros-$distro-rviz \
ros-$distro-rosbridge-server \
ros-$distro-message-to-tf \
ros-$distro-geographic-msgs \
ros-$distro-move-base \
ros-$distro-smach-ros \
ros-$distro-tf-conversions \
python3-osrf-pycommon \
python3-openpyxl \
python3-yaml \
python3-pip \
python3-wheel \
python3-catkin-tools \
python3-vcstool \
python3-pandas \
python3-scipy \
libgeographic-dev \
libeigen3-dev \
libglfw3-dev \
libglew-dev \
libjsoncpp-dev \
libtclap-dev \
protobuf-compiler

RUN pip install \
rospkg \
pyquaternion \
quadprog \
sklearn \
enum34

COPY . /vortex_ws/src/Vortex-AUV
RUN cd /vortex_ws/src && git clone https://github.com/vortexntnu/robot_localization
RUN source /opt/ros/$distro/setup.bash && cd /vortex_ws && catkin build

COPY ./entrypoint.sh /

ENTRYPOINT ["/entrypoint.sh"]
Loading

0 comments on commit e04f237

Please sign in to comment.