Repository navigation
Add seeded chart captures, animated labels and quality presets #6457
Workflow file for this run
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: test | |
| # On every pull request, but only on push to master | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| browser_coverage: | |
| name: Browser coverage (${{ matrix.shard }}/3) | |
| runs-on: ubuntu-22.04 | |
| # Visual checks run separately so shard weights describe only browser specs. | |
| timeout-minutes: 25 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| shard: [1, 2, 3] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - name: Setup Node (with Corepack) | |
| uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Enable Corepack / Yarn 4 | |
| run: | | |
| corepack enable | |
| corepack prepare yarn@4.13.0 --activate | |
| yarn -v | |
| - name: Restore Yarn Berry artifacts | |
| id: yarn-cache | |
| uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 | |
| with: | |
| path: | | |
| ~/.yarn/berry/cache | |
| .yarn/install-state.gz | |
| key: ${{ runner.os }}-yarn4-${{ hashFiles('yarn.lock', '.yarnrc.yml', 'package.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn4- | |
| - name: Install dependencies | |
| run: yarn install --immutable | |
| - name: Save Yarn Berry artifacts | |
| if: steps.yarn-cache.outputs.cache-hit != 'true' | |
| uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 | |
| with: | |
| path: | | |
| ~/.yarn/berry/cache | |
| .yarn/install-state.gz | |
| key: ${{ steps.yarn-cache.outputs.cache-primary-key }} | |
| - name: Cache Playwright Chromium | |
| id: playwright-cache | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: ${{ runner.os }}-ms-playwright-${{ hashFiles('yarn.lock', 'package.json') }} | |
| - name: Install Playwright Chromium | |
| run: yarn exec playwright install chromium | |
| - name: Reclaim install cache and report disk usage | |
| run: | | |
| rm -rf "${HOME}/.yarn/berry/cache" | |
| df -h . | |
| du -sh . "${HOME}/.yarn" "${HOME}/.cache/ms-playwright" "${RUNNER_TEMP}" 2>/dev/null || true | |
| - name: Check WebGPU and WebGL canvas capture | |
| if: matrix.shard == 1 | |
| timeout-minutes: 2 | |
| run: xvfb-run -a yarn test-presentation | |
| - name: Run headless tests and generate coverage | |
| env: | |
| # Include browser process failures alongside WebGPU test assertions. | |
| DEBUG: pw:browser | |
| run: | | |
| yarn test-coverage --shard=${{ matrix.shard }}/3 | |
| - name: Report disk usage after coverage | |
| if: always() | |
| run: | | |
| df -h . | |
| du -sh . coverage "${HOME}/.yarn" "${HOME}/.cache/ms-playwright" "${RUNNER_TEMP}" 2>/dev/null || true | |
| - name: Sanitize lcov for Coveralls | |
| run: | | |
| node - <<'NODE' | |
| const fs = require('fs'); | |
| const coveragePath = 'coverage/lcov.info'; | |
| const lines = fs.readFileSync(coveragePath, 'utf8').split(/\r?\n/); | |
| const records = []; | |
| let currentRecord = []; | |
| for (const line of lines) { | |
| currentRecord.push(line); | |
| if (line === 'end_of_record') { | |
| const sourceFileLine = currentRecord.find(recordLine => recordLine.startsWith('SF:')); | |
| const sourceFile = sourceFileLine ? sourceFileLine.slice(3).trim() : ''; | |
| if (sourceFile) { | |
| records.push(currentRecord.join('\n')); | |
| } | |
| currentRecord = []; | |
| } | |
| } | |
| if (currentRecord.length) { | |
| const sourceFileLine = currentRecord.find(recordLine => recordLine.startsWith('SF:')); | |
| const sourceFile = sourceFileLine ? sourceFileLine.slice(3).trim() : ''; | |
| if (sourceFile) { | |
| records.push(currentRecord.join('\n')); | |
| } | |
| } | |
| fs.writeFileSync(coveragePath, `${records.join('\n')}\n`); | |
| NODE | |
| - name: Upload browser coverage artifact | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: browser-coverage-lcov-${{ matrix.shard }} | |
| path: coverage/lcov.info | |
| if-no-files-found: error | |
| retention-days: 1 | |
| visual_examples: | |
| name: Visual examples (${{ matrix.group }}) | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 25 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| group: [city, styles, effects, atlas] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - name: Setup Node (with Corepack) | |
| uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Enable Corepack / Yarn 4 | |
| run: | | |
| corepack enable | |
| corepack prepare yarn@4.13.0 --activate | |
| yarn -v | |
| - name: Restore Yarn Berry artifacts | |
| id: yarn-cache | |
| uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 | |
| with: | |
| path: | | |
| ~/.yarn/berry/cache | |
| .yarn/install-state.gz | |
| key: ${{ runner.os }}-yarn4-${{ hashFiles('yarn.lock', '.yarnrc.yml', 'package.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn4- | |
| - name: Install dependencies | |
| run: yarn install --immutable | |
| - name: Save Yarn Berry artifacts | |
| if: steps.yarn-cache.outputs.cache-hit != 'true' | |
| uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 | |
| with: | |
| path: | | |
| ~/.yarn/berry/cache | |
| .yarn/install-state.gz | |
| key: ${{ steps.yarn-cache.outputs.cache-primary-key }} | |
| - name: Cache Playwright Chromium | |
| id: playwright-cache | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: ${{ runner.os }}-ms-playwright-${{ hashFiles('yarn.lock', 'package.json') }} | |
| - name: Install Playwright Chromium | |
| run: yarn exec playwright install chromium | |
| - name: Run Deck pattern fill visual checks | |
| if: ${{ matrix.group == 'styles' }} | |
| run: xvfb-run -a yarn workspace luma.gl-examples-deck-pattern-fills test:visual | |
| - name: Upload Deck pattern fill screenshots | |
| if: ${{ always() && matrix.group == 'styles' }} | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: deck-pattern-fills | |
| path: /tmp/pattern-fills-*.png | |
| - name: Run Deck sketch edges visual checks | |
| if: ${{ matrix.group == 'styles' }} | |
| run: xvfb-run -a yarn workspace luma.gl-examples-deck-sketch-edges test:visual | |
| - name: Upload Deck sketch edge screenshots | |
| if: ${{ always() && matrix.group == 'styles' }} | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: deck-sketch-edges | |
| path: /tmp/sketch-edges-*.png | |
| - name: Run Deck city scene visual smoke | |
| if: ${{ matrix.group == 'city' }} | |
| env: | |
| CITY_SCENE_ARTIFACTS: ${{ runner.temp }} | |
| run: xvfb-run -a yarn workspace luma.gl-examples-deck-city-scene test:visual | |
| - name: Upload Deck city scene screenshots | |
| if: ${{ always() && matrix.group == 'city' }} | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: deck-city-scene | |
| path: ${{ runner.temp }}/city-scene-*.png | |
| if-no-files-found: warn | |
| retention-days: 7 | |
| - name: Run Deck globe weather visual checks | |
| if: ${{ matrix.group == 'city' }} | |
| run: xvfb-run -a yarn workspace luma.gl-examples-deck-globe-clouds test:visual | |
| - name: Upload globe weather screenshots | |
| if: ${{ always() && matrix.group == 'city' }} | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: deck-globe-cloud-cover | |
| path: /tmp/globe-cloud-cover-*.png | |
| if-no-files-found: warn | |
| retention-days: 7 | |
| - name: Run Deck lights and fireflies visual checks | |
| if: ${{ matrix.group == 'styles' }} | |
| run: xvfb-run -a yarn workspace luma.gl-examples-deck-point-glow test:visual | |
| - name: Upload Deck lights and fireflies screenshots | |
| if: ${{ always() && matrix.group == 'styles' }} | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: deck-point-glow | |
| path: /tmp/riverfront-fireflies*.png | |
| if-no-files-found: warn | |
| retention-days: 7 | |
| - name: Run riverfront routes visual smoke | |
| if: ${{ matrix.group == 'styles' }} | |
| run: xvfb-run -a yarn workspace luma.gl-examples-deck-styled-paths test:visual | |
| - name: Upload riverfront routes screenshots | |
| if: ${{ always() && matrix.group == 'styles' }} | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: deck-styled-paths | |
| path: /tmp/styled-paths-*.png | |
| - name: Run riverfront effects visual smoke | |
| if: ${{ matrix.group == 'effects' }} | |
| run: xvfb-run -a yarn workspace luma.gl-examples-deck-scene-buffers test:visual | |
| - name: Upload riverfront effects screenshots | |
| if: ${{ always() && matrix.group == 'effects' }} | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: deck-scene-buffers | |
| path: /tmp/scene-buffers-*.png | |
| - name: Test riverfront GPU flow | |
| if: ${{ matrix.group == 'effects' }} | |
| run: xvfb-run -a yarn workspace luma.gl-examples-deck-flow-particles test:visual | |
| - name: Test riverfront weather | |
| if: ${{ matrix.group == 'effects' }} | |
| run: xvfb-run -a yarn workspace luma.gl-examples-deck-weather test:visual | |
| - name: Test shared height fog in Visualization City | |
| if: ${{ matrix.group == 'effects' }} | |
| run: xvfb-run -a yarn workspace luma.gl-examples-experimental-advanced-effects test:fog | |
| # Atlas uses its workspace Playwright version and runs on a dedicated matrix worker. | |
| - name: Install Spatial Atlas Playwright Chromium | |
| if: ${{ matrix.group == 'atlas' }} | |
| run: yarn workspace luma.gl-examples-showcase-billion-point-spatial-atlas exec playwright install chromium | |
| - name: Run Billion-Point Spatial Atlas visual smoke | |
| if: ${{ matrix.group == 'atlas' }} | |
| env: | |
| SPATIAL_ATLAS_SCREENSHOT: ${{ runner.temp }}/billion-point-spatial-atlas.png | |
| run: yarn workspace luma.gl-examples-showcase-billion-point-spatial-atlas test:visual | |
| - name: Upload Billion-Point Spatial Atlas visual smoke screenshot | |
| if: ${{ always() && matrix.group == 'atlas' }} | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: billion-point-spatial-atlas-visual-smoke | |
| path: ${{ runner.temp }}/billion-point-spatial-atlas*.png | |
| if-no-files-found: warn | |
| retention-days: 7 | |
| gltf_reference_evidence: | |
| name: glTF WebGPU/WebGL2 reference evidence | |
| # Ubuntu's CPU-backed WebGPU adapter destroys its device when the bump-material PBR command | |
| # buffer is submitted. Use GitHub's fixed M1 runner for trustworthy hardware reference pixels. | |
| runs-on: macos-15 | |
| timeout-minutes: 20 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - name: Setup Node (with Corepack) | |
| uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Enable Corepack / Yarn 4 | |
| run: | | |
| corepack enable | |
| corepack prepare yarn@4.13.0 --activate | |
| yarn -v | |
| - name: Cache Yarn Berry artifacts | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 | |
| with: | |
| path: | | |
| ~/.yarn/berry/cache | |
| .yarn/install-state.gz | |
| key: ${{ runner.os }}-yarn4-${{ hashFiles('yarn.lock', '.yarnrc.yml', 'package.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn4- | |
| - name: Install dependencies | |
| run: yarn install --immutable | |
| - name: Cache Playwright Chromium | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: ${{ runner.os }}-ms-playwright-${{ hashFiles('yarn.lock', 'package.json') }} | |
| - name: Install Playwright Chromium | |
| run: yarn exec playwright install chromium | |
| - name: Test glTF reference tooling | |
| run: yarn gltf:reference-evidence:test | |
| - name: Capture deterministic glTF evidence | |
| run: >- | |
| yarn gltf:reference-evidence | |
| --headless | |
| --artifact-base "${RUNNER_TEMP}/gltf-reference" | |
| - name: Upload glTF reference evidence | |
| if: always() | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: gltf-reference-evidence | |
| path: ${{ runner.temp }}/gltf-reference | |
| if-no-files-found: error | |
| retention-days: 7 | |
| node_coverage: | |
| name: Node coverage | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - name: Setup Node (with Corepack) | |
| uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Enable Corepack / Yarn 4 | |
| run: | | |
| corepack enable | |
| corepack prepare yarn@4.13.0 --activate | |
| yarn -v | |
| - name: Cache Yarn Berry artifacts | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 | |
| with: | |
| path: | | |
| ~/.yarn/berry/cache | |
| .yarn/install-state.gz | |
| key: ${{ runner.os }}-yarn4-${{ hashFiles('yarn.lock', '.yarnrc.yml', 'package.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn4- | |
| - name: Install dependencies | |
| run: yarn install --immutable | |
| - name: Collect focused Node coverage | |
| run: yarn test-node-coverage | |
| - name: Upload Node coverage artifact | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: node-coverage-lcov | |
| path: coverage-node/lcov.info | |
| if-no-files-found: error | |
| retention-days: 1 | |
| test: | |
| name: Aggregate test coverage | |
| needs: [browser_coverage, node_coverage, visual_examples] | |
| if: ${{ !cancelled() }} | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 5 | |
| steps: | |
| - name: Checkout code for coverage reporting | |
| if: ${{ needs.browser_coverage.result == 'success' && needs.node_coverage.result == 'success' }} | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - name: Download browser coverage artifacts | |
| if: ${{ needs.browser_coverage.result == 'success' && needs.node_coverage.result == 'success' }} | |
| uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5 | |
| with: | |
| pattern: browser-coverage-lcov-* | |
| path: coverage/shards | |
| - name: Download Node coverage artifact | |
| if: ${{ needs.browser_coverage.result == 'success' && needs.node_coverage.result == 'success' }} | |
| uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5 | |
| with: | |
| name: node-coverage-lcov | |
| path: coverage/shards/node-coverage-lcov | |
| - name: Merge browser and Node coverage reports | |
| if: ${{ needs.browser_coverage.result == 'success' && needs.node_coverage.result == 'success' }} | |
| run: | | |
| node ./test/utils/merge-lcov.mjs \ | |
| --output coverage/lcov.info \ | |
| coverage/shards/browser-coverage-lcov-1/lcov.info \ | |
| coverage/shards/browser-coverage-lcov-2/lcov.info \ | |
| coverage/shards/browser-coverage-lcov-3/lcov.info \ | |
| coverage/shards/node-coverage-lcov/lcov.info | |
| - name: Upload combined coverage to Coveralls | |
| if: ${{ needs.browser_coverage.result == 'success' && needs.node_coverage.result == 'success' }} | |
| uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b # v2.3.6 | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| file: coverage/lcov.info | |
| # Reruns must not upload into a build that a previous attempt closed. | |
| build-number: ${{ github.run_id }}-${{ github.run_attempt }} | |
| - name: Verify all coverage and visual jobs passed | |
| if: always() | |
| env: | |
| BROWSER_COVERAGE_RESULT: ${{ needs.browser_coverage.result }} | |
| NODE_COVERAGE_RESULT: ${{ needs.node_coverage.result }} | |
| VISUAL_EXAMPLES_RESULT: ${{ needs.visual_examples.result }} | |
| run: | | |
| if [ "$BROWSER_COVERAGE_RESULT" != "success" ]; then | |
| echo "::error::Browser coverage shards finished with status: $BROWSER_COVERAGE_RESULT" | |
| exit 1 | |
| fi | |
| if [ "$VISUAL_EXAMPLES_RESULT" != "success" ]; then | |
| echo "::error::Visual example jobs finished with status: $VISUAL_EXAMPLES_RESULT" | |
| exit 1 | |
| fi | |
| if [ "$NODE_COVERAGE_RESULT" != "success" ]; then | |
| echo "::error::Node coverage job finished with status: $NODE_COVERAGE_RESULT" | |
| exit 1 | |
| fi | |
| lighting_examples: | |
| name: Riverfront lighting (${{ matrix.example }}) | |
| runs-on: ubuntu-22.04 | |
| # Fireflies compares emission colors, bloom, reflections and motion on SwiftShader. | |
| timeout-minutes: ${{ matrix.example == 'fireflies' && 20 || 15 }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| example: [fireflies, hdr-night-lighting, global-illumination, light-shafts] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - name: Setup Node | |
| uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Enable Corepack | |
| run: corepack enable | |
| - name: Cache Yarn Berry artifacts | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 | |
| with: | |
| path: | | |
| ~/.yarn/berry/cache | |
| .yarn/install-state.gz | |
| key: ${{ runner.os }}-yarn4-${{ hashFiles('yarn.lock', '.yarnrc.yml', 'package.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn4- | |
| - name: Install dependencies | |
| run: yarn install --immutable | |
| - name: Build packages | |
| run: yarn build | |
| - name: Cache Playwright Chromium | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 | |
| with: | |
| path: ~/.cache/ms-playwright | |
| key: ${{ runner.os }}-ms-playwright-${{ hashFiles('yarn.lock', 'package.json') }} | |
| - name: Install Chromium | |
| run: yarn exec playwright install --with-deps chromium | |
| - name: Verify shared lighting examples | |
| run: xvfb-run -a node examples/deck/riverfront-lighting-visual.mjs "${{ matrix.example }}" | |
| - name: Upload lighting screenshots | |
| if: always() | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: riverfront-lighting-${{ matrix.example }} | |
| path: /tmp/riverfront-${{ matrix.example }}.png | |
| if-no-files-found: warn | |
| retention-days: 7 | |
| examples: | |
| name: Build, lint, Node tests, examples, and website | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - name: Setup Node (with Corepack) | |
| uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6 | |
| with: | |
| node-version-file: '.nvmrc' | |
| - name: Enable Corepack / Yarn 4 | |
| run: | | |
| corepack enable | |
| corepack prepare yarn@4.13.0 --activate | |
| yarn -v | |
| - name: Cache Yarn Berry artifacts | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 | |
| with: | |
| path: | | |
| ~/.yarn/berry/cache | |
| .yarn/install-state.gz | |
| key: ${{ runner.os }}-yarn4-${{ hashFiles('yarn.lock', '.yarnrc.yml', 'package.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-yarn4- | |
| - name: Install dependencies | |
| run: yarn install --immutable | |
| - name: Check bundle-size budgets | |
| run: | | |
| bundleSizeStatus=0 | |
| yarn bundle-size --output .bundle-size || bundleSizeStatus=$? | |
| cat .bundle-size/report.md >> "$GITHUB_STEP_SUMMARY" | |
| exit "$bundleSizeStatus" | |
| - name: Upload bundle-size report | |
| if: always() | |
| uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0 | |
| with: | |
| name: bundle-size-report | |
| path: .bundle-size | |
| if-no-files-found: error | |
| include-hidden-files: true | |
| - name: Build packages for example type declarations | |
| run: | | |
| yarn build | |
| - name: Verify experimental geospatial package imports | |
| run: yarn test-geospatial-package | |
| - name: Run lint | |
| run: | | |
| yarn lint | |
| - name: Run Node tests | |
| run: yarn test-node | |
| - name: Typecheck examples | |
| run: | | |
| yarn examples:typecheck | |
| - name: Synchronize website example assets | |
| run: node website/scripts/sync-example-assets.mjs | |
| - name: Build standalone website examples | |
| run: yarn workspace website-docusaurus build:standalone-examples | |
| - name: Build Docusaurus website | |
| env: | |
| NODE_OPTIONS: --max-old-space-size=6144 | |
| run: yarn workspace website-docusaurus docusaurus build | |
| - name: Normalize LLM documentation output | |
| run: node website/scripts/normalize-llm-output.mjs | |
| - name: Validate LLM documentation output | |
| run: node website/scripts/check-llm-output.mjs |