Retry mil
This commit is contained in:
		
							
								
								
									
										60
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										60
									
								
								.drone.yml
									
									
									
									
									
								
							| @@ -9,7 +9,6 @@ | |||||||
|   - push |   - push | ||||||
|  |  | ||||||
| steps: | steps: | ||||||
|     # --- Los pasos de build-and-publish no cambian, ya están bien --- |  | ||||||
| - name: build-and-publish-backend | - name: build-and-publish-backend | ||||||
|   image: plugins/docker |   image: plugins/docker | ||||||
|   settings: |   settings: | ||||||
| @@ -42,43 +41,50 @@ | |||||||
|   depends_on: |   depends_on: | ||||||
|     - build-and-publish-backend |     - build-and-publish-backend | ||||||
|  |  | ||||||
|     # --- ¡LA VERSIÓN FINAL Y CORRECTA! --- |  | ||||||
| - name: deploy-to-production | - name: deploy-to-production | ||||||
|       image: appleboy/drone-ssh |   image: alpine:latest | ||||||
|       # Ya no usamos 'settings', el plugin lee los secretos directamente del entorno del paso. |  | ||||||
|   environment: |   environment: | ||||||
|         HOST: |     SSH_KEY: | ||||||
|           from_secret: PROD_SERVER_HOST |  | ||||||
|         USERNAME: |  | ||||||
|           from_secret: PROD_SERVER_USER |  | ||||||
|         KEY: |  | ||||||
|       from_secret: PROD_SERVER_SSH_KEY |       from_secret: PROD_SERVER_SSH_KEY | ||||||
|          |     PROD_HOST: | ||||||
|         # Pasamos TODOS los secretos que el script necesita como variables |       from_secret: PROD_SERVER_HOST | ||||||
|         # de entorno al contenedor del plugin. |     PROD_USER: | ||||||
|         DB_SA_PASSWORD: |       from_secret: PROD_SERVER_USER | ||||||
|  |     DB_PASSWORD: | ||||||
|       from_secret: DB_SA_PASSWORD_SECRET |       from_secret: DB_SA_PASSWORD_SECRET | ||||||
|     JWT_KEY: |     JWT_KEY: | ||||||
|       from_secret: JWT_KEY_SECRET |       from_secret: JWT_KEY_SECRET | ||||||
|         REGISTRY_URL: |     REGISTRY: | ||||||
|       from_secret: REGISTRY_URL |       from_secret: REGISTRY_URL | ||||||
|     GITEA_USER: |     GITEA_USER: | ||||||
|       from_secret: GITEA_USER |       from_secret: GITEA_USER | ||||||
|         ACTIONS_PAT: |     GITEA_PAT: | ||||||
|       from_secret: ACTIONS_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 | ||||||
|  |  | ||||||
|       # El plugin usa 'script' y ahora las variables las tenemos que |     # Ejecutar comandos remotos | ||||||
|       # pasar como argumentos al script o usarlas directamente. |     - | | ||||||
|       script: |       ssh $PROD_USER@$PROD_HOST << 'EOF' | ||||||
|         # El comando 'export' es crucial para que 'docker compose' los vea |         echo "--- CONECTADO AL SERVIDOR DE PRODUCCIÓN ---" | ||||||
|         - export DB_SA_PASSWORD |         cd /opt/gestion-integral | ||||||
|         - export JWT_KEY |  | ||||||
|         - echo "Conectando a $HOST como $USERNAME..." |  | ||||||
|         - cd /opt/gestion-integral |  | ||||||
|         - docker login $REGISTRY_URL -u $GITEA_USER -p $ACTIONS_PAT |  | ||||||
|         - docker compose pull |  | ||||||
|         - docker compose up -d |  | ||||||
|         - docker image prune -af |  | ||||||
|          |          | ||||||
|  |         # 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: |   depends_on: | ||||||
|     - build-and-publish-frontend |     - build-and-publish-frontend | ||||||
		Reference in New Issue
	
	Block a user