Add playwright profiling package #524
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: CodSpeed | |
| on: | |
| push: | |
| branches: | |
| - "main" | |
| pull_request: | |
| workflow_dispatch: | |
| jobs: | |
| codspeed-instrumented: | |
| name: Run CodSpeed instrumented | |
| runs-on: "ubuntu-latest" | |
| steps: | |
| - uses: "actions/checkout@v4" | |
| with: | |
| fetch-depth: 0 | |
| submodules: true | |
| - uses: pnpm/action-setup@v2 | |
| - uses: actions/setup-node@v3 | |
| with: | |
| cache: pnpm | |
| node-version-file: .nvmrc | |
| - run: pnpm install --frozen-lockfile --prefer-offline | |
| - run: pnpm turbo run build | |
| - name: Run simulation benchmarks | |
| uses: CodSpeedHQ/action@main | |
| with: | |
| mode: simulation | |
| run: | | |
| pnpm turbo run bench --filter=@codspeed/tinybench-plugin | |
| pnpm turbo run bench --filter=@codspeed/vitest-plugin | |
| pnpm turbo run bench --filter=@codspeed/benchmark.js-plugin | |
| pnpm --workspace-concurrency 1 -r bench-tinybench | |
| pnpm --workspace-concurrency 1 -r bench-benchmark-js | |
| pnpm --workspace-concurrency 1 -r bench-vitest | |
| - name: Run memory benchmarks | |
| uses: CodSpeedHQ/action@main | |
| with: | |
| mode: memory | |
| run: | | |
| pnpm turbo run bench --filter=@codspeed/tinybench-plugin | |
| pnpm turbo run bench --filter=@codspeed/vitest-plugin | |
| pnpm turbo run bench --filter=@codspeed/benchmark.js-plugin | |
| pnpm --workspace-concurrency 1 -r bench-tinybench | |
| pnpm --workspace-concurrency 1 -r bench-benchmark-js | |
| pnpm --workspace-concurrency 1 -r bench-vitest | |
| codspeed-walltime: | |
| name: Run CodSpeed walltime | |
| runs-on: "codspeed-macro" | |
| steps: | |
| - uses: "actions/checkout@v4" | |
| with: | |
| fetch-depth: 0 | |
| submodules: true | |
| - uses: pnpm/action-setup@v2 | |
| - uses: actions/setup-node@v3 | |
| with: | |
| cache: pnpm | |
| node-version-file: .nvmrc | |
| - run: pnpm install --frozen-lockfile --prefer-offline | |
| - run: pnpm turbo run build | |
| - name: Run benchmarks | |
| # use version from `main` branch to always test the latest version, in real projects, use a tag, like `@v2` | |
| uses: CodSpeedHQ/action@main | |
| with: | |
| mode: walltime | |
| run: | | |
| pnpm turbo run bench --filter=@codspeed/tinybench-plugin | |
| pnpm turbo run bench --filter=@codspeed/vitest-plugin | |
| pnpm turbo run bench --filter=@codspeed/benchmark.js-plugin | |
| pnpm --workspace-concurrency 1 -r bench-tinybench | |
| pnpm --workspace-concurrency 1 -r bench-vitest | |
| electron-e2e: | |
| name: Run electron inbox e2e | |
| runs-on: codspeed-macro | |
| permissions: | |
| contents: read | |
| id-token: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| submodules: true | |
| - name: Set up pnpm | |
| uses: pnpm/action-setup@v4 | |
| # The example links @codspeed/playwright to packages/playwright via the | |
| # `link:` protocol, so the in-repo plugin must be built (under the repo's | |
| # own Node version) before the example installs and resolves the symlink. | |
| - name: Set up Node.js (repo) | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: .nvmrc | |
| cache: pnpm | |
| - name: Install repo dependencies | |
| run: pnpm install --frozen-lockfile --prefer-offline | |
| - name: Build @codspeed/playwright | |
| run: pnpm turbo run build --filter=@codspeed/playwright | |
| - name: Set up Node.js (example) | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: examples/with-electron-and-walltime/package.json | |
| cache: pnpm | |
| cache-dependency-path: examples/with-electron-and-walltime/pnpm-lock.yaml | |
| - name: Install dependencies | |
| working-directory: examples/with-electron-and-walltime | |
| run: pnpm install --frozen-lockfile | |
| - name: Build electron app | |
| working-directory: examples/with-electron-and-walltime | |
| run: pnpm --filter @mail-client-demo/electron build | |
| - name: Install Playwright browsers | |
| working-directory: examples/with-electron-and-walltime | |
| run: pnpm --filter @mail-client-demo/electron exec playwright install --with-deps chromium | |
| - name: Run electron inbox e2e under codspeed | |
| uses: CodSpeedHQ/action@runner-alpha | |
| env: | |
| CODSPEED_WALLTIME_PROFILER: "samply" | |
| with: | |
| working-directory: examples/with-electron-and-walltime | |
| run: xvfb-run -a pnpm bench:electron | |
| mode: walltime | |
| runner-version: 4.16.2-alpha.2 |