diff --git a/.travis.yml b/.travis.yml index e1b237c393..b4c2e24180 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,33 +1,22 @@ language: node_js node_js: - - "4" - - "6" - - "node" +- '4' +- '6' +- node dist: trusty sudo: required -addons: - firefox: "latest" env: global: - - BUILD_TIMEOUT=10000 + - BUILD_TIMEOUT=10000 +addons: + sauce_connect: + username: "PaulBGD" + access_key: + - secure: dwcE27veEFzWIZ9ThievcuNk7NmyKVk+eiPCt74q1eeBxwmaBqsW/j3QP/D4GEREkhimf92PCmA3AYRGDeoMuGaXHwtFCfynbnNKgl1qzxXxxRimd9bTAzmjHvB3eDkmpyadFDXrIneh/g9DZM/wtZUVGdoUPi7LwvF0OCJy3WTaxGwjhYEpDTxs4hEWvjXsNWocdkk7sfJKTqjD4nZ4f/dZdsBJvzq/WOj8+DGKIM/PuIkZgWwYXtLCbxBgWT24iG4LPvqp/q3rszdrLmJLOrypeA5nkC2kqQT8zcqMR6ZIqXOPi9NFWsrKtGk/FEeWdMpzseURIzDgIkDoqOkH0NxlTw4MvFHkot7s5FhCCKsCv28Ce2kp5THDyuE+NLVW/xkjAmnzgC4ZqFoHuNqfn3AwSQHjEfu9seQpiyahl2IAhwO1h7gxGe4OlX1B/r3Yh/9B2ADSNxRtyV1uyEfevaZtRLas7O2qMiXt9/xeKdhVKkEBrx9ZQ8hRK0lXoevge5iB2vjs5+bqwN6Ar+gjZvWST0rxmietJFgG59m1K63+7sTRn++CQbgts5zYb/0uDTx8p6fiaIOxkF14rx4BYqJJckO6O9UJYaEP2tW+r30e1c0dLhLyjSfW/cVa9jRo63mKCRriW+8VScF/uA/hfHo0v+EIq+D8/LT3rshzcR4= cache: directories: - - $HOME/.yarn-cache -before_install: - - sudo apt-key adv --keyserver pgp.mit.edu --recv D101F7899D41F3C3 - - echo "deb http://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list - - sudo apt-get update -qq - - sudo apt-get install -y -qq yarn - - wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb - - sudo dpkg -i google-chrome-stable_current_amd64.deb - - wget https://github.com/mozilla/geckodriver/releases/download/v0.14.0/geckodriver-v0.14.0-linux64.tar.gz - - mkdir geckodriver - - tar -xzf geckodriver-v0.14.0-linux64.tar.gz -C geckodriver - - wget https://chromedriver.storage.googleapis.com/2.29/chromedriver_linux64.zip - - unzip chromedriver_linux64.zip -d chromedriver - - export PATH=$PATH:$PWD/geckodriver:$PWD/chromedriver - - "export DISPLAY=:99.0" + - "$HOME/.yarn-cache" install: yarn -after_success: - - npm run codecov - - npm run benchmark +after_success: +- npm run codecov +- node scripts/travis-bench.js diff --git a/scripts/benchmark.sh b/scripts/benchmark.sh index c664d97464..1b23579b69 100755 --- a/scripts/benchmark.sh +++ b/scripts/benchmark.sh @@ -2,16 +2,16 @@ set -e DIR=./tmp/svelte-bench -REPO=https://github.com/PaulBGD/svelte-bench.git +REPO=https://github.com/sveltejs/svelte-bench.git if [ ! -d $DIR ]; then git clone $REPO $DIR fi cd $DIR -git pull origin selenium -git checkout selenium +git pull origin master yarn yarn run build:benchmarks + node ./selenium/run.js "$@" diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js new file mode 100644 index 0000000000..aa590f4a03 --- /dev/null +++ b/scripts/travis-bench.js @@ -0,0 +1,65 @@ +const path = require('path'); +const childProcess = require('child_process'); + +const username = process.env.SAUCE_USERNAME; +const accessKey = process.env.SAUCE_ACCESS_KEY; +const tunnelIdentifier = process.env.TRAVIS_JOB_NUMBER; +const build = process.env.TRAVIS_BUILD_NUMBER; +const tags = [ process.env.TRAVIS_NODE_VERSION, 'CI' ]; +const idleTimeout = 30; + +const args = [ + `--capabilities=${JSON.stringify([ +/* { + browserName: 'safari', + version: '10.0', + platform: 'macOS 10.12', + username, + accessKey, + idleTimeout, + tunnelIdentifier, + build, + tags, + }, + { + browserName: 'internet explorer', + version: '11.103', + platform: 'Windows 10', + username, + accessKey, + idleTimeout, + tunnelIdentifier, + build, + tags, + }, +*/ + { + browserName: 'firefox', + version: 'latest', + platform: 'Windows 10', + username, + accessKey, + idleTimeout, + tunnelIdentifier, + build, + tags, + }, + { + browserName: 'chrome', + version: 'latest', + platform: 'Windows 10', + username, + accessKey, + idleTimeout, + tunnelIdentifier, + build, + tags, + }, + ])}`, + `--server=https://${username}:${accessKey}@localhost:4445/wd/hub` +]; + + childProcess.execFileSync(path.join(__dirname, 'benchmark.sh'), args, { + cwd: process.cwd(), + stdio: 'inherit' + });