name: Deploy to VPS on: push: branches: - main workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: https://github.com/actions/checkout@v4 - name: Setup Node.js uses: https://github.com/actions/setup-node@v4 with: node-version: "20" cache: npm cache-dependency-path: package-lock.json - name: Restore Next.js cache uses: https://github.com/actions/cache@v4 with: path: | .next/cache key: ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}-${{ hashFiles('**/*.[jt]s', '**/*.[jt]sx') }} restore-keys: | ${{ runner.os }}-nextjs-${{ hashFiles('**/package-lock.json') }}- - name: Install dependencies run: npm ci - name: Build run: npm run build deploy: needs: build runs-on: ubuntu-latest steps: - name: Checkout uses: https://github.com/actions/checkout@v4 - name: Deploy via SSH uses: https://github.com/appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.VPS_HOST }} username: ${{ secrets.VPS_USER }} key: ${{ secrets.VPS_SSH_KEY }} script: | echo "START DEPLOY" cd /root/magricambi git pull --ff-only docker compose up -d --build