#!/bin/bash set +x -u -e -o pipefail # Setup environment readonly thisDir=$(cd $(dirname $0); pwd) source ${thisDir}/../ci/_travis-fold.sh # Setup and start Sauce Connect for your TravisCI build # This script requires your .travis.yml to include the following two private env variables: # SAUCE_USERNAME # SAUCE_ACCESS_KEY # Follow the steps at https://saucelabs.com/opensource/travis to set that up. # # Curl and run this script as part of your .travis.yml before_script section: # before_script: # - curl https://gist.github.com/santiycr/5139565/raw/sauce_connect_setup.sh | bash CONNECT_URL="https://saucelabs.com/downloads/sc-${SAUCE_CONNECT_VERSION}-linux.tar.gz" CONNECT_DIR="/tmp/sauce-connect-$RANDOM" CONNECT_DOWNLOAD="sc-latest-linux.tar.gz" # We don't want to create a log file because sauceconnect always logs in verbose mode. This seems # to be overwhelming Travis and causing flakes when we are cat-ing the log in "print-logs.sh" CONNECT_LOG="/dev/null" # Even though the stdout of sauceconnect is not very verbose, we don't want to log this to # Travis because it will show up in between different travis log-output groups CONNECT_STDOUT="/dev/null" # Get Connect and start it mkdir -p $CONNECT_DIR cd $CONNECT_DIR curl $CONNECT_URL -o $CONNECT_DOWNLOAD 2> /dev/null 1> /dev/null mkdir sauce-connect tar --extract --file=$CONNECT_DOWNLOAD --strip-components=1 --directory=sauce-connect > /dev/null rm $CONNECT_DOWNLOAD SAUCE_ACCESS_KEY=`echo $SAUCE_ACCESS_KEY | rev` ARGS="" # Set tunnel-id only on Travis, to make local testing easier. if [ ! -z "$TRAVIS_JOB_NUMBER" ]; then ARGS="$ARGS --tunnel-identifier $TRAVIS_JOB_NUMBER" fi if [ ! -z "$BROWSER_PROVIDER_READY_FILE" ]; then ARGS="$ARGS --readyfile $BROWSER_PROVIDER_READY_FILE" fi set -v echo "Starting Sauce Connect in the background." sauce-connect/bin/sc -u $SAUCE_USERNAME -k $SAUCE_ACCESS_KEY $ARGS --logfile $CONNECT_LOG \ > $CONNECT_STDOUT & set +v