name: Deploy to OVH VPS on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: '20.x' - name: Setup pnpm uses: pnpm/action-setup@v2 with: version: 10 - name: Get pnpm store directory id: pnpm-cache shell: bash run: | echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - name: Setup pnpm cache uses: actions/cache@v3 with: path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} restore-keys: | ${{ runner.os }}-pnpm-store- - name: Install dependencies run: pnpm install --frozen-lockfile - name: Type check run: pnpm type-check - name: Build run: pnpm build - name: Setup SSH key run: | mkdir -p ~/.ssh echo "${{ secrets.VPS_SSH_PRIVATE_KEY }}" > ~/.ssh/id_deploy chmod 600 ~/.ssh/id_deploy ssh-keyscan -H ${{ secrets.VPS_HOST }} >> ~/.ssh/known_hosts - name: Deploy to VPS run: | rsync -avz --delete \ -e "ssh -i ~/.ssh/id_deploy" \ ./dist/ \ ${{ secrets.VPS_USER }}@${{ secrets.VPS_HOST }}:/var/www/lorenzoiovino.com/