name: Build docs and push to ezez.dev

on:
  push:
    branches: [ master ]


env:
  PROJECT_NAME: utils

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
        with:
          persist-credentials: false

      - name: Enable Corepack
        run: corepack enable

      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: pnpm

      - name: Build documentation
        run: |
          VER=$(cat ./package.json | jq -r .version)
          echo Detected version: $VER
          if [[ "$VER" == *"+"* ]]; then echo "WIP/+ version detected, skipping"; exit 1; fi
          pnpm install --frozen-lockfile
          pnpm run docs
          echo "APP_VERSION=$VER" >> "$GITHUB_ENV"
          cat $GITHUB_ENV

      - name: Deploy versioned documentation
        uses: easingthemes/ssh-deploy@main
        with:
          SSH_PRIVATE_KEY: ${{ secrets.DOCS_SERVER_PRIVATE_KEY }}
          REMOTE_HOST: ${{ secrets.DOCS_SERVER_HOST }}
          REMOTE_USER: ${{ secrets.DOCS_SERVER_USER }}
          REMOTE_PORT: ${{ secrets.DOCS_SERVER_PORT }}
          SOURCE: "docs/"
          TARGET: "/docs/${{ env.PROJECT_NAME }}/${{ env.APP_VERSION }}"
          ARGS: "-rltgoDzvO"

      - name: Deploy latest documentation
        uses: easingthemes/ssh-deploy@main
        with:
          SSH_PRIVATE_KEY: ${{ secrets.DOCS_SERVER_PRIVATE_KEY }}
          REMOTE_HOST: ${{ secrets.DOCS_SERVER_HOST }}
          REMOTE_USER: ${{ secrets.DOCS_SERVER_USER }}
          REMOTE_PORT: ${{ secrets.DOCS_SERVER_PORT }}
          ARGS: "-rlgoDzv --delete"
          SOURCE: "docs/"
          TARGET: "/docs/${{ env.PROJECT_NAME }}/latest"

