name: Update Status Page on: workflow_dispatch: # manual trigger only — status updates run via Hetzner cron + SCP permissions: contents: write jobs: update: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "3.12" - name: Run status checks run: python3 scripts/check_status.py - name: Commit updated status.json run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git add public/status.json git diff --cached --quiet && echo "No changes" && exit 0 git commit -m "chore: status update $(date -u '+%Y-%m-%d %H:%M UTC')" git push - name: Deploy to Hostinger via FTP uses: SamKirkland/FTP-Deploy-Action@v4.3.5 with: server: ${{ secrets.FTP_SERVER }} username: ${{ secrets.FTP_USERNAME }} password: ${{ secrets.FTP_PASSWORD }} local-dir: ./public/ server-dir: /public_html/ exclude: | **/.git* **/.git*/**