All checks were successful
deploy-tunnel / deploy (push) Successful in 4s
- Verifica que config.yml sea un archivo antes de docker compose up - Limpia volúmenes con -v al hacer down - Elimina config.yml si es un directorio (fix para error de mount)
62 lines
1.9 KiB
YAML
62 lines
1.9 KiB
YAML
name: deploy-tunnel
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
|
|
jobs:
|
|
#───────────────── deploy ─────────────────
|
|
deploy:
|
|
runs-on: docker
|
|
env:
|
|
TUNNEL_ID: ${{ secrets.TUNNEL_ID }}
|
|
TUNNEL_CREDENTIALS: ${{ secrets.TUNNEL_CREDENTIALS }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Create .env file from secrets
|
|
run: |
|
|
cat > .env << EOF
|
|
TUNNEL_ID=${{ secrets.TUNNEL_ID }}
|
|
EOF
|
|
|
|
- name: Create credentials.json from secret
|
|
run: |
|
|
echo '${{ secrets.TUNNEL_CREDENTIALS }}' > credentials.json
|
|
|
|
- name: Verify tunnel configuration
|
|
run: |
|
|
if [ ! -f credentials.json ] || [ ! -f .env ]; then
|
|
echo "❌ Error: credentials.json o .env no se crearon correctamente"
|
|
exit 1
|
|
fi
|
|
echo "✓ Archivos de configuración creados desde secrets"
|
|
|
|
- name: Verify config.yml exists as file
|
|
run: |
|
|
if [ -d config.yml ]; then
|
|
echo "⚠️ config.yml es un directorio, eliminando..."
|
|
rm -rf config.yml
|
|
fi
|
|
if [ ! -f config.yml ]; then
|
|
echo "❌ Error: config.yml no existe como archivo"
|
|
exit 1
|
|
fi
|
|
echo "✓ config.yml existe y es un archivo"
|
|
|
|
- name: Ensure external docker network exists
|
|
run: |
|
|
docker network inspect principal >/dev/null 2>&1 || docker network create principal
|
|
|
|
- name: Clean up stack and volumes
|
|
run: docker compose --project-name cloudflared-tunnel down -v || true
|
|
|
|
- name: Pull fresh cloudflared image
|
|
run: docker compose pull
|
|
|
|
- name: Update stack
|
|
run: docker compose --project-name cloudflared-tunnel up -d --remove-orphans --wait
|
|
|
|
- name: Show tunnel status
|
|
run: docker compose --project-name cloudflared-tunnel logs --tail=50
|