Files
demo/.gitea/workflows/deploy.yml
T
daniel e5f09065a7
Deploy / deploy (push) Successful in 9s
initial
2026-09-02 17:54:07 -03:00

46 lines
1.7 KiB
YAML

name: Deploy
on:
push:
branches: [main]
workflow_dispatch:
jobs:
deploy:
runs-on: self-hosted
steps:
- name: Checkout manual (runner sin node)
run: |
set -euo pipefail
git config --global http.extraheader "Authorization: token ${{ secrets.GITHUB_TOKEN }}"
rm -rf /tmp/deploy-${{ github.event.repository.name }}
git clone --depth 1 -b main "https://git.exiademos.duckdns.org/${{ github.repository }}.git" /tmp/deploy-${{ github.event.repository.name }}
cd /tmp/deploy-${{ github.event.repository.name }}
rm -f NUL
- name: Build y deploy
env:
DOMAIN: demo.exiademos.duckdns.org
run: |
set -euo pipefail
REPO_NAME="$(echo "${GITHUB_REPOSITORY##*/}" | tr '[:upper:]' '[:lower:]')"
cd /tmp/deploy-${{ github.event.repository.name }}
docker build -t "$REPO_NAME:latest" .
docker stop "$REPO_NAME-app" 2>/dev/null || true
docker rm "$REPO_NAME-app" 2>/dev/null || true
docker run -d --name "$REPO_NAME-app" --network proxy --restart unless-stopped \
--label "caddy_0=$DOMAIN" \
--label "caddy_0.reverse_proxy={{upstreams 80}}" \
"$REPO_NAME:latest"
for i in $(seq 1 60); do
if docker logs "$REPO_NAME-app" 2>&1 | grep -q "ready for start up"; then
echo "App desplegada: https://$DOMAIN"
exit 0
fi
docker inspect -f '{{.State.Running}}' "$REPO_NAME-app" 2>/dev/null | grep -q true \
|| { docker logs --tail 60 "$REPO_NAME-app"; exit 1; }
sleep 3
done
docker logs --tail 60 "$REPO_NAME-app"
exit 1