Skip to content

CAR 6008 - Temporarily disable failing unit tests in carma-platform's CI #34

CAR 6008 - Temporarily disable failing unit tests in carma-platform's CI

CAR 6008 - Temporarily disable failing unit tests in carma-platform's CI #34

Workflow file for this run

# GitHub Actions triggers based on the PR's and each commits on develop and master
name: "CI: Run tests"
on:
pull_request:
types: [opened, synchronize, reopened]
push:
branches: [develop, master]
jobs:
build:
defaults:
run:
shell: bash
working-directory: "/opt/carma/"
# Specify the runner environment
runs-on: ubuntu-latest
# Set up a Docker container for the job
container:
image: usdotfhwastoldev/autoware.ai:develop
env:
INIT_ENV: "/home/carma/.base-image/init-env.sh"
ROS_2_ENV: "/opt/ros/foxy/setup.bash"
TERM: xterm
options: "--user root"
steps:
- name: Checkout ${{ github.event.repository.name }}
# Check out the repository code
uses: actions/checkout@v3.3.0
with:
fetch-depth: 0
path: src/${{ github.event.repository.name }}
- name: Move source code
# Move the source code to the desired location
run: mv $GITHUB_WORKSPACE/src /opt/carma/
- name: Checkout dependencies
# Checkout project dependencies
run: |
source "$INIT_ENV"
./src/${{ github.event.repository.name }}/docker/checkout.bash -r /opt/carma/
- name: Install external dependencies
# Install the multiple object tracking deps
run: sudo bash /opt/carma/src/multiple_object_tracking/scripts/install_dependencies.sh
- name: Build ROS1
# Build ROS1 packages
# The skipped ROS 1 packages here should match the ROS 1 packages that are skipped during the build in docker/install.sh
run: |
source "$INIT_ENV"
PACKAGES=$(find . -maxdepth 2 -type f -name package.xml | sed 's/\.\///' | cut -d/ -f1) # maxdepth 2 Limits the search of package.xml to current directory and one level of subdirectories beneath it. find will not search beyond two levels deep from the starting point. Without this option, find would search the starting directory and all subdirectories recursively.
sed -i 's/colcon build /colcon build --packages-skip novatel_oem7_msgs tracetools tracetools_test /' /home/carma/.ci-image/engineering_tools/code_coverage/make_with_coverage.bash
make_with_coverage.bash -m -e /opt/carma/ -o ./coverage_reports/gcov
- name: Run ROS1 C++ Tests
# Run ROS1 C++ tests
# The skipped ROS 1 packages here should match the ROS 1 packages that are skipped during the build in docker/install.sh"
run: |
source "$INIT_ENV"
sed -i 's/colcon test /colcon test --packages-skip novatel_oem7_msgs tracetools tracetools_test /' /home/carma/.ci-image/engineering_tools/code_coverage/make_with_coverage.bash
make_with_coverage.bash -t -e /opt/carma/ -o ./coverage_reports/gcov
- name: Backup ROS1 compile_commands.json
# Backup the ROS1 compile_commands.json file for sonarcloud
run: |
mv /opt/carma/build/compile_commands.json /opt/carma/compile_commands.ros1.json
- name: Cleanup before ROS 2 build
# Clear the build and install folders before building ROS 2
run: |
rm -rf /opt/carma/install
rm -rf /opt/carma/build
- name: Build ROS2
# Build ROS2 packages
run: |
source "$INIT_ENV"
source "$ROS_2_ENV"
source /opt/autoware.ai/ros/install_ros2/setup.bash
make_with_coverage.bash -m -e /opt/carma/ -o ./coverage_reports/gcov
- name: Run ROS2 C++ Tests
# Run ROS2 C++ tests
run: |
source "$INIT_ENV"
source "$ROS_2_ENV"
source /opt/autoware.ai/ros/install_ros2/setup.bash
make_with_coverage.bash -t -e /opt/carma/ -o ./coverage_reports/gcov
- name: Combine ROS1 and ROS2 compile_commands.json files
# Combine the ROS1 and ROS2 compile_commands.json files for sonarscan
run: |
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
- name: Run SonarScanner
# Run SonarScanner for code analysis
uses: usdot-fhwa-stol/actions/sonar-scanner@main
with:
sonar-token: ${{ secrets.SONAR_TOKEN }}
working-dir: "/opt/carma/src/${{ github.event.repository.name }}"