49 lines
1.3 KiB
YAML

name: Deploy to Server
on:
push:
branches:
- main
paths-ignore:
- 'README.md'
- '**.yml'
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Install dependencies
run: npm install --force
- name: Build project
run: npm run build
- name: Setup SSH
uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Add host key
run: |
mkdir -p ~/.ssh
ssh-keyscan -p ${{ secrets.SSH_PORT || 22 }} ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts
- name: Deploy to server
run: |
rsync -avz --delete -e "ssh -p ${{ secrets.SSH_PORT || 22 }}" \
dist/ \
${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }}:/opt/1panel/apps/openresty/openresty/www/sites/svr.czl.net/index/
- name: Change file ownership
run: |
ssh -p ${{ secrets.SSH_PORT || 22 }} ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }} \
'sudo chown -R 1000:1000 /opt/1panel/apps/openresty/openresty/www/sites/svr.czl.net/index/'