name: deploy to server on: push jobs: build-and-deploy: runs-on: ubuntu-latest 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: tempersama/rsync-action@2.3 with: host: ${{ secrets.rsync_host }} username: ${{ secrets.rsync_username }} source: ${{ secrets.rsync_source }} destination: ${{ secrets.rsync_destination }} key: ${{ secrets.rsync_key }}