name: Deploy Remont Site

# Автосборка сайта remont.digital-home.site из заметок «Ремонт квартира».
# Триггер — пуш в эту папку. Сайт генерируется внутри docker build (node → nginx),
# поэтому раннеру нужны только docker + git (как в jam-looper).

on:
  push:
    branches: [master, main]
    paths:
      - 'Ремонт квартира/**'

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Собрать образ
        run: |
          # ascii-контекст (путь с кириллицей и пробелом → в простой каталог)
          rm -rf /tmp/remont-ctx
          cp -r "Ремонт квартира" /tmp/remont-ctx
          docker build -t remont-web:latest -f /tmp/remont-ctx/.site/Dockerfile /tmp/remont-ctx
          echo "✅ Образ собран"

      - name: Перезапустить контейнер
        run: |
          docker rm -f remont-web >/dev/null 2>&1 || true
          docker run -d --name remont-web --restart unless-stopped \
            --network coolify \
            --label traefik.enable=true \
            --label "traefik.http.routers.remont-http.rule=Host(\`remont.digital-home.site\`)" \
            --label traefik.http.routers.remont-http.entrypoints=http \
            --label traefik.http.routers.remont-http.middlewares=remont-redirect \
            --label traefik.http.middlewares.remont-redirect.redirectscheme.scheme=https \
            --label "traefik.http.routers.remont-https.rule=Host(\`remont.digital-home.site\`)" \
            --label traefik.http.routers.remont-https.entrypoints=https \
            --label traefik.http.routers.remont-https.tls=true \
            --label traefik.http.routers.remont-https.tls.certresolver=letsencrypt \
            --label traefik.http.routers.remont-https.service=remont \
            --label traefik.http.services.remont.loadbalancer.server.port=80 \
            remont-web:latest

      - name: Проверить, что сайт жив
        run: |
          for i in $(seq 1 10); do
            code=$(curl -s -o /dev/null -w '%{http_code}' https://remont.digital-home.site/ || echo 000)
            if [ "$code" = "200" ]; then
              echo "✅ https://remont.digital-home.site отвечает 200"
              exit 0
            fi
            sleep 4
          done
          echo "❌ Сайт отвечает $code"
          docker logs remont-web --tail 30
          exit 1
