miercoles ocho
Some checks failed
continuous-integration/drone/push Build is failing
continuous-integration/drone Build is failing

This commit is contained in:
MSI\migue 2025-04-16 11:37:32 -04:00
parent 3db9d6af03
commit 557f987138
2 changed files with 134 additions and 60 deletions

View File

@ -12,79 +12,63 @@ steps:
environment: environment:
MAVEN_OPTS: -Xmx2048m -XX:+TieredCompilation -XX:TieredStopAtLevel=1 MAVEN_OPTS: -Xmx2048m -XX:+TieredCompilation -XX:TieredStopAtLevel=1
commands: commands:
- mvn verify -Poffline --settings nexus-settings.xml - mvn clean verify
#- mvn jacoco:report # Generar reporte de cobertura - mvn jacoco:report
volumes: volumes:
- name: maven-cache - name: maven-cache
path: /root/.m2 path: /root/.m2
# # Paso 2: Análisis SonarQube con Maven # Paso 2: Análisis SonarQube con Maven
- name: sonarqube-analysis - name: sonarqube-analysis
image: maven:3.9-eclipse-temurin-21-alpine image: maven:3.9-eclipse-temurin-21-alpine
environment: environment:
#SONAR_HOST_URL: ${SONARQUBE_URL} # URL de tu servidor SonarQube SONAR_HOST_URL: http://10.0.0.126:9000
#SONAR_LOGIN: ${SONARQUBE_TOKEN} # Token de autenticación en SonarQube SONAR_LOGIN: squ_465ae384ffda803d8e58d9ef0111bef1277c874a
#SONAR_PROJECT_KEY: ${SONARQUBE_PROJECT_KEY} # Clave del proyecto en SonarQube SONAR_PROJECT_KEY: hhh
SONAR_HOST_URL: http://10.0.0.126:9000 # URL de tu servidor SonarQube
SONAR_LOGIN: squ_465ae384ffda803d8e58d9ef0111bef1277c874a # Token de autenticación en SonarQube
SONAR_PROJECT_KEY: hhh # Clave del proyecto en SonarQube
commands: commands:
#- mvn sonar:sonar # Ejecuta el análisis de SonarQube usando Maven - mvn clean verify sonar:sonar -DskipTests
- mvn clean verify sonar:sonar -DskipTests --settings nexus-settings.xml volumes:
- name: maven-cache
path: /root/.m2
when: when:
event: [push, pull_request] event: [push, pull_request]
# Paso 3: Build y Push de Docker Image a Nexus (NUEVO) # Paso 3: Build y Push de Docker Image a Nexus usando plugin oficial
- name: docker-build-push - name: docker-build-push
image: docker:20.10.24 image: plugins/docker
environment: settings:
NEXUS_USER: yandel # Usuario de Nexus con permisos push repo: 10.0.0.126:8081/docker-repository/${DRONE_REPO_NAME}
NEXUS_PASSWORD: yandel # Contraseña del usuario tags: ${DRONE_BUILD_NUMBER}
REGISTRY_ADDRESS: 10.0.0.126:8081 username: yandel
REPOSITORY_NAME: docker-repository # Nombre del repositorio Docker en Nexus password: yandel
commands: dockerfile: src/main/docker/dockerfile
# Login a Nexus Docker Registry
- docker login -u $NEXUS_USER -p $NEXUS_PASSWORD $REGISTRY_ADDRESS
# Construir imagen con tag dinámico
- docker build -t $REGISTRY_ADDRESS/$REPOSITORY_NAME/${DRONE_REPO_NAME}:${DRONE_COMMIT_SHA} -f src/main/docker/dockerfile . # -f para especificar ruta
# Push de la imagen
- docker push $REGISTRY_ADDRESS/$REPOSITORY_NAME/${DRONE_REPO_NAME}:${DRONE_COMMIT_SHA}
volumes:
- name: docker-sock
path: /var/run/docker.sock
# Paso 4: Despliegue en Servidor Externo # Paso 4: Despliegue en Servidor Externo
# - name: deploy-to-server - name: deploy-to-server
# image: appleboy/drone-ssh image: appleboy/drone-ssh
# environment: environment:
# REGISTRY_ADDRESS: 10.0.0.126:8085 REGISTRY_ADDRESS: 10.0.0.126:8081
# REPOSITORY_NAME: docker-repository # Nombre del repositorio Docker en Nexus REPOSITORY_NAME: docker-repository
# settings: settings:
# host: host:
# - 10.0.0.117 - 10.0.0.117
# - 10.0.0.116 - 10.0.0.116
# username: username:
# from_secret: ssh_usuario_117 from_secret: ssh_usuario_117
# password: password:
# from_secret: ssh_password_117 from_secret: ssh_password_117
# port: 22 port: 22
# command_timeout: 2m command_timeout: 2m
# script: script:
# - echo "Iniciando despliegue..." - echo "Iniciando despliegue..."
# - docker login -u yandel -p ${REGISTRY_ADDRESS} - docker login -u yandel -p yandel 10.0.0.126:8081
# - docker stop mi-app || true - docker stop mi-app || true
# - docker rm mi-app || true - docker rm mi-app || true
# - docker pull 10.0.0.126:8085/docker-repository/${DRONE_REPO_NAME}:${DRONE_COMMIT_SHA} - 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:8085/docker-repository/${DRONE_REPO_NAME}:${DRONE_COMMIT_SHA} - docker run -d --name mi-app -p 8082:8080 10.0.0.126:8081/docker-repository/${DRONE_REPO_NAME}:${DRONE_BUILD_NUMBER}
# #- docker pull $NEXUS_PASSWORD $REGISTRY_ADDRESS/docker-repository/${DRONE_REPO_NAME}:${DRONE_COMMIT_SHA} - echo "Fin despliegue..."
# #- docker run -d --name mi-app -p 8082:8080 $NEXUS_PASSWORD $REGISTRY_ADDRESS/docker-repository/${DRONE_REPO_NAME}:${DRONE_COMMIT_SHA}
# - echo "Fin despliegue..."
volumes: volumes:
- name: maven-cache - name: maven-cache
host: host:
path: /tmp/drone-maven-cache path: /tmp/drone-maven-cache
- name: docker-sock
host:
path: /var/run/docker.sock # Montar socket de Docker

