Skip to content

Commit 30c7dea

Browse files
authored
Merge pull request #5412 from salesforce/wjh/backport-perf-tests
chore(ci): backport perf testing config @W-18882666
2 parents 826b829 + ff5ed61 commit 30c7dea

File tree

5 files changed

+74
-8
lines changed

5 files changed

+74
-8
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Run Performance Benchmarks
2+
3+
on:
4+
push:
5+
branches:
6+
- winter*
7+
- spring*
8+
- summer*
9+
10+
jobs:
11+
run-performance-tests:
12+
# It is important to use this image so that we have a consistent IP address
13+
runs-on: salesforce-Ubuntu
14+
steps:
15+
- name: Checkout repository
16+
uses: actions/checkout@v4
17+
18+
- name: Setup Node
19+
uses: actions/setup-node@v4
20+
with:
21+
node-version: '20.18.1'
22+
cache: 'yarn'
23+
24+
- name: Install dependencies
25+
run: yarn install --frozen-lockfile
26+
27+
- name: Get Previous Release
28+
id: previous_release
29+
run: |
30+
# Parse current season and year from branch name
31+
[[ "$GITHUB_REF_NAME" =~ ^(winter|spring|summer)([0-9]+)$ ]]
32+
season="${BASH_REMATCH[1]}"
33+
year="${BASH_REMATCH[2]}"
34+
35+
# Get previous season and year
36+
case $season in
37+
winter) previous="summer$((year - 1))";;
38+
spring) previous="winter$year";;
39+
summer) previous="spring$year";;
40+
esac
41+
# Expose to GitHub Actions
42+
echo "branch=$previous" >> "$GITHUB_OUTPUT"
43+
44+
- name: Build benchmarks
45+
env:
46+
BENCHMARK_REF: ${{steps.previous_release.outputs.branch}}
47+
run: yarn build:performance
48+
49+
- name: Run benchmarks
50+
working-directory: ./packages/@lwc/perf-benchmarks
51+
env:
52+
BENCHMARK_REF: ${{steps.previous_release.outputs.branch}}
53+
run: |
54+
echo "Running benchmarks for $GITHUB_REF_NAME against $BENCHMARK_REF"
55+
yarn test:run
56+
57+
- name: Format results
58+
working-directory: ./packages/@lwc/perf-benchmarks
59+
run: yarn --silent test:format >> "$GITHUB_STEP_SUMMARY"

nx.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,8 @@
2424
},
2525
"$schema": "./node_modules/nx/schemas/nx-schema.json",
2626
"cacheDirectory": "./.nx-cache",
27-
"defaultBase": "master"
27+
"defaultBase": "master",
28+
"tui": {
29+
"enabled": false
30+
}
2831
}

packages/@lwc/perf-benchmarks/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"@best/runner-remote": "^14.0.0",
2828
"folder-hash": "4.1.1",
2929
"markdown-table": "^3.0.4",
30-
"tachometer": "^0.7.1"
30+
"tachometer": "^0.7.2"
3131
},
3232
"nx": {
3333
"targets": {

packages/@lwc/perf-benchmarks/scripts/build.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,10 @@ function createTachometerJson(htmlFilename, benchmarkName, directoryHash, cpuThr
112112
// We want to recompile whatever benchmarks we've added with the
113113
// compiler code from tip-of-tree, but we also want Tachometer to serve
114114
// `@lwc/perf-benchmarks-components` itself.
115-
'rm -fr ./packages/@lwc/perf-benchmarks-components/{src,scripts}',
116-
`cp -R ${benchmarkComponentsDir}/{src,scripts} ./packages/@lwc/perf-benchmarks-components`,
115+
'rm -fr ./packages/@lwc/perf-benchmarks-components/src',
116+
'rm -fr ./packages/@lwc/perf-benchmarks-components/scripts',
117+
`cp -R ${benchmarkComponentsDir}/src ./packages/@lwc/perf-benchmarks-components`,
118+
`cp -R ${benchmarkComponentsDir}/scripts ./packages/@lwc/perf-benchmarks-components`,
117119
'yarn --frozen-lockfile',
118120
// bust the Tachometer cache in case these files change locally
119121
`echo '${directoryHash}'`,

yarn.lock

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1975,9 +1975,11 @@
19751975

19761976
"@lwc/eslint-plugin-lwc-internal@link:./scripts/eslint-plugin":
19771977
version "0.0.0"
1978+
uid ""
19781979

19791980
"@lwc/test-utils-lwc-internals@link:./scripts/test-utils":
19801981
version "0.0.0"
1982+
uid ""
19811983

19821984
"@napi-rs/wasm-runtime@0.2.4":
19831985
version "0.2.4"
@@ -12022,10 +12024,10 @@ table@^6.0.7:
1202212024
string-width "^4.2.3"
1202312025
strip-ansi "^6.0.1"
1202412026

12025-
tachometer@^0.7.1:
12026-
version "0.7.1"
12027-
resolved "https://registry.yarnpkg.com/tachometer/-/tachometer-0.7.1.tgz#5564e04f7b752cc1c7baa23c6cae7c80033015f2"
12028-
integrity sha512-gOc7NfhriHamSFG9bBVzhB80V97jUoIPKz3QOO8vDma7hUwJSulShCUm+dS7qu2r+qH/dcvB1jFQnt/m2Z4O+w==
12027+
tachometer@^0.7.2:
12028+
version "0.7.2"
12029+
resolved "https://registry.yarnpkg.com/tachometer/-/tachometer-0.7.2.tgz#111c6b179f90399c9207cfa3cad41429cd1714cd"
12030+
integrity sha512-e9dtDyWuMFyomQxo16vzti6ymoJd3Dp2yGfKrhAiNzCkb2HiP6A0+SWtqE84hcO6tSKZF8eTFqrxM2uKbliJyQ==
1202912031
dependencies:
1203012032
ansi-escape-sequences "^6.0.1"
1203112033
command-line-args "^5.0.2"

0 commit comments

Comments
 (0)