From 557f987138a69aa98b8b027db3f1f2bb3732aa55 Mon Sep 17 00:00:00 2001 From: "MSI\\migue" Date: Wed, 16 Apr 2025 11:37:32 -0400 Subject: [PATCH] miercoles ocho --- .drone.yml | 104 ++++++++++++++++++++-------------------------- .drone.yml.backup | 90 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 134 insertions(+), 60 deletions(-) create mode 100644 .drone.yml.backup diff --git a/.drone.yml b/.drone.yml index 9e4b074..95e2528 100644 --- a/.drone.yml +++ b/.drone.yml @@ -12,79 +12,63 @@ steps: environment: MAVEN_OPTS: -Xmx2048m -XX:+TieredCompilation -XX:TieredStopAtLevel=1 commands: - - mvn verify -Poffline --settings nexus-settings.xml - #- mvn jacoco:report # Generar reporte de cobertura + - mvn clean verify + - mvn jacoco:report volumes: - name: maven-cache path: /root/.m2 - # # Paso 2: Análisis SonarQube con Maven + # 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 + SONAR_HOST_URL: http://10.0.0.126:9000 + SONAR_LOGIN: squ_465ae384ffda803d8e58d9ef0111bef1277c874a + SONAR_PROJECT_KEY: hhh commands: - #- mvn sonar:sonar # Ejecuta el análisis de SonarQube usando Maven - - mvn clean verify sonar:sonar -DskipTests --settings nexus-settings.xml + - 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 (NUEVO) + + # Paso 3: Build y Push de Docker Image a Nexus usando plugin oficial - 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 - - 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 - + 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: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..." + - 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 - - name: docker-sock - host: - path: /var/run/docker.sock # Montar socket de Docker diff --git a/.drone.yml.backup b/.drone.yml.backup new file mode 100644 index 0000000..6ad7743 --- /dev/null +++ b/.drone.yml.backup @@ -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