Commit 6b1518bb authored by Adrian DC's avatar Adrian DC
Browse files

ci(gitlab-ci): implement SonarCloud quality analysis

Signed-off-by: default avatarAdrian DC <radian.dc@gmail.com>
parent a7661f01
Loading
Loading
Loading
Loading
Loading

.coveragerc

0 → 100644
+7 −0
Changes for .coveragerc: 7 added lines, 0 removed lines.
Original line number Diff line number Diff line
# .coveragerc to control coverage.py

[paths]
source =
    src/
    */src
    *\src
+4 −0
Changes for .gitignore: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -10,6 +10,10 @@ __pycache__/
*.egg-info/
dist/

# SonarQube files
.scannerwork/
.sonar/

# Temporary files
.*.swp
.tmp/
+37 −0
Changes for .gitlab-ci.yml: 37 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@ stages:
  - development
  - prepare
  - build
  - quality
  - deploy

variables:
@@ -70,6 +71,7 @@ images:
    - |
      for base_rename in \
          'python:3.12-alpine' \
          'sonarsource/sonar-scanner-cli:latest' \
      ; do
        base=$(echo "${base_rename}" | cut -d'|' -f1 | tr -d ' ')
        rename=$(echo "${base_rename}" | cut -d'|' -f2 | tr -d ' ')
@@ -340,6 +342,41 @@ readme:
  rules:
    - if: $CI_LOCAL

# =============================================================================
# Stage: quality

sonarcloud:
  stage: quality
  image:
    name: registry.gitlab.com/radiandevcore/tools/gitlab-projects-settings/sonarsource/sonar-scanner-cli:latest
    entrypoint: ['']
  needs: []
  variables:
    GIT_DEPTH: 0
    SONAR_USER_HOME: ${CI_PROJECT_DIR}/.sonar
  cache:
    key: '${CI_JOB_NAME}'
    paths:
      - .sonar/cache
  before_script:
    # Configure Git securities
    - git config --global --add safe.directory "${CI_PROJECT_DIR}"
  script:
    # Scan with SonarCloud
    - sonar-scanner -Dsonar.projectVersion=$(git describe --always) -Dsonar.branch.name=${CI_COMMIT_REF_NAME}
  rules:
    - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
      changes:
        - 'CHANGELOG.md'
        - 'requirements/**/*'
        - 'src/**/*'
        - 'tests/**/*'
      when: always
    - if: $CI_COMMIT_REF_NAME == "main"
      when: always
    - when: never
  allow_failure: true

# =============================================================================
# Stage: deploy

+15 −0
Changes for sonar-project.properties: 15 added lines, 0 removed lines.
Original line number Diff line number Diff line
sonar.projectKey=RadianDevCore_gitlab-projects-settings
sonar.organization=radiandevcore

# This is the name and version displayed in the SonarCloud UI.
sonar.projectName=gitlab-projects-settings
#sonar.projectVersion=1.0

# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
sonar.sources=src

# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8

# Python versions
sonar.python.version=3.8, 3.9, 3.10, 3.11, 3.12