0ff97fece9
This change introduces a new 'build' stage to the CI pipeline. It sets up the pipeline for improved clarity and better stage separation, paving the way for future enhancements or steps.
70 lines
1.6 KiB
YAML
70 lines
1.6 KiB
YAML
default:
|
|
image: maven:3-amazoncorretto-17-alpine
|
|
|
|
stages:
|
|
#- pull
|
|
- build
|
|
- on_commit
|
|
- sonarcloud_scan
|
|
|
|
variables:
|
|
GITLAB_CLONE_DIR: "/builds/thischwa/CloudflareDNS-java"
|
|
# GITLAB_CLONE_DIR: "cloudflaredns-java"
|
|
SONAR_HOST_URL: "https://sonarcloud.io"
|
|
SONAR_PROJECT_KEY: "th-schwarz_DynDRest"
|
|
SONAR_ORGANIZATION: "th-schwarz"
|
|
SONAR_TOKEN: "${SONAR_TOKEN_ENV_VAR}"
|
|
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
|
|
|
|
|
|
#pull_source:
|
|
# stage: pull
|
|
# script:
|
|
# - echo "Cloning GitHub repository..."
|
|
# - git clone --depth 1 https://oauth2:${GITHUB_PERSONAL_ACCESS_TOKEN}@github.com/th-schwarz/CloudflareDNS-java.git ${GITLAB_CLONE_DIR}
|
|
# - echo "Repository cloned successfully."
|
|
# only:
|
|
# - schedules
|
|
|
|
build:
|
|
script:
|
|
- mvn clean package -DskipTests
|
|
artifacts:
|
|
paths:
|
|
- target/
|
|
|
|
on_commits:
|
|
stage: on_commit
|
|
dependencies:
|
|
- build
|
|
script:
|
|
- echo "Running tests..."
|
|
- cd ${GITLAB_CLONE_DIR}
|
|
- mvn test
|
|
cache:
|
|
key: "${CI_JOB_NAME}"
|
|
paths:
|
|
- .maven-cache
|
|
only:
|
|
- /^feature.*$/
|
|
- merge_request
|
|
- develop
|
|
|
|
sonarcloud_scan:
|
|
stage: sonarcloud_scan
|
|
dependencies:
|
|
- build
|
|
image:
|
|
name: sonarsource/sonar-scanner-cli:latest
|
|
entrypoint: [ "" ]
|
|
cache:
|
|
key: "${CI_JOB_NAME}"
|
|
paths:
|
|
- .maven-cache
|
|
script:
|
|
- sonar-scanner -Dsonar.projectKey=${SONAR_PROJECT_KEY} -Dsonar.organization=${SONAR_ORGANIZATION} -Dsonar.token=${SONAR_TOKEN} -Dsonar.java.binaries=target/classes
|
|
only:
|
|
- merge_requests
|
|
- develop
|