f056ad2f47
Added the `-Dsonar.sources` property to specify the `src/main/java` directory for SonarQube analysis. This ensures the main Java source files are included in the scan, improving code quality assessment accuracy.
77 lines
1.8 KiB
YAML
77 lines
1.8 KiB
YAML
default:
|
|
image: maven:3-amazoncorretto-17-alpine
|
|
|
|
stages:
|
|
- build
|
|
- on_commit
|
|
- sonarcloud_scan
|
|
|
|
variables:
|
|
GITLAB_CLONE_DIR: "/builds/ths6435116/CloudflareDNS-java"
|
|
# GITLAB_CLONE_DIR: "cloudflaredns-java"
|
|
SONAR_HOST_URL: $SONAR_HOST_URL
|
|
SONAR_PROJECT_KEY: "ths6435116_CloudflareDNS-java"
|
|
SONAR_ORGANIZATION: "ths6435116"
|
|
SONAR_TOKEN: $SONAR_TOKEN
|
|
SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache
|
|
GIT_DEPTH: "0" # Tells git to fetch all the branches of the project, required by the analysis task
|
|
API_EMAIL: $API_EMAIL
|
|
API_KEY: $API_KEY
|
|
API_TOKEN: $API_TOKEN
|
|
|
|
build:
|
|
stage: build
|
|
script:
|
|
- echo "Running package..."
|
|
# - mkdir -p ${GITLAB_CLONE_DIR}
|
|
- cd ${GITLAB_CLONE_DIR}
|
|
- mvn clean package
|
|
artifacts:
|
|
paths:
|
|
- target/
|
|
|
|
on_commits:
|
|
stage: on_commit
|
|
dependencies:
|
|
- build
|
|
script:
|
|
- echo "on_commit DONE"
|
|
only:
|
|
- /^feature.*$/
|
|
- merge_request
|
|
- develop
|
|
|
|
sonarcloud_scan:
|
|
stage: sonarcloud_scan
|
|
dependencies:
|
|
- build
|
|
image:
|
|
name: sonarsource/sonar-scanner-cli:latest
|
|
entrypoint: [ "" ]
|
|
script:
|
|
- |
|
|
sonar-scanner \
|
|
-Dsonar.projectKey=${SONAR_PROJECT_KEY} \
|
|
-Dsonar.organization=${SONAR_ORGANIZATION} \
|
|
-Dsonar.token=${SONAR_TOKEN} \
|
|
-Dsonar.branch.name=develop \
|
|
-Dsonar.projectBaseDir=${CI_PROJECT_DIR} \
|
|
-Dsonar.sources=src/main/java \
|
|
-Dsonar.tests=src/test/java \
|
|
-Dsonar.exclusions=docs/** \
|
|
-Dsonar.java.binaries=target/classes
|
|
only:
|
|
- merge_requests
|
|
- develop
|
|
|
|
pages:
|
|
stage: on_commit
|
|
script:
|
|
- echo "Deploying GitLab Pages from docs/"
|
|
- mkdir public
|
|
- cp -r docs/* public/
|
|
artifacts:
|
|
paths:
|
|
- public
|
|
only:
|
|
- develop |