Skip to content

Commit 3572b3a

Browse files
committed
cleanup project
1 parent eb04cb9 commit 3572b3a

File tree

10 files changed

+117
-142
lines changed

10 files changed

+117
-142
lines changed

.github/workflows/benchmark.yaml

Lines changed: 24 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,6 @@ jobs:
2020
- name: Linux
2121
os: ubuntu-latest
2222
shell: bash
23-
24-
# - name: macOS
25-
# os: macos-latest
26-
# shell: bash
27-
28-
# - name: Windows
29-
# os: windows-latest
30-
# shell: cmd
3123

3224
runs-on: ${{ matrix.platform.os }}
3325

@@ -40,21 +32,31 @@ jobs:
4032
with:
4133
node-version: '22'
4234

43-
- name: Install Package Managers & Benchmark Tools
35+
- name: Install & Setup Package Managers & Benchmark Tools
4436
run: |
4537
cargo install hyperfine --quiet
4638
npm install -g npm@latest vlt@latest bun@latest deno-bin@latest --silent
4739
corepack enable yarn pnpm
48-
40+
mkdir -p ../results/
41+
4942
- name: Package Manager Versions
5043
run: |
51-
echo "npm $(npm -v)"
52-
echo "vlt $(vlt -v)"
53-
echo "yarn $(corepack yarn@1 -v)"
54-
echo "yarn $(corepack yarn@latest -v)"
55-
echo "pnpm $(corepack pnpm@latest -v)"
56-
echo "bun $(bun -v)"
57-
echo "$(deno -v)"
44+
NPM_VERSION="$(npm -v)"
45+
VLT_VERSION="$(vlt -v)"
46+
YARN_VERSION="$(corepack yarn@1 -v)"
47+
BERRY_VERSION="$(corepack yarn@latest -v)"
48+
PNPM_VERSION="$(corepack pnpm@latest -v)"
49+
BUN_VERSION="$(bun -v)"
50+
DENO_VERSION="$(echo "${$(deno -v)/deno/}" | xargs)"
51+
ALL="npm: $NPM_VERSION /
52+
vlt: $VLT_VERSION /
53+
yarn: $YARN_VERSION /
54+
berry: $BERRY_VERSION /
55+
pnpm: $PNPM_VERSION /
56+
bun: $BUN_VERSION /
57+
deno: $DENO_VERSION"
58+
echo $ALL
59+
echo $ALL > ../results/versions
5860
5961
- name: Configuration
6062
run: |
@@ -68,109 +70,18 @@ jobs:
6870
6971
- name: Run Project Benchmarks (Astro)
7072
run: |
71-
cd astro
72-
hyperfine --export-json=../astro.json --warmup 3 --runs 10 -i --prepare ' \
73-
rm -rf ./node_modules/; \
74-
rm -rf .npm*; \
75-
rm -rf .yarn*; \
76-
rm -rf .pnp*; \
77-
rm -rf .vlt*; \
78-
rm -rf package-lock.json; \
79-
rm -rf yarn.lock; \
80-
rm -rf pnpm-lock.yaml; \
81-
rm -rf vlt-lock.json; \
82-
rm -rf bun.lockb; \
83-
rm -rf deno.lock; \
84-
npm cache clean --force; \
85-
yarn@1 cache clean --all; \
86-
yarn@latest cache clean --all; \
87-
pnpm cache delete *; \
88-
rm -rf $(vlt config get cache); \
89-
rm -rf $(bun pm cache); \
90-
deno clean; \
91-
npm pkg delete packageManager; \
92-
git add .; \
93-
git stash' \
94-
'npm install --no-audit --no-fund' \
95-
'corepack yarn@1 install' \
96-
'corepack yarn@latest install' \
97-
'corepack pnpm@latest install' \
98-
'vlt install' \
99-
'bun install' \
100-
'deno install --allow-scripts'
73+
bash scripts/run.sh astro
10174
10275
- name: Run Project Benchmarks (Svelte)
10376
run: |
104-
cd svelte
105-
hyperfine --export-json=../svelte.json --warmup 3 --runs 10 -i --prepare ' \
106-
rm -rf ./node_modules/; \
107-
rm -rf .npm*; \
108-
rm -rf .yarn*; \
109-
rm -rf .pnp*; \
110-
rm -rf .vlt*; \
111-
rm -rf package-lock.json; \
112-
rm -rf yarn.lock; \
113-
rm -rf pnpm-lock.yaml; \
114-
rm -rf vlt-lock.json; \
115-
rm -rf bun.lockb; \
116-
rm -rf deno.lock; \
117-
npm cache clean --force; \
118-
yarn@1 cache clean --all; \
119-
yarn@latest cache clean --all; \
120-
pnpm cache delete *; \
121-
rm -rf $(vlt config get cache); \
122-
rm -rf $(bun pm cache); \
123-
deno clean; \
124-
npm pkg delete packageManager; \
125-
git add .; \
126-
git stash' \
127-
'npm install --no-audit --no-fund' \
128-
'corepack yarn@1 install' \
129-
'corepack yarn@latest install' \
130-
'corepack pnpm@latest install' \
131-
'vlt install' \
132-
'bun install' \
133-
'deno install --allow-scripts'
77+
bash scripts/run.sh svelte
13478
13579
- name: Run Project Benchmarks (Vue)
13680
run: |
137-
cd vue
138-
hyperfine --export-json=../vue.json --warmup 3 --runs 10 -i --prepare ' \
139-
rm -rf ./node_modules/; \
140-
rm -rf .npm*; \
141-
rm -rf .yarn*; \
142-
rm -rf .pnp*; \
143-
rm -rf .vlt*; \
144-
rm -rf package-lock.json; \
145-
rm -rf yarn.lock; \
146-
rm -rf pnpm-lock.yaml; \
147-
rm -rf vlt-lock.json; \
148-
rm -rf bun.lockb; \
149-
rm -rf deno.lock; \
150-
npm cache clean --force; \
151-
yarn@1 cache clean --all; \
152-
yarn@latest cache clean --all; \
153-
pnpm cache delete *; \
154-
rm -rf $(vlt config get cache); \
155-
rm -rf $(bun pm cache); \
156-
deno clean; \
157-
npm pkg delete packageManager; \
158-
git add .; \
159-
git stash' \
160-
'npm install --no-audit --no-fund' \
161-
'corepack yarn@1 install' \
162-
'corepack yarn@latest install' \
163-
'corepack pnpm@latest install' \
164-
'vlt install' \
165-
'bun install' \
166-
'deno install --allow-scripts'
81+
bash scripts/run.sh vue
16782
16883
- name: Upload Benchmark Results
16984
uses: actions/upload-artifact@v4
17085
with:
171-
name: benchmarks-results
172-
path: |
173-
next.json
174-
astro.json
175-
svelte.json
176-
vue.json
86+
name: benchmark-results
87+
path: results/

