blob: c6c3a02ecdd7406e6165ae6e3d2b753a9f6eaaaf [file] [log] [blame]
#!/bin/bash
#
# Setup all the slave buildbot instances.
#
# Copyright 2013 Google Inc. All Rights Reserved.
# Author: rmistry@google.com (Ravi Mistry)
source vm_config.sh
source vm_setup_utils.sh
for REQUIRED_FILE in ${REQUIRED_FILES_FOR_SLAVES[@]}; do
if [ ! -f $REQUIRED_FILE ];
then
echo "Please create $REQUIRED_FILE!"
exit 1
fi
done
for VM in $VM_SLAVE_NAMES; do
VM_COMPLETE_NAME="${VM_NAME_BASE}-${VM}-${ZONE_TAG}"
echo """
================================================
Starting setup of ${VM_COMPLETE_NAME}.....
================================================
"""
FAILED=""
checkout_depot_tools
checkout_buildbot
echo
echo "===== Android SDK. ====="
$GCOMPUTE_CMD ssh --ssh_user=$PROJECT_USER $VM_COMPLETE_NAME \
"cd $SKIA_REPO_DIR && " \
"sudo apt-get -y install libncurses5:i386 && " \
"wget http://dl.google.com/android/adt/adt-bundle-linux-x86_64-20130729.zip && " \
"if [[ -d adt-bundle-linux-x86_64-20130729 ]]; then rm -rf adt-bundle-linux-x86_64-20130729; fi && " \
"unzip adt-bundle-linux-x86_64-20130729.zip && " \
"if [[ -d android-sdk-linux ]]; then rm -rf android-sdk-linux; fi && " \
"mv adt-bundle-linux-x86_64-20130729/sdk android-sdk-linux && " \
"rm -rf adt-bundle-linux-x86_64-20130729 adt-bundle-linux-x86_64-20130729.zip && " \
"android-sdk-linux/tools/android update sdk --no-ui --filter android-19" \
|| FAILED="$FAILED AndroidSDK"
echo
NACL_PEPPER_VERSION="pepper_32"
echo
echo "===== Native Client SDK and NaClPorts. ====="
$GCOMPUTE_CMD ssh --ssh_user=$PROJECT_USER $VM_COMPLETE_NAME \
"cd $SKIA_REPO_DIR && " \
"wget http://storage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/nacl_sdk.zip && " \
"if [[ -d nacl_sdk ]]; then rm -rf nacl_sdk; fi && " \
"unzip nacl_sdk.zip && " \
"rm nacl_sdk.zip && " \
"nacl_sdk/naclsdk update $NACL_PEPPER_VERSION && " \
"sed -i /NACL_SDK_ROOT/d /home/$PROJECT_USER/.bashrc && " \
"echo 'export NACL_SDK_ROOT=/home/$PROJECT_USER/$SKIA_REPO_DIR/nacl_sdk/$NACL_PEPPER_VERSION' >> /home/$PROJECT_USER/.bashrc" \
|| FAILED="$FAILED NativeClient"
echo
echo
echo "===== Install missing packages. ====="
$GCOMPUTE_CMD ssh --ssh_user=$PROJECT_USER $VM_COMPLETE_NAME \
"sudo apt-get install python-django && " \
"sudo easy_install zope.interface" \
|| FAILED="$FAILED InstallPackages"
echo
echo
echo "===== Copying over required master and slave files. ====="
for REQUIRED_FILE in ${REQUIRED_FILES_FOR_SLAVES[@]}; do
$GCOMPUTE_CMD push --ssh_user=$PROJECT_USER $VM_COMPLETE_NAME \
$REQUIRED_FILE /home/$PROJECT_USER/
$GCOMPUTE_CMD push --ssh_user=$PROJECT_USER $VM_COMPLETE_NAME \
$REQUIRED_FILE /home/$PROJECT_USER/$SKIA_REPO_DIR/
done
echo
echo "===== Setting up launch-on-reboot ======"
$GCOMPUTE_CMD ssh --ssh_user=$PROJECT_USER $VM_COMPLETE_NAME \
"cp $SKIA_REPO_DIR/buildbot/scripts/skiabot-vm-slave-start-on-boot.sh . && " \
"chmod a+x skiabot-vm-slave-start-on-boot.sh && " \
"echo \"@reboot /home/${PROJECT_USER}/skiabot-vm-slave-start-on-boot.sh ${SKIA_REPO_DIR}\" > reboot.txt && " \
"crontab -u $PROJECT_USER reboot.txt && " \
"rm reboot.txt" \
|| FAILED="$FAILED LaunchOnReboot"
echo
if [[ $FAILED ]]; then
echo
echo "FAILURES: $FAILED"
echo "Please manually fix these errors."
echo
fi
done