name: 🚀 Build and deploy by ftp

on:
  push:
    branches:
      - master
      - main
jobs:

  ftp-build-and-deploy:
    name: 🎉 Deploy
    runs-on: ubuntu-latest
    steps:
    - name: 🚚 Get latest code
      uses: https://github.com/actions/checkout@v3

    - uses: https://github.com/actions/setup-node@v3
      with:
        node-version: 16

    - uses: https://github.com/pnpm/action-setup@v2
      name: Install pnpm
      id: pnpm-install
      with:
        version: 7
        run_install: false

    - name: Get pnpm store directory
      id: pnpm-cache
      shell: bash
      run: |
        echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT

    - uses: actions/setup-go@v3
      with:
        go-version: '1.20'

    - uses: actions/go-hashfiles@v0.0.1
      id: get-hash
      with:
        patterns: |-
          go.sum
          **/pnpm-lock.yaml

    - uses: https://github.com/actions/cache@v3
      name: Setup pnpm cache
      with:
        path: ${{ steps.pnpm-cache.outputs.STORE_PATH }}
        key: ${{ runner.os }}-pnpm-store-${{ steps.get-hash.outputs.hash }}
        restore-keys: |
          ${{ runner.os }}-pnpm-store-

    - name: Install dependencies
      run: pnpm install

    - run: pnpm build
    - run: npm run export

    - name: 📂 Sync files
      uses: https://github.com/SamKirkland/FTP-Deploy-Action@v4.3.4
      with:
        server: ${{ secrets.ftp_server }}
        username: ${{ secrets.ftp_username }}
        password: ${{ secrets.ftp_password }}