Some checks failed
deploy-tunnel / deploy (push) Failing after 8s
- docker compose wait no funciona sin healthcheck configurado - Reemplazado con sleep 5 + verificación de que el container corre - Agrega paso de verificación para confirmar que el tunnel está up
67 lines
2.1 KiB
YAML
67 lines
2.1 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: 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: Create temporary container to populate volume
|
|
run: |
|
|
docker compose --project-name cloudflared-tunnel up --no-start
|
|
docker cp config.yml cloudflared-tunnel:/etc/cloudflared/config.yml
|
|
docker cp credentials.json cloudflared-tunnel:/etc/cloudflared/credentials.json
|
|
|
|
- name: Start tunnel
|
|
run: docker compose --project-name cloudflared-tunnel start
|
|
|
|
- name: Wait for tunnel to initialize
|
|
run: sleep 5
|
|
|
|
- name: Show tunnel status
|
|
run: docker compose --project-name cloudflared-tunnel logs --tail=50
|
|
|
|
- name: Verify tunnel is running
|
|
run: |
|
|
if ! docker ps | grep -q cloudflared-tunnel; then
|
|
echo "❌ Tunnel container no está corriendo"
|
|
exit 1
|
|
fi
|
|
echo "✅ Tunnel container corriendo"
|