blob: c5f4616cfef82ee3d3790cc03e4571944e777895 [file] [log] [blame]
#!/bin/bash
# Found as /opt/start_swarming. Called by /etc/init.d/start-swarming so it can be run
# as user chrome-bot (swarming doesn't like being run as root).
# Logs will be found in /var/log/startup.(log|err)
# Wait 20s to make sure ssl is fully booted. Otherwise, we may get an error
# when trying to download the bootstrap code.
sleep 20s
# Copy authentication to home directory
cp /opt/.gitconfig /home/chrome-bot/.gitconfig
cp /opt/.netrc /home/chrome-bot/.netrc
host="$(hostname)"
swarming="https://chromium-swarm.appspot.com"
if [[ "$host" = skia-i-* ]]; then
swarming="https://chrome-swarming.appspot.com"
elif [[ "$host" = skia-d-* ]]; then
swarming="https://chromium-swarm-dev.appspot.com"
fi
if [ -d "/b/s" ]; then
echo "Starting swarming at legacy location /b/s"
/usr/bin/python /b/s/swarming_bot.zip start_bot &
# The following is based on this Ansible script, which was not used here
# because it would've complicated the setup flow a bit:
# https://skia.googlesource.com/buildbot/+/master/skolo/common/ansible/bootstrap-swarming.yml
elif [ ! -d "/opt/s" ]; then
mkdir -p /opt/s
cd /opt/s
tok=$(curl --silent --show-error --header "Metadata-Flavor: Google" \
"http://metadata/computeMetadata/v1/instance/service-accounts/default/token" | \
sed -E 's/.*"access_token":"([^"]+)".*/\1/')
curl --silent --show-error --location "${swarming}/bot_code?tok=${tok}" \
--output /opt/s/swarming_bot.zip
echo "Bootstrapping $swarming at /opt/s, expect a reboot"
/usr/bin/python -u /opt/s/swarming_bot.zip
else
echo "Starting swarming at /opt/s"
/usr/bin/python /opt/s/swarming_bot.zip start_bot &
fi