Retry 1807
This commit is contained in:
79
.drone.yml
79
.drone.yml
@@ -9,65 +9,52 @@ volumes:
|
|||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
branch:
|
branch:
|
||||||
- main
|
- main
|
||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: build-and-publish-backend
|
- name: build-and-publish-backend
|
||||||
image: docker:latest # Usamos la imagen oficial de Docker CLI
|
image: plugins/docker
|
||||||
volumes:
|
volumes:
|
||||||
- name: dockersock
|
- name: dockersock
|
||||||
path: /var/run/docker.sock
|
path: /var/run/docker.sock
|
||||||
environment:
|
settings:
|
||||||
# Pasamos las credenciales de forma segura como variables de entorno
|
registry:
|
||||||
GITEA_USER:
|
|
||||||
from_secret: GITEA_USER
|
|
||||||
ACTIONS_PAT:
|
|
||||||
from_secret: ACTIONS_PAT
|
|
||||||
REGISTRY_URL:
|
|
||||||
from_secret: REGISTRY_URL
|
from_secret: REGISTRY_URL
|
||||||
commands:
|
repo: 192.168.4.128:5000/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME,,}-backend
|
||||||
# 1. Iniciar sesión en el registro de Gitea
|
username:
|
||||||
- echo "Iniciando sesión en ${REGISTRY_URL}..."
|
from_secret: GITEA_USER
|
||||||
- docker login -u $GITEA_USER -p $ACTIONS_PAT $REGISTRY_URL
|
password:
|
||||||
|
from_secret: ACTIONS_PAT
|
||||||
# 2. Definir los tags para la imagen
|
dockerfile: Backend/GestionIntegral.Api/Dockerfile
|
||||||
- export TAG_LATEST="${REGISTRY_URL}/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME,,}-backend:latest"
|
tags:
|
||||||
- export TAG_COMMIT="${REGISTRY_URL}/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME,,}-backend:${DRONE_COMMIT_SHA:0:8}"
|
- latest
|
||||||
- echo "Creando imagen con tags: ${TAG_LATEST} y ${TAG_COMMIT}"
|
- ${DRONE_COMMIT_SHA:0:8}
|
||||||
|
insecure: true
|
||||||
# 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
|
|
||||||
|
|
||||||
- name: build-and-publish-frontend
|
- name: build-and-publish-frontend
|
||||||
image: docker:latest
|
image: plugins/docker
|
||||||
volumes:
|
volumes:
|
||||||
- name: dockersock
|
- name: dockersock
|
||||||
path: /var/run/docker.sock
|
path: /var/run/docker.sock
|
||||||
environment:
|
settings:
|
||||||
GITEA_USER:
|
registry:
|
||||||
from_secret: GITEA_USER
|
|
||||||
ACTIONS_PAT:
|
|
||||||
from_secret: ACTIONS_PAT
|
|
||||||
REGISTRY_URL:
|
|
||||||
from_secret: REGISTRY_URL
|
from_secret: REGISTRY_URL
|
||||||
commands:
|
repo: 192.168.4.128:5000/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME,,}-frontend
|
||||||
- docker login -u $GITEA_USER -p $ACTIONS_PAT $REGISTRY_URL
|
username:
|
||||||
- export TAG_LATEST="${REGISTRY_URL}/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME,,}-frontend:latest"
|
from_secret: GITEA_USER
|
||||||
- export TAG_COMMIT="${REGISTRY_URL}/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME,,}-frontend:${DRONE_COMMIT_SHA:0:8}"
|
password:
|
||||||
- docker build -t $TAG_LATEST -t $TAG_COMMIT -f Frontend/Dockerfile .
|
from_secret: ACTIONS_PAT
|
||||||
- docker push $TAG_LATEST
|
dockerfile: Frontend/Dockerfile
|
||||||
- docker push $TAG_COMMIT
|
tags:
|
||||||
|
- latest
|
||||||
|
- ${DRONE_COMMIT_SHA:0:8}
|
||||||
|
insecure: true
|
||||||
depends_on:
|
depends_on:
|
||||||
- build-and-publish-backend
|
- build-and-publish-backend
|
||||||
|
|
||||||
- name: deploy-to-production
|
- name: deploy-to-production
|
||||||
# Este paso ya estaba bien y no necesita cambios
|
|
||||||
image: alpine:latest
|
image: alpine:latest
|
||||||
environment:
|
environment:
|
||||||
SSH_KEY:
|
SSH_KEY:
|
||||||
@@ -87,22 +74,30 @@ steps:
|
|||||||
GITEA_PAT:
|
GITEA_PAT:
|
||||||
from_secret: ACTIONS_PAT
|
from_secret: ACTIONS_PAT
|
||||||
commands:
|
commands:
|
||||||
|
# Preparar el entorno SSH
|
||||||
- apk add --no-cache openssh-client
|
- apk add --no-cache openssh-client
|
||||||
- mkdir -p ~/.ssh
|
- mkdir -p ~/.ssh
|
||||||
- echo "$SSH_KEY" > ~/.ssh/id_rsa
|
- echo "$SSH_KEY" > ~/.ssh/id_rsa
|
||||||
- chmod 600 ~/.ssh/id_rsa
|
- chmod 600 ~/.ssh/id_rsa
|
||||||
- ssh-keyscan -H $PROD_HOST >> ~/.ssh/known_hosts
|
- ssh-keyscan -H $PROD_HOST >> ~/.ssh/known_hosts
|
||||||
|
|
||||||
|
# Ejecutar comandos remotos
|
||||||
- |
|
- |
|
||||||
ssh $PROD_USER@$PROD_HOST << 'EOF'
|
ssh $PROD_USER@$PROD_HOST << 'EOF'
|
||||||
echo "--- CONECTADO AL SERVIDOR DE PRODUCCIÓN ---"
|
echo "--- CONECTADO AL SERVIDOR DE PRODUCCIÓN ---"
|
||||||
cd /opt/gestion-integral
|
cd /opt/gestion-integral
|
||||||
|
|
||||||
|
# Exportamos las variables que necesita el docker-compose de la app
|
||||||
export DB_SA_PASSWORD="${DB_PASSWORD}"
|
export DB_SA_PASSWORD="${DB_PASSWORD}"
|
||||||
export JWT_KEY="${JWT_KEY}"
|
export JWT_KEY="${JWT_KEY}"
|
||||||
|
|
||||||
|
# Login, pull y deploy
|
||||||
docker login ${REGISTRY} -u ${GITEA_USER} -p ${GITEA_PAT}
|
docker login ${REGISTRY} -u ${GITEA_USER} -p ${GITEA_PAT}
|
||||||
docker compose pull
|
docker compose pull
|
||||||
docker compose up -d
|
docker compose up -d
|
||||||
docker image prune -af
|
docker image prune -af
|
||||||
|
|
||||||
echo "--- DESPLIEGUE COMPLETADO ---"
|
echo "--- DESPLIEGUE COMPLETADO ---"
|
||||||
EOF
|
EOF
|
||||||
depends_on:
|
depends_on:
|
||||||
- build-and-publish-frontend
|
- build-and-publish-frontend
|
||||||
|
|||||||
Reference in New Issue
Block a user