name: Build and Deploy on: # Trigger the workflow every time you push to the `main` branch # Using a different branch name? Replace `main` with your branch’s name push: branches: [ main ] # Allows you to run this workflow manually from the Actions tab on GitHub. workflow_dispatch: # Allow this job to clone the repo and create a page deployment permissions: contents: read pages: write id-token: write jobs: build: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Setup pnpm uses: pnpm/action-setup@v2 - name: Install system dependencies run: sudo apt-get update && sudo apt-get install -y rsync build-essential libvips-dev - name: Setup SSH key run: | mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa eval $(ssh-agent -s) ssh-add ~/.ssh/id_rsa - name: Add server to known_hosts run: ssh-keyscan ${{ secrets.SERVER_IP }} >> ~/.ssh/known_hosts - name: Install dependencies run: pnpm install - name: Build Astro site run: pnpm run build - name: Deploy to server run: rsync -avzP ./dist/ root@${{ secrets.SERVER_IP }}:/var/www/html/