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 :
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