name: Pages # The site stamps its footer version out of the root Cargo.toml at build time # (website/vite.config.ts reads it into __APP_VERSION__), so a release that only # touches Cargo.toml has to redeploy or the footer keeps advertising the previous # version until someone happens to edit the site. Cargo.toml is deliberately not # in the pull_request paths: a dependency bump there changes nothing the site # renders, and the deploy is what needs the trigger. on: push: branches: [master] paths: ['website/**', '.github/workflows/pages.yml', 'Cargo.toml'] pull_request: branches: ['**'] paths: ['website/**', '.github/workflows/pages.yml'] workflow_dispatch: permissions: contents: read jobs: build: name: Build runs-on: ubuntu-latest timeout-minutes: 10 defaults: run: working-directory: website steps: - uses: actions/checkout@v4 - uses: oven-sh/setup-bun@v2 with: bun-version: latest - name: Install run: bun install --frozen-lockfile - name: Test installer run: bun run test:install - name: Typecheck run: bun run typecheck - name: Lint run: bun run lint - name: Build run: bun run build - uses: actions/upload-pages-artifact@v3 with: path: website/dist deploy: name: Deploy if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request' needs: build runs-on: ubuntu-latest timeout-minutes: 10 concurrency: group: pages cancel-in-progress: false permissions: pages: write id-token: write environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - id: deployment uses: actions/deploy-pages@v4