scripts/clean.sh

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/bash
2+
3+
rm -rf ./node_modules/;
4+
rm -rf .npm*;
5+
rm -rf .yarn*;
6+
rm -rf .pnp*;
7+
rm -rf .vlt*;
8+
rm -rf package-lock.json;
9+
rm -rf yarn.lock;
10+
rm -rf pnpm-lock.yaml;
11+
rm -rf vlt-lock.json;
12+
rm -rf bun.lockb;
13+
rm -rf deno.lock;
14+
npm cache clean --force;
15+
yarn@1 cache clean --all;
16+
yarn@latest cache clean --all;
17+
pnpm cache delete *;
18+
rm -rf $(vlt config get cache);
19+
rm -rf $(bun pm cache);
20+
deno clean;
21+
npm pkg delete packageManager;
22+
git add .;
23+
git stash;

scripts/install/berry.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
3+
corepack yarn@latest install

scripts/install/bun.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
3+
bun install

scripts/install/deno.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
3+
deno install --allow-scripts

scripts/install/npm.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
3+
npm install --no-audit --no-fund

scripts/install/pnpm.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
3+
corepack pnpm@latest install

scripts/install/vlt.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
3+
vlt install

scripts/install/yarn.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
3+
corepack yarn@1 install

scripts/run.sh

Lines changed: 49 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,52 @@
22

33
cd $1
44

5-
hyperfine --export-json=../next.json --warmup 3 --runs 10 -i --prepare ' \
6-
rm -rf ./node_modules/; \
7-
rm -rf .npm*; \
8-
rm -rf .yarn*; \
9-
rm -rf .pnp*; \
10-
rm -rf .vlt*; \
11-
rm -rf package-lock.json; \
12-
rm -rf yarn.lock; \
13-
rm -rf pnpm-lock.yaml; \
14-
rm -rf vlt-lock.json; \
15-
rm -rf bun.lockb; \
16-
rm -rf deno.lock; \
17-
npm cache clean --force; \
18-
yarn@1 cache clean --all; \
19-
yarn@latest cache clean --all; \
20-
pnpm cache delete *; \
21-
rm -rf $(vlt config get cache); \
22-
rm -rf $(bun pm cache); \
23-
deno clean; \
24-
npm pkg delete packageManager; \
25-
git add .; \
26-
git stash' \
27-
'npm install --no-audit --no-fund' \
28-
'corepack yarn@1 install' \
29-
'corepack yarn@latest install' \
30-
'corepack pnpm@latest install' \
31-
'vlt install' \
32-
'bun install' \
33-
'deno install --allow-scripts'
5+
# Create the results directory
6+
mkdir -p ../results/$1
7+
8+
# Run the benchmark suite
9+
hyperfine --export-json=../results/$1/benchmarks.json --warmup 3 --runs 10 -i --prepare 'bash ../scripts/clean.sh' \
10+
'bash ../scripts/install/npm.sh' \
11+
'bash ../scripts/install/yarn.sh' \
12+
'bash ../scripts/install/berry.sh' \
13+
'bash ../scripts/install/pnpm.sh' \
14+
'bash ../scripts/install/vlt.sh' \
15+
'bash ../scripts/install/bun.sh' \
16+
'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"

0 commit comments

Comments
 (0)