File: sonar.yml

package info (click to toggle)
anta 1.7.0-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 8,048 kB
  • sloc: python: 48,164; sh: 28; javascript: 9; makefile: 4
file content (62 lines) | stat: -rw-r--r-- 2,840 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
---
name: Analysis with Sonarlint and publish to SonarCloud
on:
  workflow_run:
    workflows: ["Linting and Testing ANTA"]
    types: [completed]

jobs:
  sonarcloud:
    name: Run Sonarlint analysis and upload to SonarCloud.
    if: github.repository == 'aristanetworks/anta'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
        with:
          ref: ${{ github.event.workflow_run.head_sha }}
          fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
      - name: Download coverage from unit tests
        continue-on-error: true
        uses: actions/download-artifact@v7
        with:
          name: pytest-coverage
          github-token: ${{ secrets.GITHUB_TOKEN }}
          run-id: ${{ github.event.workflow_run.id }}
          merge-multiple: true

      - name: Get PR context
        # Source: https://github.com/orgs/community/discussions/25220#discussioncomment-11316244
        id: pr-context
        if: github.event.workflow_run.event == 'pull_request'
        env:
          # Token required for GH CLI:
          GH_TOKEN: ${{ github.token }}
          # Best practice for scripts is to reference via ENV at runtime. Avoid using the expression syntax in the script content directly:
          PR_TARGET_REPO: ${{ github.repository }}
          # If the PR is from a fork, prefix it with `<owner-login>:`, otherwise only the PR branch name is relevant:
          PR_BRANCH: |-
            ${{
              (github.event.workflow_run.head_repository.owner.login != github.event.workflow_run.repository.owner.login)
                && format('{0}:{1}', github.event.workflow_run.head_repository.owner.login, github.event.workflow_run.head_branch)
                || github.event.workflow_run.head_branch
            }}
        # Query the PR number by repo + branch, then assign to step output:
        run: |
          gh pr view --repo "${PR_TARGET_REPO}" "${PR_BRANCH}" \
             --json 'number,baseRefName' --jq '"number=\(.number)\nbase_ref=\(.baseRefName)"' \
             >> "${GITHUB_OUTPUT}"
          echo "pr_branch=${PR_BRANCH}" >> "${GITHUB_OUTPUT}"

      - name: SonarQube Scan
        uses: SonarSource/sonarqube-scan-action@v7.0.0
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
        with:
          # Using ACTION_STEP_DEBUG to trigger verbose when debugging in Github Action
          args: >
            -Dsonar.scm.revision=${{ github.event.workflow_run.head_sha }}
            -Dsonar.pullrequest.key=${{ steps.pr-context.outputs.number }}
            -Dsonar.pullrequest.branch=${{ steps.pr-context.outputs.pr_branch }}
            -Dsonar.pullrequest.base=${{ steps.pr-context.outputs.base_ref }}
            -Dsonar.verbose=${{ secrets.ACTIONS_STEP_DEBUG }}