chore: set up Sauce Labs with Travis

This should not affect the Jenkins build at all.

Now, the Travis build uses Chrome on Sauce Labs, which in theory gives us opportunity to use any
browser/platform that Sauce Labs offers.
This commit is contained in:
Vojta Jina
2013-06-28 16:36:30 -07:00
parent 8efcec67cc
commit 9a77d03047
9 changed files with 73 additions and 4 deletions

View File

@@ -2,12 +2,19 @@ language: node_js
node_js:
- 0.8
env:
global:
- SAUCE_USERNAME=angular-ci
- SAUCE_ACCESS_KEY=9b988f434ff8-fbca-8aa4-4ae3-35442987
- SAUCE_CONNECT_READY_FILE=/tmp/sauce-connect-ready
before_script:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
- export SAUCE_ACCESS_KEY=`echo $SAUCE_ACCESS_KEY | rev`
- ./lib/sauce/sauce_connect_setup.sh
- npm install -g grunt-cli
- grunt package
- grunt webserver > /dev/null &
- ./lib/sauce/sauce_connect_block.sh
script:
- grunt test --browsers Firefox --reporters=dots
- grunt test --reporters dots --browsers SL_Chrome

View File

@@ -20,4 +20,6 @@ module.exports = function(config) {
suite: 'E2E'
}
});
config.sauceLabs.testName = 'AngularJS: e2e';
};

View File

@@ -13,4 +13,6 @@ module.exports = function(config) {
suite: 'jqLite'
}
});
config.sauceLabs.testName = 'AngularJS: jqLite';
};

View File

@@ -13,4 +13,6 @@ module.exports = function(config) {
suite: 'jQuery'
}
});
config.sauceLabs.testName = 'AngularJS: jQuery';
};

View File

@@ -12,4 +12,6 @@ module.exports = function(config) {
suite: 'modules'
}
});
config.sauceLabs.testName = 'AngularJS: modules';
};

View File

@@ -4,6 +4,20 @@ module.exports = function(config) {
autoWatch: true,
logLevel: config.LOG_INFO,
logColors: true,
browsers: ['Chrome']
browsers: ['Chrome'],
// config for Travis CI
sauceLabs: {
testName: 'AngularJS',
startConnect: false,
tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER
},
customLaunchers: {
'SL_Chrome': {
base: 'SauceLabs',
browserName: 'chrome'
}
}
});
};

View File

@@ -0,0 +1,7 @@
#!/bin/bash
# Wait for Connect to be ready before exiting
while [ ! -f $SAUCE_CONNECT_READY_FILE ]; do
sleep .5
done

View File

@@ -0,0 +1,32 @@
#!/bin/bash
set -e
# 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="http://saucelabs.com/downloads/Sauce-Connect-latest.zip"
CONNECT_DIR="/tmp/sauce-connect-$RANDOM"
CONNECT_DOWNLOAD="Sauce_Connect.zip"
CONNECT_LOG="$CONNECT_DIR/log"
# Get Connect and start it
mkdir -p $CONNECT_DIR
cd $CONNECT_DIR
curl $CONNECT_URL > $CONNECT_DOWNLOAD 2> /dev/null
unzip $CONNECT_DOWNLOAD
rm $CONNECT_DOWNLOAD
echo "Starting Sauce Connect in the background"
echo "Logging into $CONNECT_LOG"
java -jar Sauce-Connect.jar --readyfile $SAUCE_CONNECT_READY_FILE \
--tunnel-identifier $TRAVIS_JOB_NUMBER \
$SAUCE_USERNAME $SAUCE_ACCESS_KEY > $CONNECT_LOG &

View File

@@ -20,6 +20,7 @@
"karma-firefox-launcher": "~0.0.1",
"karma-ng-scenario": "~0.0.1",
"karma-junit-reporter": "~0.0.1",
"karma-sauce-launcher": "~0.0.4",
"yaml-js": "0.0.5",
"showdown": "0.3.1"
},