Files
GestionIntegralWeb/.drone.yml

82 lines
2.0 KiB
YAML
Raw Normal View History

Ajustes de CI/CD. fix: Run jobs on runner host to resolve network issues Reseteo de estado por fallas del deply. Reversión. Nuevo testeo de CI/CD. Reversión 2. Fix Reversión 3 Test con sh-runner Reversión antes de cambio de foco. Sin sh-runner. No puede resolver gitea. Debe usar el secreto REGISTRY_URL. Test con Gitea 1.21.11 Reversion 1.24.0 Va Este Final? A ver... Nuevo Cambio de Enfoque para CI/CD. Se intenta uso de Drone. Fix de yml para Drone. Retry .drone.yml Fix problema de indentación. Retry yml Va Retry mil Nuevo test Fix: Configure docker plugin for insecure registry Forzar la network. Retry 0142 Test Webhook Se agregan debug-network para verificar valores. Se agregan daemon_dns para poder resolver los dominios de nuget desde los contenedores de despliegue. Cambio de enfoque. Parametro para MTU (Maximum Transmission Unit) añadidos. Prueba: Usar el Socket de Docker del Host Fix indentación. Y Trusted en Drone. Linter: duplicate step name Todos los registros de contenedores (Docker Hub, Gitea, etc.) exigen que los nombres de las imágenes de Docker estén en minúsculas. El pipeline está intentando crear una imagen llamada dmolinari/GestionIntegralWeb-backend, pero la parte GestionIntegralWeb contiene mayúsculas. Esto ocurre porque la variable de Drone ${DRONE_REPO_NAME} toma el nombre directamente de Gitea, que en este caso es GestionIntegralWeb. La sintaxis es: ${VARIABLE,,}. Se añade la URL del registro al nombre del repo Cabio de Variable por valor directo. Retry 1806 Retry 1807 Webhook gitea Enable. Added: privileged: true Test con Kaniko Fix yml Retest Cambio de imagen kaniko Cambio por host
2025-06-14 22:11:02 -03:00
kind: pipeline
type: docker
name: Build y Deploy
trigger:
branch:
- main
event:
- push
steps:
- name: build-and-publish-backend
image: plugins/kaniko
settings:
repo: host.docker.internal:5000/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME,,}-backend
tags:
- latest
- ${DRONE_COMMIT_SHA:0:8}
dockerfile: Backend/GestionIntegral.Api/Dockerfile
context: .
username:
from_secret: GITEA_USER
password:
from_secret: ACTIONS_PAT
insecure: true
- name: build-and-publish-frontend
image: plugins/kaniko
settings:
repo: host.docker.internal:5000/${DRONE_REPO_OWNER}/${DRONE_REPO_NAME,,}-frontend
tags:
- latest
- ${DRONE_COMMIT_SHA:0:8}
dockerfile: Frontend/Dockerfile
context: .
username:
from_secret: GITEA_USER
password:
from_secret: ACTIONS_PAT
insecure: true
depends_on:
- build-and-publish-backend
- name: deploy-to-production
image: alpine:latest
environment:
SSH_KEY:
from_secret: PROD_SERVER_SSH_KEY
PROD_HOST:
from_secret: PROD_SERVER_HOST
PROD_USER:
from_secret: PROD_SERVER_USER
DB_PASSWORD:
from_secret: DB_SA_PASSWORD_SECRET
JWT_KEY:
from_secret: JWT_KEY_SECRET
REGISTRY:
from_secret: REGISTRY_URL
GITEA_USER:
from_secret: GITEA_USER
GITEA_PAT:
from_secret: ACTIONS_PAT
commands:
- 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
- |
ssh $PROD_USER@$PROD_HOST << 'EOF'
echo "--- CONECTADO AL SERVIDOR DE PRODUCCIÓN ---"
cd /opt/gestion-integral
export DB_SA_PASSWORD="${DB_PASSWORD}"
export JWT_KEY="${JWT_KEY}"
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