name: Deploy static site on: push: branches: [main] paths: - 'site/**' - '.github/workflows/deploy-site.yml' workflow_dispatch: # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write # Allow only one concurrent deployment concurrency: group: "pages" cancel-in-progress: false jobs: deploy-github-pages: name: Deploy to GitHub Pages environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload artifact uses: actions/upload-pages-artifact@v3 with: # Upload the site directory path: 'site' - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4 deploy-server: name: Deploy to hatch.surf server runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Deploy via rsync uses: burnett01/rsync-deployments@7.0.1 with: switches: -avz --delete path: site/ remote_path: /var/www/hatch.surf/ remote_host: ${{ secrets.DEPLOY_HOST }} remote_user: ${{ secrets.DEPLOY_USER }} remote_key: ${{ secrets.DEPLOY_KEY }} - name: Reload nginx uses: appleboy/ssh-action@v1 with: host: ${{ secrets.DEPLOY_HOST }} username: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} script: | nginx -t && systemctl reload nginx