Skip to content

Commit

Permalink
Merge pull request #2032 from usdot-fhwa-stol/release/isetta
Browse files Browse the repository at this point in the history
Merge release Isetta
  • Loading branch information
codygarver authored Feb 10, 2023
2 parents c3b6766 + 60ae288 commit 8039945
Show file tree
Hide file tree
Showing 489 changed files with 223,170 additions and 22,695 deletions.
30 changes: 19 additions & 11 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@ jobs:
# Pull docker image from docker hub
# XTERM used for better catkin_make output
docker:
- image: usdotfhwastol/autoware.ai:carma-system-4.2.0
- image: usdotfhwastol/autoware.ai:carma-system-4.3.0
user: carma
environment:
TERM: xterm
INIT_ENV: /home/carma/.base-image/init-env.sh
ROS_2_ENV: /opt/autoware.ai/ros/install_ros2/setup.bash
resource_class: xlarge
resource_class: xlarge
# Set working directory
working_directory: "/opt/carma/"
# Pull code and execute tests
Expand All @@ -50,29 +50,32 @@ jobs:
# Checkout PR branch
- checkout:
path: src/CARMAPlatform
- run:
- setup_remote_docker:
docker_layer_caching: true # DLC will explicitly cache layers here and try to avoid rebuilding.
- run:
name: Pull Deps
command: |
source ${INIT_ENV}
./src/CARMAPlatform/docker/checkout.bash -r ${PWD}
cd ${PWD}
sudo apt-get update
- run:
name: Build CARMA ROS 1
command: |
source ${INIT_ENV}
export ROS_PARALLEL_JOBS='-j4 -l4' # Try to reduce memory consumption on build
build-wrapper-linux-x86-64 --out-dir /opt/carma/bw-output bash make_with_coverage.bash -m -e /opt/carma/ -o ./coverage_reports/gcov
make_with_coverage.bash -m -e /opt/carma/ -o ./coverage_reports/gcov
- run:
name: Run C++ Tests ROS 1
command: |
source ${INIT_ENV}
export ROS_PARALLEL_JOBS='-j4 -l4' # Try to reduce memory consumption on build
bash make_with_coverage.bash -t -e /opt/carma/ -o ./coverage_reports/gcov
make_with_coverage.bash -t -e /opt/carma/ -o ./coverage_reports/gcov
- run:
name: Backup ROS1 compile_commands.json
command: |
mv /opt/carma/build/compile_commands.json /opt/carma/compile_commands.ros1.json
- run:
name: Cleanup before ROS 2 build
# Clear the build and install folders before building ROS 2
# but leave the build-wrapper output intact
command: |
rm -rf /opt/carma/install
rm -rf /opt/carma/build
Expand All @@ -81,14 +84,19 @@ jobs:
command: |
source ${INIT_ENV}
source ${ROS_2_ENV}
build-wrapper-linux-x86-64 --out-dir /opt/carma/bw-output bash make_with_coverage.bash -m -e /opt/carma/ -o ./coverage_reports/gcov
export ROS_PARALLEL_JOBS='-j4 -l4' # Try to reduce memory consumption on build
make_with_coverage.bash -m -e /opt/carma/ -o ./coverage_reports/gcov
- run:
name: Run C++ Tests ROS 2
command: |
source ${INIT_ENV}
source ${ROS_2_ENV}
bash make_with_coverage.bash -t -e /opt/carma/ -o ./coverage_reports/gcov
make_with_coverage.bash -t -e /opt/carma/ -o ./coverage_reports/gcov
- run:
name: Combine ROS1 and ROS2 compile_commands.json files
command: |
mv /opt/carma/build/compile_commands.json /opt/carma/compile_commands.ros2.json
jq -s add /opt/carma/compile_commands.ros1.json /opt/carma/compile_commands.ros2.json > /opt/carma/build/compile_commands.json
# Run SonarCloud analysis
# PR Branches and number extracted from Circle variables and github api
# Circle CI seems to make a change to the base branch, so we must fetch --force to ensure correct git file change stats
Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Docker build

on:
push:
branches-ignore:
- "develop"
- "master"
- "release/*"
pull_request:
types: [opened, synchronize, reopened]

