Skip to content

ci: add sonar cloud setting #1224

ci: add sonar cloud setting

ci: add sonar cloud setting #1224

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"]
}
}
- 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
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 }}