Skip to content

Merge pull request #51 from nowaalex/changeset-release/main #19

Merge pull request #51 from nowaalex/changeset-release/main

Merge pull request #51 from nowaalex/changeset-release/main #19

Workflow file for this run

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