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 }}