Skip to content

Commit fa06611

Browse files
committed
add run
1 parent 152fd58 commit fa06611

File tree

4 files changed

+76
-49
lines changed

4 files changed

+76
-49
lines changed

.github/workflows/benchmark.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ jobs:
6565
echo "COREPACK_ENABLE_AUTO_PIN: ${{ env.COREPACK_ENABLE_AUTO_PIN }}"
6666
echo "YARN_ENABLE_IMMUTABLE_INSTALLS: ${{ env.YARN_ENABLE_IMMUTABLE_INSTALLS }}"
6767
68+
- name: Run Task Execution Benchmarks
69+
run: |
70+
bash ./scripts/run.sh
71+
6872
- name: Run Project Benchmarks (Next)
6973
run: |
7074
bash ./scripts/run.sh next

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
.DS_Store
1+
.DS_Store
2+
results

scripts/install.sh

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/bin/bash
2+
3+
# WARNING
4+
echo "WARNING: This script removes all installed packages, cache files & uncommitted git history."
5+
6+
# Navigate to the fixture directory
7+
cd ./fixtures/$1
8+
9+
# Create the results directory
10+
mkdir -p ../../results/$1
11+
12+
# Run the benchmark suite
13+
hyperfine --export-json=../../results/$1/benchmarks.json --warmup 3 --runs 10 -i --prepare 'bash ../../scripts/clean.sh' \
14+
-n 'npm' 'bash ../../scripts/install/npm.sh' \
15+
-n 'yarn' 'bash ../../scripts/install/yarn.sh' \
16+
-n 'berry' 'bash ../../scripts/install/berry.sh' \
17+
-n 'pnpm' 'bash ../../scripts/install/pnpm.sh' \
18+
-n 'vlt' 'bash ../../scripts/install/vlt.sh' \
19+
-n 'bun' 'bash ../../scripts/install/bun.sh' \
20+
-n 'deno' 'bash ../../scripts/install/deno.sh'
21+
22+
# Count the number of packages installed
23+
24+
# npm
25+
bash ../../scripts/clean.sh
26+
bash ../../scripts/install/npm.sh
27+
bash ../../scripts/package-count.sh >> "../../results/$1/npm"
28+
29+
# yarn
30+
bash ../../scripts/clean.sh
31+
bash ../../scripts/install/yarn.sh
32+
bash ../../scripts/package-count.sh >> "../../results/$1/yarn"
33+
34+
# yarn berry
35+
bash ../../scripts/clean.sh
36+
bash ../../scripts/install/berry.sh
37+
bash ../../scripts/package-count.sh >> "../../results/$1/berry"
38+
39+
# pnpm
40+
bash ../../scripts/clean.sh
41+
bash ../../scripts/install/pnpm.sh
42+
bash ../../scripts/package-count.sh >> "../../results/$1/pnpm"
43+
44+
# vlt
45+
bash ../../scripts/clean.sh
46+
bash ../../scripts/install/vlt.sh
47+
bash ../../scripts/package-count.sh >> "../../results/$1/vlt"
48+
49+
# bun
50+
bash ../../scripts/clean.sh
51+
bash ../../scripts/install/bun.sh
52+
bash ../../scripts/package-count.sh >> "../../results/$1/bun"
53+
54+
# deno
55+
bash ../../scripts/clean.sh
56+
bash ../../scripts/install/deno.sh
57+
bash ../../scripts/package-count.sh >> "../../results/$1/deno"

scripts/run.sh

Lines changed: 13 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,18 @@
11
#!/bin/bash
22

3-
cd ./fixtures/$1
3+
# WARNING
4+
echo "WARNING: This script removes all installed packages, cache files & uncommitted git history."
45

5-
# Create the results directory
6-
mkdir -p ../../results/$1
6+
# Navigate to the fixture directory
7+
cd ./fixtures/$1
78

89
# Run the benchmark suite
9-
hyperfine --export-json=../../results/$1/benchmarks.json --warmup 3 --runs 10 -i --prepare 'bash ../../scripts/clean.sh' \
10-
-n 'npm' 'bash ../../scripts/install/npm.sh' \
11-
-n 'yarn' 'bash ../../scripts/install/yarn.sh' \
12-
-n 'berry' 'bash ../../scripts/install/berry.sh' \
13-
-n 'pnpm' 'bash ../../scripts/install/pnpm.sh' \
14-
-n 'vlt' 'bash ../../scripts/install/vlt.sh' \
15-
-n 'bun' 'bash ../../scripts/install/bun.sh' \
16-
-n 'deno' 'bash ../../scripts/install/deno.sh'
17-
18-
# Count the number of packages installed
19-
20-
# npm
21-
bash ../../scripts/clean.sh
22-
bash ../../scripts/install/npm.sh
23-
bash ../../scripts/package-count.sh >> "../../results/$1/npm"
24-
25-
# yarn
26-
bash ../../scripts/clean.sh
27-
bash ../../scripts/install/yarn.sh
28-
bash ../../scripts/package-count.sh >> "../../results/$1/yarn"
29-
30-
# yarn berry
31-
bash ../../scripts/clean.sh
32-
bash ../../scripts/install/berry.sh
33-
bash ../../scripts/package-count.sh >> "../../results/$1/berry"
34-
35-
# pnpm
36-
bash ../../scripts/clean.sh
37-
bash ../../scripts/install/pnpm.sh
38-
bash ../../scripts/package-count.sh >> "../../results/$1/pnpm"
39-
40-
# vlt
41-
bash ../../scripts/clean.sh
42-
bash ../../scripts/install/vlt.sh
43-
bash ../../scripts/package-count.sh >> "../../results/$1/vlt"
44-
45-
# bun
46-
bash ../../scripts/clean.sh
47-
bash ../../scripts/install/bun.sh
48-
bash ../../scripts/package-count.sh >> "../../results/$1/bun"
49-
50-
# deno
51-
bash ../../scripts/clean.sh
52-
bash ../../scripts/install/deno.sh
53-
bash ../../scripts/package-count.sh >> "../../results/$1/deno"
10+
hyperfine --export-json=../../results/run.json --warmup 3 --runs 10 -i --prepare 'bash ../../scripts/clean.sh' \
11+
-n 'npm' 'npm run test' \
12+
-n 'yarn' 'corepack yarn@1 run test' \
13+
-n 'berry' 'corepack yarn@latest run test' \
14+
-n 'pnpm' 'corepack pnpm@latest run test' \
15+
-n 'vlt' 'vlt run test' \
16+
-n 'bun' 'bun run test' \
17+
-n 'deno' 'deno run test'
18+

0 commit comments

Comments
 (0)