Modernizar workflow y docker-compose con variables
Some checks failed
build-and-deploy / build-and-deploy (push) Failing after 9s
Some checks failed
build-and-deploy / build-and-deploy (push) Failing after 9s
- Convertir imágenes hardcodeadas a variables (REG, REPO_OWNER) - Agregar variables APP_NAME y APP_DOMAIN al workflow - Agregar flag --wait al despliegue para esperar contenedores listos - Pasar variables de entorno (RADIUS_*) explícitamente en cada paso - Agregar paso informativo sobre el deployment - Simplificar comandos docker compose (sin -f innecesario) - Corregir indentación del docker-compose.yml - Eliminar paso redundante "Show service status" Estos cambios hacen que el workflow sea más robusto y consistente con el patrón usado en analiticaNucleo.
This commit is contained in:
@@ -5,10 +5,15 @@ on:
|
|||||||
branches: [ main ]
|
branches: [ main ]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
#───────────────── build, push & deploy (unified) ─────────────────
|
||||||
build-and-deploy:
|
build-and-deploy:
|
||||||
runs-on: docker
|
runs-on: docker
|
||||||
env:
|
env:
|
||||||
REG: ${{ vars.REGISTRY_URL }}/${{ github.repository_owner }}
|
REG: ${{ vars.REGISTRY_URL }}
|
||||||
|
REPO_OWNER: ${{ github.repository_owner }}
|
||||||
|
APP_NAME: radiusnucleo
|
||||||
|
APP_DOMAIN: wifi.nucleoriofrio.com
|
||||||
|
# Variables sensibles de entorno desde secrets
|
||||||
RADIUS_CLIENTS_CIDR: ${{ secrets.RADIUS_CLIENTS_CIDR }}
|
RADIUS_CLIENTS_CIDR: ${{ secrets.RADIUS_CLIENTS_CIDR }}
|
||||||
RADIUS_SHARED_SECRET: ${{ secrets.RADIUS_SHARED_SECRET }}
|
RADIUS_SHARED_SECRET: ${{ secrets.RADIUS_SHARED_SECRET }}
|
||||||
steps:
|
steps:
|
||||||
@@ -22,15 +27,23 @@ jobs:
|
|||||||
|
|
||||||
- name: Build+push radiusnucleo (with SPA)
|
- name: Build+push radiusnucleo (with SPA)
|
||||||
run: |
|
run: |
|
||||||
docker build -t $REG/radiusnucleo:${{ github.sha }} -t $REG/radiusnucleo:latest -f node-api/Dockerfile .
|
docker build -t $REG/$REPO_OWNER/radiusnucleo:${{ github.sha }} -t $REG/$REPO_OWNER/radiusnucleo:latest -f node-api/Dockerfile .
|
||||||
docker push $REG/radiusnucleo:${{ github.sha }}
|
docker push $REG/$REPO_OWNER/radiusnucleo:${{ github.sha }}
|
||||||
docker push $REG/radiusnucleo:latest
|
docker push $REG/$REPO_OWNER/radiusnucleo:latest
|
||||||
|
|
||||||
- name: Build+push radiusnucleo-freeradius
|
- name: Build+push radiusnucleo-freeradius
|
||||||
run: |
|
run: |
|
||||||
docker build -t $REG/radiusnucleo-freeradius:${{ github.sha }} -t $REG/radiusnucleo-freeradius:latest ./freeradius
|
docker build -t $REG/$REPO_OWNER/radiusnucleo-freeradius:${{ github.sha }} -t $REG/$REPO_OWNER/radiusnucleo-freeradius:latest ./freeradius
|
||||||
docker push $REG/radiusnucleo-freeradius:${{ github.sha }}
|
docker push $REG/$REPO_OWNER/radiusnucleo-freeradius:${{ github.sha }}
|
||||||
docker push $REG/radiusnucleo-freeradius:latest
|
docker push $REG/$REPO_OWNER/radiusnucleo-freeradius:latest
|
||||||
|
|
||||||
|
- name: Info about environment
|
||||||
|
run: |
|
||||||
|
echo "ℹ️ Deploying $APP_NAME"
|
||||||
|
echo " Domain: $APP_DOMAIN"
|
||||||
|
echo " Image Node: $REG/$REPO_OWNER/radiusnucleo:latest"
|
||||||
|
echo " Image FreeRADIUS: $REG/$REPO_OWNER/radiusnucleo-freeradius:latest"
|
||||||
|
echo " Networks: principal, radiusnucleo_radius_net"
|
||||||
|
|
||||||
- name: Ensure external docker networks exist
|
- name: Ensure external docker networks exist
|
||||||
run: |
|
run: |
|
||||||
@@ -38,13 +51,19 @@ jobs:
|
|||||||
docker network inspect radiusnucleo_radius_net >/dev/null 2>&1 || docker network create radiusnucleo_radius_net
|
docker network inspect radiusnucleo_radius_net >/dev/null 2>&1 || docker network create radiusnucleo_radius_net
|
||||||
|
|
||||||
- name: Pull fresh images used in compose
|
- name: Pull fresh images used in compose
|
||||||
run: docker compose -f docker-compose.yml pull
|
env:
|
||||||
|
RADIUS_CLIENTS_CIDR: ${{ secrets.RADIUS_CLIENTS_CIDR }}
|
||||||
|
RADIUS_SHARED_SECRET: ${{ secrets.RADIUS_SHARED_SECRET }}
|
||||||
|
run: docker compose pull
|
||||||
|
|
||||||
- name: Clean up stack
|
- name: Clean up stack
|
||||||
run: docker compose -f docker-compose.yml --project-name radiusnucleo down
|
env:
|
||||||
|
RADIUS_CLIENTS_CIDR: ${{ secrets.RADIUS_CLIENTS_CIDR }}
|
||||||
|
RADIUS_SHARED_SECRET: ${{ secrets.RADIUS_SHARED_SECRET }}
|
||||||
|
run: docker compose --project-name $APP_NAME down
|
||||||
|
|
||||||
- name: Update stack
|
- name: Update stack
|
||||||
run: docker compose -f docker-compose.yml --project-name radiusnucleo up -d --remove-orphans
|
env:
|
||||||
|
RADIUS_CLIENTS_CIDR: ${{ secrets.RADIUS_CLIENTS_CIDR }}
|
||||||
- name: Show service status
|
RADIUS_SHARED_SECRET: ${{ secrets.RADIUS_SHARED_SECRET }}
|
||||||
run: docker compose -f docker-compose.yml --project-name radiusnucleo ps
|
run: docker compose --project-name $APP_NAME up -d --remove-orphans --wait
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
version: "3.9"
|
version: "3.9"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
@@ -6,7 +5,7 @@
|
|||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
dockerfile: node-api/Dockerfile
|
dockerfile: node-api/Dockerfile
|
||||||
image: gitea.nucleoriofrio.com/nucleo000/radiusnucleo:latest
|
image: ${REG}/${REPO_OWNER}/radiusnucleo:latest
|
||||||
container_name: radiusnucleo-node-1
|
container_name: radiusnucleo-node-1
|
||||||
environment:
|
environment:
|
||||||
- VLAN_ID=2
|
- VLAN_ID=2
|
||||||
@@ -59,7 +58,7 @@
|
|||||||
|
|
||||||
freeradius:
|
freeradius:
|
||||||
build: ./freeradius
|
build: ./freeradius
|
||||||
image: gitea.nucleoriofrio.com/nucleo000/radiusnucleo-freeradius:latest
|
image: ${REG}/${REPO_OWNER}/radiusnucleo-freeradius:latest
|
||||||
depends_on:
|
depends_on:
|
||||||
- radiusnucleo-node
|
- radiusnucleo-node
|
||||||
- postgres
|
- postgres
|
||||||
|
|||||||
Reference in New Issue
Block a user