name: Build
on:
  push:
    branches:
      - v4
jobs:
  build:
    env:
      RUNNER_TOOL_CACHE: /toolcache
    runs-on: ubuntu-latest
    steps:
      - run: git config --global core.quotepath false
      - name: Install apt packages
        run: apt update && apt install -y rsync
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
      - uses: https://github.com/actions/setup-node@v4
        with:
          node-version: 'latest'
      - uses: https://github.com/actions/setup-go@v4
        with:
          go-version: '^1.20'
      - uses: https://gitea.com/actions/go-hashfiles@v0.0.1
        id: get-hash
        with: 
          patterns: |-
            **/package-lock.json      
      - name: Cache dependencies
        uses: actions/cache@v3
        with:
          path: ~/.npm
          key: ${{ runner.os }}-node-${{ steps.get-hash.outputs.hash }}
          restore-keys: |
            ${{ runner.os }}-node-
      - run: npm i
      - run: npx quartz build
      - name: Create private key
        run: |
          echo "${{ secrets.PRIVATE_KEY }}" > /tmp/act_runner_key
          chmod 600 /tmp/act_runner_key
      - name: rsync public directory
        run: |
          rsync -avz --delete -e "ssh -i /tmp/act_runner_key -o StrictHostKeyChecking=no -p ${{ vars.WEBSERVER_PORT }}" ${{ gitea.workspace }}/public/* ${{ vars.WEBSERVER_USER }}@${{ vars.WEBSERVER_HOST }}:/var/www/html