blob: 44f74b7ea71d6050d548b5a899ef98ef128f9d24 [file] [log] [blame]
#!/bin/bash
# Shell script to manually trigger production CBB runs.
# Before running this script, please finish steps 1 through 3 given at
# https://skia.googlesource.com/buildbot/+/HEAD/temporal/README.md#locally-trigger-production-workflow-follow-these-steps-with-care
# For step 2, use `./kube/attach.sh skia-infra-corp`.
# Check for 4 or 5 command line arguments
if [ "$#" -lt 4 ] || [ "$#" -gt 5 ]; then
echo "Error: Expected 4 or 5 arguments: platform, browser, channel, commit position, benchmark."
echo "Usage: $0 <platform> <browser> <channel> <commit_position> [<benchmark>]"
exit 1
fi
PLATFORM="$1"
BROWSER="$2"
CHANNEL="$3"
COMMIT_POSITION="$4"
if [ -n "$5" ]; then
BENCHMARK="$5"
else
BENCHMARK="full"
fi
# Map benchmark argument to full name
case "$BENCHMARK" in
sp|sp3)
BENCHMARK="speedometer3"
;;
js|js2)
BENCHMARK="jetstream2"
;;
mm|mm13|mm1.3)
BENCHMARK="motionmark1.3"
;;
esac
# Validate benchmark argument
VALID_BENCHMARKS=("speedometer3" "jetstream2" "motionmark1.3" "full")
if ! [[ " ${VALID_BENCHMARKS[*]} " =~ " ${BENCHMARK} " ]]; then
echo "Error: Invalid benchmark '$BENCHMARK'."
echo "Valid benchmarks are: speedometer3, jetstream2, motionmark1.3, full (or aliases sp, js, mm)."
exit 1
fi
# Map platform argument to full name
case "$PLATFORM" in
m3)
PLATFORM="mac-m3-pro-perf-cbb"
;;
victus)
PLATFORM="win-victus-perf-cbb"
;;
plus)
PLATFORM="win-arm64-snapdragon-plus-perf-cbb"
;;
elite)
PLATFORM="win-arm64-snapdragon-elite-perf-cbb"
;;
tangor)
PLATFORM="android-pixel-tangor-perf-cbb"
;;
esac
# Validate platform argument
VALID_PLATFORMS=("mac-m3-pro-perf-cbb" "win-victus-perf-cbb" "win-arm64-snapdragon-plus-perf-cbb" "win-arm64-snapdragon-elite-perf-cbb" "android-pixel-tangor-perf-cbb")
if ! [[ " ${VALID_PLATFORMS[*]} " =~ " ${PLATFORM} " ]]; then
echo "Error: Invalid platform '$PLATFORM'."
echo "Valid platforms are: ${VALID_PLATFORMS[*]}"
exit 1
fi
# Validate browser argument
VALID_BROWSERS=("chrome" "safari" "edge")
if ! [[ " ${VALID_BROWSERS[*]} " =~ " ${BROWSER} " ]]; then
echo "Error: Invalid browser '$BROWSER'."
echo "Valid browsers are: ${VALID_BROWSERS[*]}"
exit 1
fi
# Validate channel argument
VALID_CHANNELS=("stable" "dev" "tp")
if ! [[ " ${VALID_CHANNELS[*]} " =~ " ${CHANNEL} " ]]; then
echo "Error: Invalid channel '$CHANNEL'."
echo "Valid channels are: ${VALID_CHANNELS[*]}"
exit 1
fi
# Validate commit position argument (must be an integer)
if ! [[ "$COMMIT_POSITION" =~ ^[0-9]+$ ]]; then
echo "Error: Commit position '$COMMIT_POSITION' must be an integer."
exit 1
fi
echo "Arguments validated successfully:"
echo "Platform: $PLATFORM"
echo "Browser: $BROWSER"
echo "Channel: $CHANNEL"
echo "Commit Position: $COMMIT_POSITION"
echo "Benchmark: $BENCHMARK"
# Check for running processes
if ! pgrep -f "./kube/attach.sh skia-infra-corp" > /dev/null; then
echo "Error: Process './kube/attach.sh skia-infra-corp' not found."
echo "Did you forget to run step 2 at https://skia.googlesource.com/buildbot/+/HEAD/temporal/README.md#locally-trigger-production-workflow-follow-these-steps-with-care?"
exit 1
fi
if ! pgrep -f "kubectl port-forward service/temporal --address 0.0.0.0 -n temporal 7233:7233" > /dev/null; then
echo "Error: Process 'kubectl port-forward service/temporal --address 0.0.0.0 -n temporal 7233:7233' not found."
echo "Did you forget to run step 3 at https://skia.googlesource.com/buildbot/+/HEAD/temporal/README.md#locally-trigger-production-workflow-follow-these-steps-with-care?"
exit 1
fi
bazelisk run //pinpoint/go/workflows/sample -- \
--namespace=perf-internal --taskQueue=perf.perf-chrome-public.bisect \
--cbb-runner=true --no-wait=true \
--configuration=$PLATFORM --browser=$BROWSER \
--channel=$CHANNEL --commit-position=$COMMIT_POSITION --benchmark=$BENCHMARK