Ajustes de CI/CD.
This commit is contained in:
		
							
								
								
									
										76
									
								
								.gitea/workflows/deploy.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								.gitea/workflows/deploy.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,76 @@ | ||||
| name: Build y Deploy a Producción | ||||
|  | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - main # O la rama que uses para producción | ||||
|  | ||||
| jobs: | ||||
|   build: | ||||
|     name: Construir y Subir Imágenes Docker | ||||
|     runs-on: ubuntu-latest | ||||
|      | ||||
|     steps: | ||||
|       - name: Checkout del código | ||||
|         uses: actions/checkout@v4 | ||||
|  | ||||
|       - name: Login al Registro de Gitea | ||||
|         uses: docker/login-action@v3 | ||||
|         with: | ||||
|           registry: ${{ secrets.REGISTRY_URL }} | ||||
|           # Usamos el token de acceso personal para el login | ||||
|           username: ${{ gitea.actor }} | ||||
|           password: ${{ secrets.ACTIONS_PAT }} | ||||
|  | ||||
|       - name: Construir y Subir API Backend | ||||
|         uses: docker/build-push-action@v5 | ||||
|         with: | ||||
|           context: . | ||||
|           file: ./Backend/GestionIntegral.Api/Dockerfile | ||||
|           push: true | ||||
|           tags: | | ||||
|             ${{ secrets.REGISTRY_URL }}/${{ gitea.repository }}/api:latest | ||||
|             ${{ secrets.REGISTRY_URL }}/${{ gitea.repository }}/api:${{ gitea.sha_short }} | ||||
|  | ||||
|       - name: Construir y Subir Frontend | ||||
|         uses: docker/build-push-action@v5 | ||||
|         with: | ||||
|           # ¡Asegúrate de que esta ruta a tu frontend es correcta! | ||||
|           context: .  | ||||
|           file: ./Frontend/Dockerfile | ||||
|           push: true | ||||
|           tags: | | ||||
|             ${{ secrets.REGISTRY_URL }}/${{ gitea.repository }}/frontend:latest | ||||
|             ${{ secrets.REGISTRY_URL }}/${{ gitea.repository }}/frontend:${{ gitea.sha_short }} | ||||
|  | ||||
|   deploy: | ||||
|     name: Desplegar a Producción | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: build | ||||
|  | ||||
|     steps: | ||||
|       - name: Desplegar con Docker Compose | ||||
|         uses: appleboy/ssh-action@master | ||||
|         with: | ||||
|           host: ${{ secrets.PROD_SERVER_HOST }} | ||||
|           username: ${{ secrets.PROD_SERVER_USER }} | ||||
|           key: ${{ secrets.PROD_SERVER_SSH_KEY }} | ||||
|           script: | | ||||
|             cd /opt/gestion-integral | ||||
|              | ||||
|             # Pasamos los secretos como variables de entorno | ||||
|             export DB_SA_PASSWORD='${{ secrets.DB_SA_PASSWORD }}' | ||||
|             export JWT_KEY='${{ secrets.JWT_SECRET_KEY }}' | ||||
|              | ||||
|             # Login al registro de Gitea DENTRO del servidor de producción | ||||
|             # Aquí también usamos el ACTIONS_PAT | ||||
|             docker login ${{ secrets.REGISTRY_URL }} -u ${{ gitea.actor }} -p ${{ secrets.ACTIONS_PAT }} | ||||
|              | ||||
|             # Descargamos las nuevas versiones de las imágenes | ||||
|             docker compose pull | ||||
|              | ||||
|             # Levantamos el stack con los cambios | ||||
|             docker compose up -d | ||||
|              | ||||
|             # Limpiamos imágenes viejas que ya no se usan | ||||
|             docker image prune -af | ||||
		Reference in New Issue
	
	Block a user