name: Build and Deploy Hugo

on:
  push:
    branches:
      - master
  pull_request:

jobs:
  deploy:
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true # Fetch Hugo themes (true OR recursive)
          fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod

      - name: Setup Hugo
        run: |
          wget https://github.com/gohugoio/hugo/releases/download/v0.147.8/hugo_extended_0.147.8_linux-amd64.tar.gz
          tar -xzf hugo_extended_0.147.8_linux-amd64.tar.gz
          chmod +x hugo
          mkdir -p ~/bin
          mv hugo ~/bin/
          echo "~/bin" >> $GITHUB_PATH

      - name: Build
        run: hugo --minify

      - name: Setup SSH
        run: |
          echo "Setting up SSH..."
          mkdir -p ~/.ssh
          if [ -z "${{ secrets.SSH_PRIVATE_KEY }}" ]; then
            echo "ERROR: SSH_PRIVATE_KEY secret is not set!"
            exit 1
          fi
          echo "SSH_PRIVATE_KEY secret is present"
          echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
          chmod 600 ~/.ssh/id_rsa
          chmod 700 ~/.ssh
          echo "SSH key saved and permissions set"
          ssh-keyscan -H alexselimov.com >> ~/.ssh/known_hosts
          echo "Host key added to known_hosts"
          # Test SSH connection
          echo "Testing SSH connection..."
          ssh -o StrictHostKeyChecking=no -o BatchMode=yes root@alexselimov.com "echo 'SSH connection successful'" || echo "SSH connection failed"

      - name: Deploy
        run: rsync --delete -azvr public/* root@alexselimov.com:/var/www/alexselimov.com/ --exclude activity.json
