prueba/.drone.yml
MSI\migue 74b8f37942
Some checks failed
continuous-integration/drone/push Build is failing
miercoles nueve
2025-04-16 11:40:26 -04:00

75 lines
2.1 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
volumes:
- name: maven-cache
path: /root/.m2
# Paso 2: Análisis SonarQube con Maven
- name: sonarqube-analysis
image: maven:3.9-eclipse-temurin-21-alpine
environment:
SONAR_HOST_URL: http://10.0.0.126:9000
SONAR_LOGIN: squ_465ae384ffda803d8e58d9ef0111bef1277c874a
SONAR_PROJECT_KEY: hhh
commands:
- mvn clean verify sonar:sonar -DskipTests
volumes:
- name: maven-cache
path: /root/.m2
when:
event: [push, pull_request]
# Paso 3: Build y Push de Docker Image a Nexus usando plugin oficial
- name: docker-build-push
image: plugins/docker
settings:
repo: 10.0.0.126:8081/docker-repository/${DRONE_REPO_NAME}
tags: ${DRONE_BUILD_NUMBER}
username: yandel
password: yandel
dockerfile: src/main/docker/dockerfile
# Paso 4: Despliegue en Servidor Externo
- name: deploy-to-server
image: appleboy/drone-ssh
environment:
REGISTRY_ADDRESS: 10.0.0.126:8081
REPOSITORY_NAME: docker-repository
settings:
host:
- 10.0.0.117
- 10.0.0.116
username:
from_secret: ssh_usuario_117
password:
from_secret: ssh_password_117
port: 22
command_timeout: 2m
script:
- echo "Iniciando despliegue..."
- docker login -u yandel -p yandel 10.0.0.126:8081
- docker stop mi-app || true
- docker rm mi-app || true
- docker pull 10.0.0.126:8081/docker-repository/${DRONE_REPO_NAME}:${DRONE_BUILD_NUMBER}
- docker run -d --name mi-app -p 8082:8080 10.0.0.126:8081/docker-repository/${DRONE_REPO_NAME}:${DRONE_BUILD_NUMBER}
- echo "Fin despliegue..."
volumes:
- name: maven-cache
host:
path: /tmp/drone-maven-cache