feat(experimental): add GPU scene records (#2834) #4289
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: | |
| test: | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 15 | |
| 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') }} | |
| - 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', 'dev-modules/devtools-extensions/package.json') }} | |
| - name: Install Playwright Chromium | |
| run: yarn playwright:install | |
| - 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: Run headless tests and generate coverage | |
| run: | | |
| yarn test-coverage | |
| - 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: Run node tests | |
| run: | | |
| yarn test-node | |
| - 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 coverage to Coveralls | |
| uses: coverallsapp/github-action@648a8eb78e6d50909eff900e4ec85cab4524a45b # v2.3.6 | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| examples: | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 15 | |
| 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') }} | |
| - name: Install dependencies | |
| run: yarn install --immutable | |
| - name: Build packages for example type declarations | |
| run: | | |
| yarn build | |
| - name: Run lint | |
| run: | | |
| yarn lint | |
| - name: Typecheck examples | |
| run: | | |
| yarn examples:typecheck | |
| website: | |
| runs-on: ubuntu-22.04 | |
| timeout-minutes: 15 | |
| 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') }} | |
| - name: Install dependencies and build website | |
| run: | | |
| yarn install --immutable | |
| yarn website:build |