ci: 为项目添加CI/CD功能
All checks were successful
deploy to server / build-and-deploy (push) Successful in 4m17s

- 对于任何分支,push到仓库后执行构建测试
- 对于主分支,更新后自动构建并部署到指定服务器上
This commit is contained in:
2025-09-26 17:13:30 +08:00

View File

@ -0,0 +1,48 @@
name: deploy to server
on: push
jobs:
build-and-deploy:
runs-on: node22-build
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Setup node 22
uses: actions/setup-node@v5
with:
node-version: '22'
cache: 'pnpm'
- name: Cache pnpm store
uses: actions/cache@v4
with:
path: ~/.pnpm-store
key: ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-
- name: Install dependencies
run: pnpm install
- name: Cache Nuxt build
uses: actions/cache@v4
with:
path: .nuxt
key: ${{ runner.os }}-nuxt-${{ hashFiles('pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-nuxt-
- name: Build project
run: pnpm run build
- name: Deploy to server
if: github.ref == 'refs/heads/master'
uses: easingthemes/ssh-deploy@main
with:
ARGS: "-rlgoDzvc -i --delete"
REMOTE_HOST: ${{ secrets.rsync_host }}
REMOTE_USER: ${{ secrets.rsync_username }}
SOURCE: ${{ secrets.rsync_source }}
TARGET: ${{ secrets.rsync_destination }}
SSH_PRIVATE_KEY: ${{ secrets.rsync_key }}
SCRIPT_AFTER: ${{ secrets.script_after_rsync }}