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: ['18.0', '20', '22'] steps: - name: Checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Use Node.js ${{ matrix.node }} uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.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=400' DOCUSAURUS_PERF_LOGGER: 'true' - name: Docusaurus site CSS order run: yarn workspace website test:css-order - name: TypeCheck website # TODO temporary, remove TS skipLibCheck # see https://github.com/facebook/docusaurus/pull/10486 run: yarn workspace website typecheck --project tsconfig.skipLibCheck.json - name: TypeCheck website - min version - v5.1 run: | yarn add typescript@5.1.6 --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