90
.drone.yml.backup Normal file
View File

@ -0,0 +1,90 @@
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 verify -Poffline --settings nexus-settings.xml
#- mvn jacoco:report # Generar reporte de cobertura
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: ${SONARQUBE_URL} # URL de tu servidor SonarQube
#SONAR_LOGIN: ${SONARQUBE_TOKEN} # Token de autenticación en SonarQube
#SONAR_PROJECT_KEY: ${SONARQUBE_PROJECT_KEY} # Clave del proyecto en SonarQube
SONAR_HOST_URL: http://10.0.0.126:9000 # URL de tu servidor SonarQube
SONAR_LOGIN: squ_465ae384ffda803d8e58d9ef0111bef1277c874a # Token de autenticación en SonarQube
SONAR_PROJECT_KEY: hhh # Clave del proyecto en SonarQube
commands:
#- mvn sonar:sonar # Ejecuta el análisis de SonarQube usando Maven
- mvn clean verify sonar:sonar -DskipTests --settings nexus-settings.xml
when:
event: [push, pull_request]
# Paso 3: Build y Push de Docker Image a Nexus (NUEVO)
- name: docker-build-push
image: docker:20.10.24
environment:
NEXUS_USER: yandel # Usuario de Nexus con permisos push
NEXUS_PASSWORD: yandel # Contraseña del usuario
REGISTRY_ADDRESS: 10.0.0.126:8081
REPOSITORY_NAME: docker-repository # Nombre del repositorio Docker en Nexus
commands:
# Login a Nexus Docker Registry
- docker login -u $NEXUS_USER -p $NEXUS_PASSWORD $REGISTRY_ADDRESS
# Construir imagen con tag dinámico ${DRONE_BUILD_NUMBER}
- docker build -t $REGISTRY_ADDRESS/$REPOSITORY_NAME/${DRONE_REPO_NAME}:${DRONE_COMMIT_SHA} -f src/main/docker/dockerfile . # -f para especificar ruta
# Push de la imagen
- docker push $REGISTRY_ADDRESS/$REPOSITORY_NAME/${DRONE_REPO_NAME}:${DRONE_COMMIT_SHA}
volumes:
- name: docker-sock
path: /var/run/docker.sock
# Paso 4: Despliegue en Servidor Externo
# - name: deploy-to-server
# image: appleboy/drone-ssh
# environment:
# REGISTRY_ADDRESS: 10.0.0.126:8085
# REPOSITORY_NAME: docker-repository # Nombre del repositorio Docker en Nexus
# 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 ${REGISTRY_ADDRESS}
# - docker stop mi-app || true
# - docker rm mi-app || true
# - docker pull 10.0.0.126:8085/docker-repository/${DRONE_REPO_NAME}:${DRONE_COMMIT_SHA}
# - docker run -d --name mi-app -p 8082:8080 10.0.0.126:8085/docker-repository/${DRONE_REPO_NAME}:${DRONE_COMMIT_SHA}
# #- docker pull $NEXUS_PASSWORD $REGISTRY_ADDRESS/docker-repository/${DRONE_REPO_NAME}:${DRONE_COMMIT_SHA}
# #- docker run -d --name mi-app -p 8082:8080 $NEXUS_PASSWORD $REGISTRY_ADDRESS/docker-repository/${DRONE_REPO_NAME}:${DRONE_COMMIT_SHA}
# - echo "Fin despliegue..."
volumes:
- name: maven-cache
host:
path: /tmp/drone-maven-cache
- name: docker-sock
host:
path: /var/run/docker.sock # Montar socket de Docker