@@ -459,9 +459,13 @@ jobs:
459459 # STEP 6: RUN PRO BENCHMARKS
460460 # ============================================
461461
462+ # bench.rb shells out to `bundle exec rails routes`; pin the Pro dummy
463+ # Gemfile so those calls use the same bundle as the Pro server.
462464 - name : Execute Pro benchmark suite
463465 if : env.RUN_PRO_RAILS
464466 timeout-minutes : 120
467+ env :
468+ BUNDLE_GEMFILE : ${{ github.workspace }}/react_on_rails_pro/spec/dummy/Gemfile
465469 run : |
466470 set -e
467471 echo "🏃 Running Pro benchmark suite..."
@@ -655,14 +659,14 @@ jobs:
655659 # when the pinned hash isn't in its DB. A single combined pattern
656660 # avoids false-positive matches across unrelated lines.
657661 if [ $BENCHER_EXIT_CODE -ne 0 ] && grep -q "Head Version.*not found" "$BENCHER_STDERR" && ! grep -qiE "alert|threshold violation|boundary violation" "$BENCHER_STDERR"; then
658- # When START_POINT_HASH_ARG is empty (e.g. workflow_dispatch on a
659- # non-main branch where the merge-base lookup returned ""), the
660- # substitution is a no-op; the inequality guard below skips the
661- # redundant retry.
662+ if [ -n "$START_POINT_HASH_ARG" ]; then
662663 RETRY_ARGS="${START_POINT_ARGS/$START_POINT_HASH_ARG/}"
663- if [ "$RETRY_ARGS" != "$START_POINT_ARGS" ]; then
664- echo ""
665- echo "⚠️ Start-point hash not found in Bencher — retrying without --start-point-hash (will use latest baseline)"
664+ else
665+ RETRY_ARGS="$START_POINT_ARGS"
666+ fi
667+ if [ "$RETRY_ARGS" != "$START_POINT_ARGS" ]; then
668+ echo ""
669+ echo "⚠️ Start-point hash not found in Bencher — retrying without --start-point-hash (will use latest baseline)"
666670 echo "::warning::Start-point hash not found in Bencher — falling back to latest baseline for comparison"
667671 set +e
668672 run_bencher "$RETRY_ARGS" > bench_results/bencher_report.html 2>"$BENCHER_STDERR"
0 commit comments