jobs:
docker:
uses: usdot-fhwa-stol/actions/.github/workflows/docker.yml@main
16 changes: 16 additions & 0 deletions .github/workflows/dockerhub.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@


name: Docker Hub build

on:
push:
branches:
- "develop"
- "master"

jobs:
dockerhub:
uses: usdot-fhwa-stol/actions/.github/workflows/dockerhub.yml@main
secrets:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_TOKEN: ${{ secrets.DOCKERHUB_TOKEN }}
59 changes: 59 additions & 0 deletions .github/workflows/doxygen.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# Copyright (C) 2018-2022 LEIDOS.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.

# Configuration file for GitHub Actions
# CI will report failure if any executed command returns and error status
# Operations performed are as follows
# Build source code Documentation
# Run Doxygen Action
# Deploy documentation static webpage to gh-pages

name: Doxygen Action

# Controls when the action will run. Triggers the workflow on push or pull Request events but only for the develop branch
on:
push:
branches: [ develop ]

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Install graphvix to support Graph visualization and representing structural information as diagrams of abstract graphs and networks
- name: Install graphviz
run: sudo apt install graphviz && sudo dot -c
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
# Doxygen action for documentation of carma-platform source code by using mattnotmitt github actions workflow
- name: Doxygen Action
uses: mattnotmitt/[email protected]
with:
# Path to Doxyfile
doxyfile-path: "./Doxyfile" # default is ./Doxyfile
# Working directory
working-directory: "." # default is .
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
external_repository: usdot-fhwa-stol/documentation
publish_branch: gh-pages
# default: gh-pages
publish_dir: ./html/
destination_dir: ${{ github.event.repository.name }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ myClock.bin
/*.tar.gz
*.class
**/bin
**/__pycache__

# ignore build directories
build
Expand Down
73 changes: 59 additions & 14 deletions .sonarqube/sonar-scanner.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,21 @@
sonar.scanner.force-deprecated-java-version-grace-period=true
sonar.projectKey=usdot-fhwa-stol_CARMAPlatform
sonar.organization=usdot-fhwa-stol
sonar.cfamily.build-wrapper-output=/opt/carma/bw-output
sonar.cfamily.cache.enabled=false
sonar.cfamily.compile-commands=/opt/carma/build/compile_commands.json
sonar.cfamily.threads=4
sonar.host.url=https://sonarcloud.io
sonar.sources=src/main
sonar.tests=src/test
sonar.cfamily.gcov.reportsPath=/opt/carma/coverage_reports/gcov
sonar.coverageReportPaths=/opt/carma/coverage_reports/gcov/coverage.xml
# Set Git as SCM sensor
sonar.scm.disabled=false
sonar.scm.enabled=true
sonar.scm.provider=git
sonar.sourceEncoding=UTF-8
sonar.c.file.suffixes=-
onar.cpp.file.suffixes=.cpp,.h,.tpp

# Modules, C++ packages
sonar.modules= bsm_generator, \
Expand All @@ -45,7 +49,7 @@ sonar.modules= bsm_generator, \
carma_wm_ctrl, \
mpc_follower_wrapper, \
roadway_objects, \
platooning_strategic, \
platooning_strategic_IHP, \
mock_lightbar_driver, \
platooning_tactical_plugin, \
port_drayage_plugin, \
Expand All @@ -58,12 +62,10 @@ sonar.modules= bsm_generator, \
carma_record, \
traffic_incident_parser, \
motion_computation, \
unobstructed_lanechange, \
yield_plugin, \
basic_autonomy, \
cooperative_lanechange,\
mobilitypath_visualizer, \
wz_strategic_plugin, \
sci_strategic_plugin, \
stop_controlled_intersection_tactical_plugin, \
lci_strategic_plugin, \
Expand All @@ -74,7 +76,8 @@ sonar.modules= bsm_generator, \
points_map_filter, \
light_controlled_intersection_tactical_plugin, \
platoon_control_ihp, \
carma_guidance_plugins
carma_guidance_plugins, \
carma_cloud_client

guidance.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/guidance
bsm_generator.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/bsm_generator
Expand All @@ -92,7 +95,7 @@ carma_wm_ctrl.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/ca
mpc_follower_wrapper.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/mpc_follower_wrapper
truck_inspection_client.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/truck_inspection_client
roadway_objects.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/roadway_objects
platooning_strategic.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/platooning_strategic
platooning_strategic_IHP.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/platooning_strategic_IHP
platooning_tactical_plugin.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/platooning_tactical_plugin
platoon_control_plugin.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/platooning_control
mobilitypath_publisher.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/mobilitypath_publisher
Expand All @@ -105,12 +108,10 @@ stop_and_wait_plugin.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/stop_an
carma_record.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/carma_record
traffic_incident_parser.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/traffic_incident_parser
motion_computation.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/motion_computation
unobstructed_lanechange.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/unobstructed_lanechange
cooperative_lanechange.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/cooperative_lanechange
yield_plugin.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/yield_plugin
basic_autonomy.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/basic_autonomy
mobilitypath_visualizer.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/mobilitypath_visualizer
wz_strategic_plugin.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/wz_strategic_plugin
sci_strategic_plugin.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/sci_strategic_plugin
stop_controlled_intersection_tactical_plugin.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/stop_controlled_intersection_tactical_plugin
system_controller.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/system_controller
Expand All @@ -122,55 +123,100 @@ light_controlled_intersection_tactical_plugin.sonar.projectBaseDir = /opt/carma/
platoon_control_ihp.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/platooning_control_ihp
lci_strategic_plugin.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/lci_strategic_plugin
carma_guidance_plugins.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/carma_guidance_plugins
carma_cloud_client.sonar.projectBaseDir = /opt/carma/src/CARMAPlatform/carma_cloud_client

# C++ Package differences
# Sources
guidance.sonar.sources = src
guidance.sonar.exclusions =test/**
bsm_generator.sonar.sources = src
bsm_generator.sonar.exclusions =test/**
gnss_to_map_convertor.sonar.sources = src
gnss_to_map_convertor.sonar.exclusions =test/**
pure_pursuit_wrapper.sonar.sources = src
pure_pursuit_wrapper.sonar.exclusions =test/**
route.sonar.sources = src
route.sonar.exclusions =test/**
route_following_plugin.sonar.sources = src
route_following_plugin.sonar.exclusions =test/**
trajectory_executor.sonar.sources = src
trajectory_executor.sonar.exclusions =test/**
localization_manager.sonar.sources = src
localization_manager.sonar.exclusions =test/**
health_monitor.sonar.sources = src
health_monitor.sonar.exclusions =test/**
arbitrator.sonar.sources = src
arbitrator.sonar.exclusions =test/**
plan_delegator.sonar.sources = src
plan_delegator.sonar.exclusions =test/**
carma_wm.sonar.sources = src
carma_wm.sonar.exclusions =test/**
carma_wm_ctrl.sonar.sources = src
carma_wm_ctrl.sonar.exclusions =test/**
mpc_follower_wrapper.sonar.sources = src
mpc_follower_wrapper.sonar.exclusions =test/**
truck_inspection_client.sonar.sources = src
truck_inspection_client.sonar.exclusions =test/**
roadway_objects.sonar.sources = src
platooning_strategic.sonar.sources = src
roadway_objects.sonar.exclusions =test/**
platooning_strategic_IHP.sonar.sources = src
platooning_strategic_IHP.sonar.exclusions =test/**
platooning_tactical_plugin.sonar.sources = src
platooning_tactical_plugin.sonar.exclusions =test/**
platoon_control_plugin.sonar.sources = src
platoon_control_plugin.sonar.exclusions =test/**
mobilitypath_publisher.sonar.sources = src
mobilitypath_publisher.sonar.exclusions =test/**
mock_lightbar_driver.sonar.sources = src
mock_lightbar_driver.sonar.exclusions =test/**
port_drayage_plugin.sonar.sources = src
port_drayage_plugin.sonar.exclusions =test/**
rosbag_mock_drivers.sonar.sources = src
rosbag_mock_drivers.sonar.exclusions =test/**
lightbar_manager.sonar.sources = src
lightbar_manager.sonar.exclusions =test/**
inlanecruising_plugin.sonar.sources = src
inlanecruising_plugin.sonar.exclusions =test/**
stop_and_wait_plugin.sonar.sources = src
stop_and_wait_plugin.sonar.exclusions =test/**
carma_record.sonar.sources = src
carma_record.sonar.exclusions =test/**
traffic_incident_parser.sonar.sources = src
traffic_incident_parser.sonar.exclusions =test/**
motion_computation.sonar.sources = src
unobstructed_lanechange.sonar.sources = src
motion_computation.sonar.exclusions =test/**
cooperative_lanechange.sonar.sources = src
cooperative_lanechange.sonar.exclusions =test/**
yield_plugin.sonar.sources = src
yield_plugin.sonar.exclusions =test/**
basic_autonomy.sonar.sources = src
basic_autonomy.sonar.exclusions =test/**
mobilitypath_visualizer.sonar.sources = src
wz_strategic_plugin.sonar.sources = src
mobilitypath_visualizer.sonar.exclusions =test/**
sci_strategic_plugin.sonar.sources = src
sci_strategic_plugin.sonar.exclusions =test/**
stop_controlled_intersection_tactical_plugin.sonar.sources = src
stop_controlled_intersection_tactical_plugin.sonar.exclusions =test/**
system_controller.sonar.sources = src
system_controller.sonar.exclusions =test/**
subsystem_controllers.sonar.sources = src
subsystem_controllers.sonar.exclusions =test/**
frame_transformer.sonar.sources = src
frame_transformer.sonar.exclusions =test/**
object_visualizer.sonar.sources = src
object_visualizer.sonar.exclusions =test/**
points_map_filter.sonar.sources = src
points_map_filter.sonar.exclusions =test/**
light_controlled_intersection_tactical_plugin.sonar.sources = src
light_controlled_intersection_tactical_plugin.sonar.exclusions =test/**
platoon_control_ihp.sonar.sources = src
platoon_control_ihp.sonar.exclusions =test/**
lci_strategic_plugin.sonar.sources = src
lci_strategic_plugin.sonar.exclusions =test/**
carma_guidance_plugins.sonar.sources = src
carma_guidance_plugins.sonar.exclusions =test/**
carma_cloud_client.sonar.sources = src
carma_cloud_client.sonar.exclusions =test/**

# Tests
# Note: For C++ setting this field does not cause test analysis to occur. It only allows the test source code to be evaluated.
Expand All @@ -188,7 +234,7 @@ carma_wm_ctrl.sonar.tests = test
mpc_follower_wrapper.sonar.tests = test
truck_inspection_client.sonar.tests = test
roadway_objects.sonar.tests = test
platooning_strategic.sonar.tests = test
platooning_strategic_IHP.sonar.tests = test
platooning_tactical_plugin.sonar.tests = test
platoon_control_plugin.sonar.tests = test
mobilitypath_publisher.sonar.tests = test
Expand All @@ -200,12 +246,10 @@ inlanecruising_plugin.sonar.tests = test
stop_and_wait_plugin.sonar.tests = test
traffic_incident_parser.sonar.tests = test
motion_computation.sonar.tests = test
unobstructed_lanechange.sonar.tests = test
cooperative_lanechange.sonar.tests = test
yield_plugin.sonar.tests = test
basic_autonomy.sonar.tests = test
mobilitypath_visualizer.sonar.tests = test
wz_strategic_plugin.sonar.tests = test
sci_strategic_plugin.sonar.tests = test
platoon_control_ihp.sonar.tests = test

Expand All @@ -221,3 +265,4 @@ platoon_control_ihp_plugin.sonar.tests = test
lci_strategic_plugin.sonar.sources = src
lci_strategic_plugin.sonar.sources = test
carma_guidance_plugins.sonar.sources = test
carma_cloud_client.sonar.sources = test
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
# Stage 1 - Acquire the CARMA source as well as any extra packages
# /////////////////////////////////////////////////////////////////////////////

FROM usdotfhwastol/autoware.ai:carma-system-4.2.0 AS base-image
FROM usdotfhwastol/autoware.ai:carma-system-4.3.0 AS base-image

FROM base-image AS source-code

Expand Down
Loading

0 comments on commit 8039945

Please sign in to comment.