Skip to content

fix: absolute paths #444

fix: absolute paths

fix: absolute paths #444

Workflow file for this run

name: Package Manager Benchmarks
on:
push:
workflow_dispatch:
inputs:
fixtures:
description: 'The fixture to run the benchmarks on'
default: '["next", "astro", "svelte", "vue"]'
variations:
description: 'The benchmark variations to run'
default: '["cache", "cache+lockfile", "cache+node_modules", "cache+lockfile+node_modules", "clean", "lockfile", "lockfile+node_modules", "node_modules"]'
binaries:
description: 'The binaries to run the benchmarks on'
default: '"npm,yarn,berry,pnpm,vlt,bun,deno,nx,turbo,node"'
warmup:
description: 'The number of warmup runs on each benchmark'
default: '2'
runs:
description: 'The number of runs on each benchmark'
default: '10'
schedule:
- cron: "5 23 * * *"
# Prevent multiple runs from interfering with each other
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
benchmark:
name: 'Run Benchmarks'
runs-on: ubuntu-latest
timeout-minutes: 60
strategy:
matrix:
fixture: ${{ fromJson(inputs.fixtures || '["next", "astro", "vue", "svelte"]') }}
variation: ${{ fromJson(inputs.variations || '["cache", "cache+lockfile", "cache+node_modules", "cache+lockfile+node_modules", "clean", "lockfile", "lockfile+node_modules", "node_modules"]') }}
include:
- variation: "run"
fixture: "run"
env:
BENCH_INCLUDE: ${{ fromJson(inputs.binaries || '"npm,yarn,berry,pnpm,vlt,bun,deno,nx,turbo,node"') }}
BENCH_WARMUP: ${{ inputs.warmup || '2' }}
BENCH_RUNS: ${{ inputs.runs || '10' }}
steps:
- uses: actions/checkout@v4
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: '24'
- name: Install & Setup Tools
run: |
bash ./scripts/setup.sh
- name: Run Benchmarks variations
run: |
if [ "${{ matrix.variation }}" = "run" ]; then
bash ./scripts/benchmark.sh run run
else
bash ./scripts/benchmark.sh ${{ matrix.fixture }} ${{ matrix.variation }}
fi
- name: Upload Benchmark Results
uses: actions/upload-artifact@v4
with:
name: results-${{ matrix.fixture }}-${{ matrix.variation }}
path: ./results/${{ matrix.fixture }}/${{ matrix.variation }}/
retention-days: 7
process:
name: 'Process Results'
runs-on: ubuntu-latest
needs: [benchmark]
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: Install Node
uses: actions/setup-node@v4
with:
node-version: '24'
- name: Download Results
uses: actions/download-artifact@v4
with:
path: results
pattern: results-*
- name: Process Results
run: |
bash ./scripts/process-results.sh
- name: Build Charts View
run: |
cd app && vlt install && vlr build
- name: Upload Processed Results
uses: actions/upload-artifact@v4
with:
name: results
path: results/
retention-days: 7
deploy:
name: 'Deploy Results'
runs-on: ubuntu-latest
needs: [process]
permissions:
contents: write
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- name: Download Results
uses: actions/download-artifact@v4
with:
name: results
path: results/
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: results
keep_files: true