Merge pull request #51 from nowaalex/changeset-release/main #19
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: Performance | |
| on: | |
| pull_request: | |
| paths: | |
| - packages/virtual/core/** | |
| - packages/virtual/react/** | |
| - .github/workflows/performance.yml | |
| - package.json | |
| - pnpm-lock.yaml | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - packages/virtual/core/** | |
| - packages/virtual/react/** | |
| - .github/workflows/performance.yml | |
| - package.json | |
| - pnpm-lock.yaml | |
| schedule: | |
| - cron: "23 3 * * 1" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| env: | |
| CI: true | |
| jobs: | |
| codspeed: | |
| name: CodSpeed benchmarks | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| permissions: | |
| contents: read | |
| id-token: write | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.0 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@f520eceda224fe1a4aed5a2a27a194379a409996 # v6 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| node-version-file: .nvmrc | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Build benchmark dependencies | |
| run: pnpm nx run @af-utils/virtual-core:build | |
| - name: Run stable benchmarks | |
| uses: CodSpeedHQ/action@373d6868929f444bc08d901fd0eb0ad52a8875ea # v5.2.1 | |
| with: | |
| mode: simulation | |
| run: pnpm nx run-many -t bench | |
| deep-checks: | |
| name: Scheduled deep performance checks | |
| if: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.0 | |
| - name: Install pnpm | |
| uses: pnpm/action-setup@f520eceda224fe1a4aed5a2a27a194379a409996 # v6 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 | |
| with: | |
| node-version-file: .nvmrc | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Install Chromium | |
| run: pnpm exec playwright install --with-deps chromium | |
| - name: Run full mutation suite | |
| run: pnpm nx run @af-utils/virtual-core:test:mutation:full | |
| - name: Check full V8 optimization invariants | |
| run: pnpm nx run @af-utils/virtual-core:jit:check:full | |
| - name: Benchmark SizeIndex growth | |
| run: pnpm nx run @af-utils/virtual-core:bench:size-index-growth | |
| - name: Benchmark browser item registration | |
| run: pnpm nx run @af-utils/virtual-core:bench:items:browser | |
| - name: Benchmark browser private fields | |
| run: pnpm nx run @af-utils/virtual-core:bench:private:browser |