# 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 :
- name : Checkout
uses : actions/checkout@v4
- uses : pnpm/action-setup@v3
with :
version : 8
- uses : actions/setup-node@v4
with :
node-version : "20"
cache : "pnpm"
- name : Install dependencies
run : pnpm install
- name : Lint
run : pnpm lint
build :
runs-on : ubuntu-latest
needs : check
if : github.event_name == 'push'
steps :
- name : Checkout
uses : actions/checkout@v4
- uses : pnpm/action-setup@v3
with :
version : 8
- uses : actions/setup-node@v4
with :
node-version : "20"
cache : "pnpm"
- name : Install dependencies
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 }}