name: deploy to server on: push jobs: build-and-deploy: runs-on: node-22 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 # Nuxt 构建缓存,加快二次构建 - 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: Rsync build artifact to server 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 }}