From ae54ef3fe50ea19da55264c6b591e3f7fb24bdb3 Mon Sep 17 00:00:00 2001 From: dmolinari Date: Mon, 16 Jun 2025 18:07:22 -0300 Subject: [PATCH] Retry 1807 --- .drone.yml | 79 +++++++++++++++++++++++++----------------------------- 1 file changed, 37 insertions(+), 42 deletions(-) diff --git a/.drone.yml b/.drone.yml index 9d8e0fa..9495672 100644 --- a/.drone.yml +++ b/.drone.yml @@ -9,65 +9,52 @@ volumes: trigger: branch: - - main + - main event: - - push + - push steps: - name: build-and-publish-backend - image: docker:latest # Usamos la imagen oficial de Docker CLI + image: plugins/docker volumes: - name: dockersock path: /var/run/docker.sock - environment: - # Pasamos las credenciales de forma segura como variables de entorno - GITEA_USER: - from_secret: GITEA_USER - ACTIONS_PAT: - from_secret: ACTIONS_PAT - REGISTRY_URL: + settings: + registry: from_secret: REGISTRY_URL - commands: - # 1. Iniciar sesión en el registro de Gitea - - echo "Iniciando sesión en ${REGISTRY_URL}..." - - docker login -u $GITEA_USER -p $ACTIONS_PAT $REGISTRY_URL - - # 2. Definir los tags para la imagen - - export TAG_LATEST="${REGISTRY_URL}/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME,,}-backend:latest" - - export TAG_COMMIT="${REGISTRY_URL}/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME,,}-backend:${DRONE_COMMIT_SHA:0:8}" - - echo "Creando imagen con tags: ${TAG_LATEST} y ${TAG_COMMIT}" - - # 3. Construir la imagen de Docker - - docker build -t $TAG_LATEST -t $TAG_COMMIT -f Backend/GestionIntegral.Api/Dockerfile . - - # 4. Subir ambos tags al registro - - docker push $TAG_LATEST - - docker push $TAG_COMMIT + repo: 192.168.4.128:5000/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME,,}-backend + username: + from_secret: GITEA_USER + password: + from_secret: ACTIONS_PAT + dockerfile: Backend/GestionIntegral.Api/Dockerfile + tags: + - latest + - ${DRONE_COMMIT_SHA:0:8} + insecure: true - name: build-and-publish-frontend - image: docker:latest + image: plugins/docker volumes: - name: dockersock path: /var/run/docker.sock - environment: - GITEA_USER: - from_secret: GITEA_USER - ACTIONS_PAT: - from_secret: ACTIONS_PAT - REGISTRY_URL: + settings: + registry: from_secret: REGISTRY_URL - commands: - - docker login -u $GITEA_USER -p $ACTIONS_PAT $REGISTRY_URL - - export TAG_LATEST="${REGISTRY_URL}/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME,,}-frontend:latest" - - export TAG_COMMIT="${REGISTRY_URL}/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME,,}-frontend:${DRONE_COMMIT_SHA:0:8}" - - docker build -t $TAG_LATEST -t $TAG_COMMIT -f Frontend/Dockerfile . - - docker push $TAG_LATEST - - docker push $TAG_COMMIT + repo: 192.168.4.128:5000/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME,,}-frontend + username: + from_secret: GITEA_USER + password: + from_secret: ACTIONS_PAT + dockerfile: Frontend/Dockerfile + tags: + - latest + - ${DRONE_COMMIT_SHA:0:8} + insecure: true depends_on: - build-and-publish-backend - name: deploy-to-production - # Este paso ya estaba bien y no necesita cambios image: alpine:latest environment: SSH_KEY: @@ -87,22 +74,30 @@ steps: GITEA_PAT: from_secret: ACTIONS_PAT commands: + # Preparar el entorno SSH - apk add --no-cache openssh-client - mkdir -p ~/.ssh - echo "$SSH_KEY" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - ssh-keyscan -H $PROD_HOST >> ~/.ssh/known_hosts + + # Ejecutar comandos remotos - | ssh $PROD_USER@$PROD_HOST << 'EOF' echo "--- CONECTADO AL SERVIDOR DE PRODUCCIÓN ---" cd /opt/gestion-integral + + # Exportamos las variables que necesita el docker-compose de la app export DB_SA_PASSWORD="${DB_PASSWORD}" export JWT_KEY="${JWT_KEY}" + + # Login, pull y deploy docker login ${REGISTRY} -u ${GITEA_USER} -p ${GITEA_PAT} docker compose pull docker compose up -d docker image prune -af + echo "--- DESPLIEGUE COMPLETADO ---" EOF depends_on: - - build-and-publish-frontend \ No newline at end of file + - build-and-publish-frontend