Skip to content

ci: add sonar cloud setting #1258

ci: add sonar cloud setting

ci: add sonar cloud setting #1258

Workflow file for this run

name: colcon-test
on:
pull_request:
types: [opened, synchronize]
paths: [driving_log_replayer/**, .github/workflows/colcon-test.yaml]
schedule:
- cron: 0 0 * * 0
workflow_dispatch:
jobs:
build-and-test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ros_distribution:
- humble
include:
# Humble Hawksbill (May 2022 - May 2027)
- docker_image: rostooling/setup-ros-docker:ubuntu-jammy-ros-humble-ros-base-latest
ros_distribution: humble
ros_version: 2
container:
image: ${{ matrix.docker_image }}
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.12.1
with:
access_token: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout
uses: actions/checkout@v4
- name: Search packages in this repository
id: list_packages
run: |
echo package_list=$(colcon list --names-only | sed -e ':loop; N; $!b loop; s/\n/ /g') >> $GITHUB_OUTPUT
- name: Setup ROS environment
uses: ros-tooling/setup-ros@0.7.8
with:
required-ros-distributions: ${{ matrix.ros_distribution }}
- name: build and test
uses: ros-tooling/action-ros-ci@0.3.13
id: actions_ros_ci_step
with:
package-name: ${{ steps.list_packages.outputs.package_list }}
target-ros2-distro: ${{ matrix.ros_distribution }}
vcs-repo-file-url: dependency.repos
import-token: ${{ secrets.GITHUB_TOKEN }}
colcon-defaults: |
{
"build": {
"mixin": ["coverage-pytest"]
},
"test": {
"mixin": ["coverage-pytest"]
}
}
colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/b8436aa16c0bdbc01081b12caa253cbf16e0fb82/index.yaml
- name: Upload Unit Test Output
uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: colcon-logs
path: ${{ steps.action_ros_ci_step.outputs.ros-workspace-directory-name }}/log
- name: fix paths for coverage file
run: sed -E -i 's/^([[:space:]]*<source>[[:space:]]*)(.*\/)(driving_log_replayer\/driving_log_replayer)/\1.\/driving_log_replayer/' /__w/driving_log_replayer/driving_log_replayer/ros_ws/build/driving_log_replayer/pytest_cov/driving_log_replayer/coverage.xml
- name: Upload Coverage File
uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: colcon-logs
path: /__w/driving_log_replayer/driving_log_replayer/ros_ws/build/driving_log_replayer/pytest_cov/driving_log_replayer/
- name: SonarCloud Scan
uses: sonarsource/sonarcloud-github-action@v3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
# - name: Debug
# if: ${{ always() }}
# uses: mxschmitt/action-tmate@v3
# report-test-result:
# name: Get and upload Test Result
# runs-on: ubuntu-latest
# timeout-minutes: 5
# if: ${{ !cancelled() }}
# needs:
# - build-and-test
# steps:
# - uses: actions/checkout@v4
# - name: Download Artifacts
# uses: actions/download-artifact@v4
# with:
# path: colcon-logs
# - name: SonarCloud Scan
# uses: sonarsource/sonarcloud-github-action@v3
# env:
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
# # - name: Debug
# # if: ${{ always() }}
# # uses: mxschmitt/action-tmate@v3