name: Hugo

on: [push]

jobs:
  build:

    runs-on: ubuntu-22.04

    steps:
    - uses: actions/checkout@v3
    - name: Add key
      run: |
        mkdir $HOME/.ssh && \
        echo "${{ secrets.SSH_PRIVATE_KEY }}" > $HOME/.ssh/id_rsa        
    - name: Grab packages
      run: |
        apt-get update && \
        apt-get install -y jq rsync tar wget && \
        chmod +x hugo        
    - name: Get latest Hugo version
      run: |
        url=$(curl --silent "https://api.github.com/repos/gohugoio/hugo/releases/latest" | jq -r '.assets[] | select(.name | contains("linux-amd64.tar.gz")) | .browser_download_url' | grep -E 'hugo_[0-9]+\.[0-9]+\.[0-9]+_linux-amd64.tar.gz')
        wget -P /tmp/hugo/ "$url"
        version=$(echo "$url" | grep -oP 'hugo_\K[0-9]+\.[0-9]+\.[0-9]+')
        echo "Downloaded Hugo version: $version"
    - name: Unpack Hugo
      run: tar -xf /tmp/hugo/* -C ${{ gitea.workspace }}/bin
    - name: Build the static webpage
      run: ${{ gitea.workspace }}/bin/hugo --minify
    - name: Test static page
      run: bash ${{ gitea.workspace }}/bin/test_static_page.sh
    - name: Deploy to Server
      uses: easingthemes/ssh-deploy@main
      env:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
          ARGS: "-rlgoDzvc -i --delete"
          SOURCE: "public/"
          REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
          REMOTE_USER: ${{ secrets.REMOTE_USER }}
          TARGET: ${{ secrets.REMOTE_TARGET }}