74 lines
2.3 KiB
YAML
74 lines
2.3 KiB
YAML
name: Build Producción & Push a Harbor
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
- development
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: self-hosted
|
|
|
|
steps:
|
|
- name: Checkout código
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Login a Harbor
|
|
run: |
|
|
echo '${{ secrets.HARBOR_PASSWORD }}' | docker login \
|
|
dev.aduanasoft.com \
|
|
-u '${{ secrets.HARBOR_USERNAME }}' \
|
|
--password-stdin
|
|
|
|
# ------------------------
|
|
# Backend
|
|
# ------------------------
|
|
- name: Build backend
|
|
run: |
|
|
docker build \
|
|
-t dev.aduanasoft.com/anexo76/backend:latest \
|
|
-f ./backend/Dockerfile \
|
|
./backend
|
|
|
|
# ------------------------
|
|
# Frontend
|
|
# ------------------------
|
|
- name: Build frontend
|
|
run: |
|
|
docker build \
|
|
--build-arg VITE_API_URL=https://anexo76-dev.aduanasoft.com/api/ \
|
|
--build-arg VITE_KEYCLOAK_URL=https://anexo76-dev.aduanasoft.com/kcauth/ \
|
|
--build-arg INTERNAL_API_URL=http://backend:3467/api/ \
|
|
-t dev.aduanasoft.com/anexo76/frontend:latest \
|
|
-f ./frontend/Dockerfile.prod \
|
|
./frontend
|
|
|
|
# ------------------------
|
|
# Push imágenes
|
|
# ------------------------
|
|
- name: Push backend
|
|
run: |
|
|
docker push dev.aduanasoft.com/anexo76/backend:latest
|
|
|
|
- name: Push frontend
|
|
run: |
|
|
docker push dev.aduanasoft.com/anexo76/frontend:latest
|
|
|
|
# ------------------------
|
|
# Deploy a Development
|
|
# ------------------------
|
|
- name: Deploy a servidor de desarrollo
|
|
if: github.ref == 'refs/heads/development'
|
|
run: |
|
|
eval $(ssh-agent -s)
|
|
ssh-add <(echo "${{ secrets.DEV_SERVER_SSH_KEY }}")
|
|
ssh -o StrictHostKeyChecking=accept-new \
|
|
${{ secrets.DEV_SERVER_USER }}@${{ secrets.DEV_SERVER_HOST }} \
|
|
'cd ~/projects/anexo76 && \
|
|
echo '"'"'${{ secrets.HARBOR_PASSWORD }}'"'"' | docker login dev.aduanasoft.com -u '"'"'${{ secrets.HARBOR_USERNAME }}'"'"' --password-stdin && \
|
|
docker compose -f docker-compose.prod.yml pull && \
|
|
docker compose -f docker-compose.prod.yml up -d && \
|
|
docker image prune -f'
|
|
ssh-agent -k
|