# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions

name: Node.js CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
jobs:
  check:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Install pnpm
        uses: pnpm/action-setup@v2.0.1
        with:
          version: 6.15.1

      - name: Use Node.js 16.x
        uses: actions/setup-node@v2
        with:
          node-version: 16.x
          cache: 'pnpm'

      - run: pnpm install
      - run: pnpm lint

  build:
    runs-on: ubuntu-latest
    needs: check
    if: github.event_name == 'push'
    steps:
    - uses: actions/checkout@v2

    - name: Install pnpm
      uses: pnpm/action-setup@v2.0.1
      with:
        version: 6.15.1

    - name: Use Node.js 16.x
      uses: actions/setup-node@v2
      with:
        node-version: 16.x
        cache: 'pnpm'

    - run: pnpm install
    - run: pnpm build
    - run: cd build && zip -r -m build.zip .

    - name: Deploy
      uses: easingthemes/ssh-deploy@main
      env:
        SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }}
        ARGS: "-avzr --delete"
        SOURCE: "build/"
        REMOTE_HOST: ${{ secrets.SERVER_HOST }}
        REMOTE_PORT: ${{ secrets.SERVER_PORT }}
        REMOTE_USER: ${{ secrets.SERVER_USER }}
        TARGET: ${{ secrets.SERVER_TARGET }}
        SCRIPT_AFTER: ${{ secrets.SCRIPT_AFTER }}
