perf: incremental indexing and preprocessor caching #715
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build docs | |
| on: | |
| push: | |
| branches: [master] | |
| paths: | |
| - website/** | |
| - src/** | |
| - crates/** | |
| - Cargo.toml | |
| - Cargo.lock | |
| - build.rs | |
| - rust-toolchain.toml | |
| - .github/actions/prepare-vide-lsp-wasm/** | |
| - .github/actions/setup-emscripten/** | |
| - .github/actions/setup-rust/** | |
| - .github/actions/setup-sccache/** | |
| - .github/workflows/docs-preview.yml | |
| - .github/workflows/deploy-docs.yml | |
| pull_request: | |
| types: [opened, synchronize, reopened, closed] | |
| paths: | |
| - website/** | |
| - src/** | |
| - crates/** | |
| - Cargo.toml | |
| - Cargo.lock | |
| - build.rs | |
| - rust-toolchain.toml | |
| - .github/actions/prepare-vide-lsp-wasm/** | |
| - .github/actions/setup-emscripten/** | |
| - .github/actions/setup-rust/** | |
| - .github/actions/setup-sccache/** | |
| - .github/workflows/docs-preview.yml | |
| - .github/workflows/deploy-docs.yml | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: docs-build-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| preview-control: | |
| name: Record preview action | |
| if: github.event_name == 'pull_request' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Create control artifact | |
| env: | |
| PR_NUMBER: ${{ github.event.pull_request.number }} | |
| PR_ACTION: ${{ github.event.action }} | |
| run: printf '%s\n' "${PR_ACTION}" > "docs-control-pr-${PR_NUMBER}-${PR_ACTION}" | |
| - name: Upload control artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: docs-control-pr-${{ github.event.pull_request.number }}-${{ github.event.action }} | |
| path: docs-control-pr-${{ github.event.pull_request.number }}-${{ github.event.action }} | |
| retention-days: 7 | |
| build: | |
| name: Build documentation | |
| if: github.event_name == 'push' || github.event.action != 'closed' | |
| runs-on: ubuntu-latest | |
| env: | |
| ASTRO_SITE: https://vide.pascal-lab.net | |
| ASTRO_BASE: ${{ github.event_name == 'pull_request' && format('/preview/pr-{0}/', github.event.pull_request.number) || '/staging/' }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Prepare Vide LSP WASM | |
| uses: ./.github/actions/prepare-vide-lsp-wasm | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: website/package-lock.json | |
| - name: Install website dependencies | |
| working-directory: website | |
| run: | | |
| npm ci | |
| node ../.github/scripts/install-native-optionals.mjs | |
| - name: Build documentation | |
| working-directory: website | |
| run: npm run build | |
| - name: Upload PR documentation | |
| if: github.event_name == 'pull_request' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: docs-site-pr-${{ github.event.pull_request.number }} | |
| path: website/site/dist | |
| retention-days: 7 | |
| if-no-files-found: error | |
| - name: Upload master documentation | |
| if: github.event_name == 'push' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: docs-site-master | |
| path: website/site/dist | |
| retention-days: 7 | |
| if-no-files-found: error |