Skip to content

Commit b6e5d6e

Browse files
authored
Merge branch 'master' into wjh/more-wtr
2 parents 0d2d59a + 82eb255 commit b6e5d6e

File tree

4 files changed

+70
-7
lines changed

4 files changed

+70
-7
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"

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": "^15.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
@@ -1937,9 +1937,11 @@
19371937

19381938
"@lwc/eslint-plugin-lwc-internal@link:./scripts/eslint-plugin":
19391939
version "0.0.0"
1940+
uid ""
19401941

19411942
"@lwc/test-utils-lwc-internals@link:./scripts/test-utils":
19421943
version "0.0.0"
1944+
uid ""
19431945

19441946
"@napi-rs/[email protected]":
19451947
version "0.2.4"
@@ -12395,10 +12397,10 @@ table@^6.0.7:
1239512397
string-width "^4.2.3"
1239612398
strip-ansi "^6.0.1"
1239712399

12398-
tachometer@^0.7.1:
12399-
version "0.7.1"
12400-
resolved "https://registry.yarnpkg.com/tachometer/-/tachometer-0.7.1.tgz#5564e04f7b752cc1c7baa23c6cae7c80033015f2"
12401-
integrity sha512-gOc7NfhriHamSFG9bBVzhB80V97jUoIPKz3QOO8vDma7hUwJSulShCUm+dS7qu2r+qH/dcvB1jFQnt/m2Z4O+w==
12400+
tachometer@^0.7.2:
12401+
version "0.7.2"
12402+
resolved "https://registry.yarnpkg.com/tachometer/-/tachometer-0.7.2.tgz#111c6b179f90399c9207cfa3cad41429cd1714cd"
12403+
integrity sha512-e9dtDyWuMFyomQxo16vzti6ymoJd3Dp2yGfKrhAiNzCkb2HiP6A0+SWtqE84hcO6tSKZF8eTFqrxM2uKbliJyQ==
1240212404
dependencies:
1240312405
ansi-escape-sequences "^6.0.1"
1240412406
command-line-args "^5.0.2"

0 commit comments

Comments
 (0)