-
Notifications
You must be signed in to change notification settings - Fork 2
92 lines (74 loc) · 2.48 KB
/
benchmark.yaml
File metadata and controls
92 lines (74 loc) · 2.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
name: Package Manager Benchmarks
on:
push:
workflow_dispatch:
jobs:
benchmark:
name: 'Benchmark'
env:
COREPACK_ENABLE_STRICT: 0
COREPACK_ENABLE_AUTO_PIN: 0
YARN_ENABLE_IMMUTABLE_INSTALLS: false
strategy:
fail-fast: false
matrix:
platform:
- name: Linux
os: ubuntu-latest
shell: bash
runs-on: ${{ matrix.platform.os }}
steps:
- uses: actions/checkout@v4
- name: Install Node
uses: actions/setup-node@v2
with:
node-version: '22'
- name: Install & Setup Tools
run: |
# Install Package Managers & Benchmark Tools
cargo install hyperfine --quiet
npm install -g npm@latest vlt@latest bun@latest deno-bin@latest --silent
corepack enable yarn pnpm
# Create Results Directory
mkdir -p ./results/
# Log Package Manager Versions
NPM_VERSION="$(npm -v)"
VLT_VERSION="$(vlt -v)"
YARN_VERSION="$(corepack yarn@1 -v)"
BERRY_VERSION="$(corepack yarn@latest -v)"
PNPM_VERSION="$(corepack pnpm@latest -v)"
BUN_VERSION="$(bun -v)"
DENO_VERSION="$(echo "${$(deno -v)/deno/}" | xargs)"
ALL="npm: $NPM_VERSION /
vlt: $VLT_VERSION /
yarn: $YARN_VERSION /
berry: $BERRY_VERSION /
pnpm: $PNPM_VERSION /
bun: $BUN_VERSION /
deno: $DENO_VERSION"
echo $ALL
echo $ALL > ./results/versions
# Log Benchmark Configurations
echo "COREPACK_ENABLE_STRICT: ${{ env.COREPACK_ENABLE_STRICT }}"
echo "COREPACK_ENABLE_AUTO_PIN: ${{ env.COREPACK_ENABLE_AUTO_PIN }}"
echo "YARN_ENABLE_IMMUTABLE_INSTALLS: ${{ env.YARN_ENABLE_IMMUTABLE_INSTALLS }}"
- name: Run Task Execution Benchmarks
run: |
bash ./scripts/run.sh
- name: Run Project Benchmarks (Next)
run: |
bash ./scripts/run.sh next
- name: Run Project Benchmarks (Astro)
run: |
bash ./scripts/run.sh astro
- name: Run Project Benchmarks (Svelte)
run: |
bash ./scripts/run.sh svelte
- name: Run Project Benchmarks (Vue)
run: |
bash ./scripts/run.sh vue
- name: Upload Benchmark Results
uses: actions/upload-artifact@v4
with:
name: benchmark-results
path: ./results/