42 lines
1.2 KiB
YAML
42 lines
1.2 KiB
YAML
kind: pipeline
|
|
type: docker
|
|
name: spring-boot-java21
|
|
|
|
workspace:
|
|
base: /drone/src
|
|
|
|
steps:
|
|
# Paso 1: Build y tests con Maven (Java 21)
|
|
- name: build-and-test
|
|
image: maven:3.9-eclipse-temurin-21-alpine
|
|
environment:
|
|
MAVEN_OPTS: -Xmx2048m -XX:+TieredCompilation -XX:TieredStopAtLevel=1
|
|
commands:
|
|
- mvn clean verify
|
|
- mvn jacoco:report # Generar reporte de cobertura
|
|
volumes:
|
|
- name: maven-cache
|
|
path: /root/.m2
|
|
|
|
# Paso 2: Análisis SonarQube
|
|
- name: sonarqube-analysis
|
|
image: sonarsource/sonar-scanner-cli:latest
|
|
environment:
|
|
SONAR_HOST_URL: ${SONARQUBE_URL}
|
|
SONAR_LOGIN: ${SONARQUBE_TOKEN}
|
|
SONAR_PROJECT_KEY: ${SONARQUBE_PROJECT_KEY}
|
|
commands:
|
|
- sonar-scanner
|
|
-Dsonar.projectKey=${SONAR_PROJECT_KEY}
|
|
-Dsonar.projectName=${DRONE_REPO_NAME}
|
|
-Dsonar.java.source=21
|
|
-Dsonar.java.binaries=target/classes
|
|
-Dsonar.sources=src/main/java
|
|
-Dsonar.tests=src/test/java
|
|
-Dsonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml
|
|
-Dsonar.qualitygate.wait=true
|
|
-Dsonar.scm.provider=git
|
|
when:
|
|
event: [push, pull_request]
|
|
|