name: Tests on: pull_request: branches: - main - docusaurus-v** paths: - package.json - yarn.lock - jest.config.mjs - packages/** - tsconfig.*.json - .github/workflows/tests.yml concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true permissions: contents: read jobs: test: name: Tests timeout-minutes: 30 runs-on: ubuntu-latest strategy: matrix: node: ['20.0', '20', '22', '24', '25.1'] steps: - name: Checkout uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Use Node.js ${{ matrix.node }} uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 with: node-version: ${{ matrix.node }} cache: yarn - name: Installation run: yarn || yarn || yarn - name: Test run: yarn test - name: Remove Theme Internal Re-export run: yarn workspace @docusaurus/theme-common removeThemeInternalReexport - name: Docusaurus Build # We build 2 locales to ensure a localized site doesn't leak memory # See https://github.com/facebook/docusaurus/pull/10599 run: yarn build:website:fast --locale en --locale fr env: # Our website should build even with limited memory # See https://github.com/facebook/docusaurus/pull/10590 NODE_OPTIONS: '--max-old-space-size=450' DOCUSAURUS_PERF_LOGGER: 'true' - name: Docusaurus site CSS order run: yarn workspace website test:css-order - name: TypeCheck website # see https://github.com/facebook/docusaurus/pull/10486 run: yarn workspace website typecheck - name: TypeCheck website - min version - v5.1 run: | yarn add typescript@5.1.6 --exact -D -W --ignore-scripts # DocSearch@4/ai@5 doesn't support TS 5.1 (with skipLibCheck=false) jq '.resolutions."@docsearch/react" = "^3.9.0"' package.json > package.json.tmp && mv -f package.json.tmp package.json yarn add @docsearch/react@^3.9.0 --exact -D -W --ignore-scripts yarn workspace website typecheck - name: TypeCheck website - max version - Latest # For latest TS there are often lib check errors, so we disable it # Details: https://github.com/facebook/docusaurus/pull/10486 run: | yarn add typescript@latest --exact -D -W --ignore-scripts yarn workspace website typecheck --project tsconfig.skipLibCheck.json