Skip to content

Commit f27b1b7

Browse files
authored
Add steps for comparing with 'main' branch (#842)
1 parent e539ac1 commit f27b1b7

File tree

1 file changed

+28
-1
lines changed

1 file changed

+28
-1
lines changed

.github/workflows/pull_request.yml

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ jobs:
2626
BUILD_CMD: swift build -c release
2727
BENCH_CMD: .build/release/RegexBenchmark
2828
BASELINE_FILE: benchmark-baseline
29+
MAIN_FILE: benchmark-main
2930
COMPARE_FILE: benchmark-pr
3031
COMPARE_OUT_FILE: benchmark-results.txt
3132
steps:
@@ -46,6 +47,26 @@ jobs:
4647
set -euo pipefail
4748
eval "$BENCH_CMD --save $RUNNER_TEMP/$BASELINE_FILE"
4849
test -s "$RUNNER_TEMP/$BASELINE_FILE" || { echo "Baseline not created at $BASELINE_FILE"; exit 1; }
50+
- name: Check out main branch
51+
if: ${{ github.event.pull_request.base.ref != 'main' }}
52+
uses: actions/checkout@v4
53+
with:
54+
ref: main
55+
path: main-branch
56+
fetch-depth: 0
57+
- name: Build main branch
58+
if: ${{ github.event.pull_request.base.ref != 'main' }}
59+
working-directory: main-branch
60+
run: |
61+
set -euo pipefail
62+
eval "$BUILD_CMD"
63+
- name: Run main benchmark
64+
if: ${{ github.event.pull_request.base.ref != 'main' }}
65+
working-directory: main-branch
66+
run: |
67+
set -euo pipefail
68+
eval "$BENCH_CMD --save $RUNNER_TEMP/$MAIN_FILE"
69+
test -s "$RUNNER_TEMP/$MAIN_FILE" || { echo "Baseline (main) not created at $MAIN_FILE"; exit 1; }
4970
- name: Check out PR branch
5071
uses: actions/checkout@v4
5172
with:
@@ -64,11 +85,17 @@ jobs:
6485
eval "$BENCH_CMD --save $RUNNER_TEMP/$COMPARE_FILE"
6586
test -s "$RUNNER_TEMP/$COMPARE_FILE" || { echo "Comparison not created at $COMPARE_FILE"; exit 1; }
6687
eval "$BENCH_CMD --compare $RUNNER_TEMP/$BASELINE_FILE" | tee "$RUNNER_TEMP/$COMPARE_OUT_FILE"
67-
- name: 📊 Compare benchmarks
88+
- name: 📊 Compare benchmarks with base
6889
working-directory: pr
6990
run: |
7091
set -euo pipefail
7192
eval "$BENCH_CMD --load $RUNNER_TEMP/$COMPARE_FILE --compare $RUNNER_TEMP/$BASELINE_FILE --compare-compile-time $RUNNER_TEMP/$BASELINE_FILE" | tee "$RUNNER_TEMP/$COMPARE_OUT_FILE"
93+
- name: 📊 Compare benchmarks with `main`
94+
if: ${{ github.event.pull_request.base.ref != 'main' }}
95+
working-directory: pr
96+
run: |
97+
set -euo pipefail
98+
eval "$BENCH_CMD --load $RUNNER_TEMP/$COMPARE_FILE --compare $RUNNER_TEMP/$MAIN_FILE --compare-compile-time $RUNNER_TEMP/$MAIN_FILE"
7299
- name: Upload benchmark artifacts
73100
uses: actions/upload-artifact@v4
74101
with:

0 commit comments

Comments
 (0)