# 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
- 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 }}