From 2bd5cd67af1b6e7071002a179ae7fe6d7c4f0827 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Thu, 20 Apr 2017 22:04:35 -0500 Subject: [PATCH 01/27] Run on Travis --- .gitignore | 1 + .travis.yml | 23 ++++++++++++++++++++++- package.json | 1 + scripts/benchmark.sh | 9 +++++++++ 4 files changed, 33 insertions(+), 1 deletion(-) create mode 100755 scripts/benchmark.sh diff --git a/.gitignore b/.gitignore index 8975ad857c..a31f1af75b 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ coverage.lcov test/sourcemaps/samples/*/output.js test/sourcemaps/samples/*/output.js.map _actual.* +tmp diff --git a/.travis.yml b/.travis.yml index 9eb0f07397..431a64fd10 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,29 @@ node_js: - "4" - "6" - "node" +addons: + firefox: "latest" env: global: - BUILD_TIMEOUT=10000 +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 + - wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - + - sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' + - sudo apt-get update -qq + - sudo apt-get install -y -qq yarn google-chrome-stable + - 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" install: npm install -after_success: npm run codecov +after_success: + - npm run codecov + - npm run benchmark diff --git a/package.json b/package.json index 3e89b6e2fa..f0d78fcd3e 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "codecov": "codecov", "precodecov": "npm run coverage", "lint": "eslint src test/*.js", + "benchmark": "./scripts/benchmark.sh", "build": "npm run build:main && npm run build:shared && npm run build:ssr", "build:main": "rollup -c rollup/rollup.config.main.js", "build:shared": "rollup -c rollup/rollup.config.shared.js", diff --git a/scripts/benchmark.sh b/scripts/benchmark.sh new file mode 100755 index 0000000000..5fe8eb5adf --- /dev/null +++ b/scripts/benchmark.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash +set -e + +git clone https://github.com/PaulBGD/svelte-bench.git ./tmp/svelte-bench +cd ./tmp/svelte-bench +git checkout selenium +yarn +yarn run build:benchmarks +node ./selenium/run.js "$@" From 62ae6258e248045201ff2aa13e3d473082a848ca Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Thu, 20 Apr 2017 22:10:38 -0500 Subject: [PATCH 02/27] Just download chrome deb --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 431a64fd10..5bba057d04 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,10 +14,10 @@ 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 - - wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - - - sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' - sudo apt-get update -qq - - sudo apt-get install -y -qq yarn google-chrome-stable + - 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 From 7cf7d3e68d3673823b1bb7273e852a9fc75815cb Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Thu, 20 Apr 2017 22:14:21 -0500 Subject: [PATCH 03/27] Use a recent version of ubuntu --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index 5bba057d04..b45e5437be 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,8 @@ node_js: - "4" - "6" - "node" +dist: trusty +sudo: required addons: firefox: "latest" env: From f84412c1b62db279cc8a69d8015f300f753f76c5 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Thu, 20 Apr 2017 23:10:02 -0500 Subject: [PATCH 04/27] Skip codecov? --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index b45e5437be..51ed8d6f2e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,7 +27,8 @@ before_install: - unzip chromedriver_linux64.zip -d chromedriver - export PATH=$PATH:$PWD/geckodriver:$PWD/chromedriver - "export DISPLAY=:99.0" -install: npm install +install: yarn after_success: - - npm run codecov + - npm run lint + - npm run test - npm run benchmark From efcc70a26f6a4c0bd2006044e63b21f692bee5d1 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Thu, 15 Jun 2017 22:17:27 -0500 Subject: [PATCH 05/27] Forgot what this is --- scripts/benchmark.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/scripts/benchmark.sh b/scripts/benchmark.sh index 5fe8eb5adf..c664d97464 100755 --- a/scripts/benchmark.sh +++ b/scripts/benchmark.sh @@ -1,9 +1,17 @@ #!/usr/bin/env bash set -e -git clone https://github.com/PaulBGD/svelte-bench.git ./tmp/svelte-bench -cd ./tmp/svelte-bench +DIR=./tmp/svelte-bench +REPO=https://github.com/PaulBGD/svelte-bench.git + +if [ ! -d $DIR ]; then + git clone $REPO $DIR +fi + +cd $DIR +git pull origin selenium git checkout selenium + yarn yarn run build:benchmarks node ./selenium/run.js "$@" From 72a1107b91bbe72d0dff32ab61d66fa3835e4044 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Tue, 27 Jun 2017 15:22:43 -0500 Subject: [PATCH 06/27] Undo this --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 51ed8d6f2e..e1b237c393 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,6 +29,5 @@ before_install: - "export DISPLAY=:99.0" install: yarn after_success: - - npm run lint - - npm run test + - npm run codecov - npm run benchmark From a6570c188c3f6926a571e18897775edbaf15ef8c Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Tue, 27 Jun 2017 18:34:44 -0500 Subject: [PATCH 07/27] Let's hope I hide the access key --- .travis.yml | 37 +++++++++-------------- scripts/benchmark.sh | 6 ++-- scripts/travis-bench.js | 65 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 27 deletions(-) create mode 100644 scripts/travis-bench.js 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' + }); From 8de42bba55b8ea8d2c478bcd8126b4276b2d8ef1 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Tue, 27 Jun 2017 18:42:49 -0500 Subject: [PATCH 08/27] Change up some settings --- .travis.yml | 7 +++---- scripts/travis-bench.js | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index b4c2e24180..8e1f9acd04 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,11 +8,10 @@ sudo: required env: global: - BUILD_TIMEOUT=10000 + - SAUCE_USERNAME=PaulBGD 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= + jwt: + secure: DQK+GD8grif8WD3u+72h5ofO7pnyf0Jn8A2R4sEnBQtNeVRmzDtY/fOHDzUCVvUROb+sun+ERsXPx9IEqEJVp6rNNLGFhHjSfofSoKEP/uDY6jproetUPB4EMVBoS7gq9uwUa98/oOmAr0fWlkwxvueY+Ke8Sc2Cm7+Cos4AarFR+uW48o70d9AqzDzWlFSwAaNEuYPO25k26juOkh+J0IH++92il5aDBFzMhuZD28fElmRrds0Ne31X2gU9rlaVgd6Xk2tvZBdkizNKEIgLW4nGXsUe9WYXWhpvwfCEKGUdqaAvNC4LtU+YXtl4uWmiUz4Zz7y98Samw8cmj6voio8NIKjXOvmm4YGfwy7FmnRF1BTCJlFmJ56mGnDFaUvw2r2ju7DPhQEc07Y2M6m8j6iCJUV9/4dJry12LTTREK9ER3DNtvOUjN9Qq8194zKWWV3hCTkH917thTpG8+TWZ+TFffz/vAsOzLVESvLtMtcC5Y30GgyWdtI19lUfoL0j8+dcVFLmCbzOJ6+PdkydIKf3OD6EVL6pc8gY7o0cTH38r9qZbMozHHwOYUB98vE7jyu1JCWPBjmH8EwW5HgyZMyju71jb8Nq7uYdp3ggYIX7c/Xtpb+9oEnf5JXGQfJY1pujESeKPElhwfdNN5ktBkqTmUtnfqlB/0emdjFB2GM= cache: directories: - "$HOME/.yarn-cache" diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index aa590f4a03..7b813e1322 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -56,7 +56,7 @@ const args = [ tags, }, ])}`, - `--server=https://${username}:${accessKey}@localhost:4445/wd/hub` + `--server=http://${username}:${accessKey}@ondemand.saucelabs.com/wd/hub` ]; childProcess.execFileSync(path.join(__dirname, 'benchmark.sh'), args, { From 463b8fa7586dbc386658e77d21137179508bb197 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Tue, 27 Jun 2017 18:48:30 -0500 Subject: [PATCH 09/27] Didn't need that! --- scripts/travis-bench.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index 7b813e1322..0ab0b4cfd6 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -3,7 +3,6 @@ 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; @@ -17,7 +16,6 @@ const args = [ username, accessKey, idleTimeout, - tunnelIdentifier, build, tags, }, @@ -28,7 +26,6 @@ const args = [ username, accessKey, idleTimeout, - tunnelIdentifier, build, tags, }, @@ -40,7 +37,6 @@ const args = [ username, accessKey, idleTimeout, - tunnelIdentifier, build, tags, }, @@ -51,7 +47,6 @@ const args = [ username, accessKey, idleTimeout, - tunnelIdentifier, build, tags, }, From 85139313880039b2efb7b84115534a306c1a30b4 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Tue, 27 Jun 2017 19:00:33 -0500 Subject: [PATCH 10/27] Move benchmarking to custom job --- .travis.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8e1f9acd04..e1133a153a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,4 +18,8 @@ cache: install: yarn after_success: - npm run codecov -- node scripts/travis-bench.js + +jobs: + include: + - stage: benchmark + script: node scripts/travis-bench.js From 49bc2e2488975c858862ac25518ccf9c6a3a6a0a Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Tue, 27 Jun 2017 19:01:44 -0500 Subject: [PATCH 11/27] Use node 6 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index e1133a153a..9e5abdb902 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,3 +23,4 @@ jobs: include: - stage: benchmark script: node scripts/travis-bench.js + node_js: '6' From 68763bae821a4062c786d9fcab04445048884501 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Tue, 27 Jun 2017 19:13:17 -0500 Subject: [PATCH 12/27] Use new access key, since you managed to leak it in travis logs --- .travis.yml | 13 ++++++------- scripts/travis-bench.js | 4 ++++ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9e5abdb902..aa7a25c434 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,18 +9,17 @@ env: global: - BUILD_TIMEOUT=10000 - SAUCE_USERNAME=PaulBGD -addons: - jwt: - secure: DQK+GD8grif8WD3u+72h5ofO7pnyf0Jn8A2R4sEnBQtNeVRmzDtY/fOHDzUCVvUROb+sun+ERsXPx9IEqEJVp6rNNLGFhHjSfofSoKEP/uDY6jproetUPB4EMVBoS7gq9uwUa98/oOmAr0fWlkwxvueY+Ke8Sc2Cm7+Cos4AarFR+uW48o70d9AqzDzWlFSwAaNEuYPO25k26juOkh+J0IH++92il5aDBFzMhuZD28fElmRrds0Ne31X2gU9rlaVgd6Xk2tvZBdkizNKEIgLW4nGXsUe9WYXWhpvwfCEKGUdqaAvNC4LtU+YXtl4uWmiUz4Zz7y98Samw8cmj6voio8NIKjXOvmm4YGfwy7FmnRF1BTCJlFmJ56mGnDFaUvw2r2ju7DPhQEc07Y2M6m8j6iCJUV9/4dJry12LTTREK9ER3DNtvOUjN9Qq8194zKWWV3hCTkH917thTpG8+TWZ+TFffz/vAsOzLVESvLtMtcC5Y30GgyWdtI19lUfoL0j8+dcVFLmCbzOJ6+PdkydIKf3OD6EVL6pc8gY7o0cTH38r9qZbMozHHwOYUB98vE7jyu1JCWPBjmH8EwW5HgyZMyju71jb8Nq7uYdp3ggYIX7c/Xtpb+9oEnf5JXGQfJY1pujESeKPElhwfdNN5ktBkqTmUtnfqlB/0emdjFB2GM= cache: directories: - "$HOME/.yarn-cache" install: yarn after_success: - npm run codecov - jobs: include: - - stage: benchmark - script: node scripts/travis-bench.js - node_js: '6' + - stage: benchmark + script: node scripts/travis-bench.js + node_js: '6' +addons: + jwt: + secure: paQL489vgNsfNpPW7cZw6lp0ludg05A3j1ZohzSnW/qMwdR4NEp2Dmpag+BTbB86dUK7uVEJCGQ0sASRpDXJjVuWfFLwUehuPwmREggy6O4TLpkRS3Evju2LdKZWF46bkJcf257R/CdfRD1ug1r83wQEzJCAje8mRyPDRucZy6oEYqy7Q+qs5HOfGDHP3giFnbiweqxjscP1et/+PA2wQmdnxTdIZTJ7qs0/vwD8bGlDz8qt/h9X4CAv2KgT0Mw1kYocC/pZExPgfHbbS7nYIWHtwl3I9SPgZ/Hd+cDu2F8AHVppeoJyFJ6N+lxlqfnPyShFzXrXD5phJwKjEfcQAb7VyWNYbX+kYKPd4RCoYP4RBaiSqR3NKz5lgJCRhPmaDxQD3aDkJ/Uc6uU++x+t6vdxEtPH8OgywoPJrAWtFmJppInR79KJstGe6K0/kwQ3eLWos+lDd3dxsQmMAOUqxmSREeY5trHSK/jb70VfafqMCEgvSVkyJNKUqqXivXg4NhxPKWCE62XoWtDxXq+0OzYZGMJx2pKjIrINo8Q8uFy+yjVyw6WUq7L/JStZU7mwotzUzLuoIisx/3W5qaw1atjd4e13M+NBx5G6f/RrGTWSma5iHmIjGgBmz1biPamNxGlHetfaonohRcYHGS8egeUHlWpyyQ20iSvtgiZBjAE= diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index 0ab0b4cfd6..6b7b1217d3 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -54,7 +54,11 @@ const args = [ `--server=http://${username}:${accessKey}@ondemand.saucelabs.com/wd/hub` ]; +try { childProcess.execFileSync(path.join(__dirname, 'benchmark.sh'), args, { cwd: process.cwd(), stdio: 'inherit' }); +} catch (err) { + console.error('An error occurred running the benchmark!'); +} From 179bb5eb324dd1c0c12b2c574df7b6138ae7c1b3 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Wed, 28 Jun 2017 11:28:27 -0500 Subject: [PATCH 13/27] Post response to PR with benchmark results --- .travis.yml | 3 +- package.json | 1 + scripts/travis-bench.js | 82 ++++++++++++++++++++++++++++++++++++++++- yarn.lock | 19 +++++++++- 4 files changed, 101 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index aa7a25c434..d8b84c39b5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,4 +22,5 @@ jobs: node_js: '6' addons: jwt: - secure: paQL489vgNsfNpPW7cZw6lp0ludg05A3j1ZohzSnW/qMwdR4NEp2Dmpag+BTbB86dUK7uVEJCGQ0sASRpDXJjVuWfFLwUehuPwmREggy6O4TLpkRS3Evju2LdKZWF46bkJcf257R/CdfRD1ug1r83wQEzJCAje8mRyPDRucZy6oEYqy7Q+qs5HOfGDHP3giFnbiweqxjscP1et/+PA2wQmdnxTdIZTJ7qs0/vwD8bGlDz8qt/h9X4CAv2KgT0Mw1kYocC/pZExPgfHbbS7nYIWHtwl3I9SPgZ/Hd+cDu2F8AHVppeoJyFJ6N+lxlqfnPyShFzXrXD5phJwKjEfcQAb7VyWNYbX+kYKPd4RCoYP4RBaiSqR3NKz5lgJCRhPmaDxQD3aDkJ/Uc6uU++x+t6vdxEtPH8OgywoPJrAWtFmJppInR79KJstGe6K0/kwQ3eLWos+lDd3dxsQmMAOUqxmSREeY5trHSK/jb70VfafqMCEgvSVkyJNKUqqXivXg4NhxPKWCE62XoWtDxXq+0OzYZGMJx2pKjIrINo8Q8uFy+yjVyw6WUq7L/JStZU7mwotzUzLuoIisx/3W5qaw1atjd4e13M+NBx5G6f/RrGTWSma5iHmIjGgBmz1biPamNxGlHetfaonohRcYHGS8egeUHlWpyyQ20iSvtgiZBjAE= + - secure: paQL489vgNsfNpPW7cZw6lp0ludg05A3j1ZohzSnW/qMwdR4NEp2Dmpag+BTbB86dUK7uVEJCGQ0sASRpDXJjVuWfFLwUehuPwmREggy6O4TLpkRS3Evju2LdKZWF46bkJcf257R/CdfRD1ug1r83wQEzJCAje8mRyPDRucZy6oEYqy7Q+qs5HOfGDHP3giFnbiweqxjscP1et/+PA2wQmdnxTdIZTJ7qs0/vwD8bGlDz8qt/h9X4CAv2KgT0Mw1kYocC/pZExPgfHbbS7nYIWHtwl3I9SPgZ/Hd+cDu2F8AHVppeoJyFJ6N+lxlqfnPyShFzXrXD5phJwKjEfcQAb7VyWNYbX+kYKPd4RCoYP4RBaiSqR3NKz5lgJCRhPmaDxQD3aDkJ/Uc6uU++x+t6vdxEtPH8OgywoPJrAWtFmJppInR79KJstGe6K0/kwQ3eLWos+lDd3dxsQmMAOUqxmSREeY5trHSK/jb70VfafqMCEgvSVkyJNKUqqXivXg4NhxPKWCE62XoWtDxXq+0OzYZGMJx2pKjIrINo8Q8uFy+yjVyw6WUq7L/JStZU7mwotzUzLuoIisx/3W5qaw1atjd4e13M+NBx5G6f/RrGTWSma5iHmIjGgBmz1biPamNxGlHetfaonohRcYHGS8egeUHlWpyyQ20iSvtgiZBjAE= # sauce_access_token + - secure: BkFLjOmOLU9euAZT9H/9ezDu8s3HdvWr4fEyl0Ddgjjjna/onv1c1GQ9Xu7BG/xEa8o+oM2hXrNs+pdz2euA/pJh6fiYsc3b2XMAEytM/kg8fAUzc6YKK0wRe9HzOW0UnmULyWgqfU1mPaFN+N2TrBXDNq5cCGt+Dze+Oc6fxj/h93OWjcYgHQCTFdIPXKCfKARWqhKgIxhufge1mbdkgT8sQohMdF7sE9hBj2soimRWN1+EWpYBDSGC1rhvm07udFBwFLb2zHPLesOdOsPjNgv8Zm1A8srwNljmKbL7Z0cpJPmB/H/ZaR0tuBTPLZM1yd5f5TR6Y8yNeE7a04t/UtCoLRXw6yd4bYQxGWPjSywAB/ZX3Af0CoMrWGxe7CEJAzhvUcyUXhhQsPNo5ec/vwswDVmF+iDSEpo5IfOMw3tFAOPr7wqBHSNZx6NmHIX58h2yE3AOBozBo+Z9QbCI5fikQ91Okk0YKq9FkYABZNnZpbhxCmVPjzZuuIDZfuCulrIaKAz0WX03TJHKTTrUPc2hHAnjvk6pHXcUMc9qDFUrd5UaSsqskDBhSn/mViAt15wR3p5G2ZkDipIxGuGjvEE7MlEsWCH+OdNQtCcEX5USu3csXzUF8/OZ8B7P4ZZbL5heljNQ9sil4qQoB6IIvpGOIURcQssq+w3dF3BV3aU= # github_access_token diff --git a/package.json b/package.json index a4bf6f7156..ad02c709a1 100644 --- a/package.json +++ b/package.json @@ -68,6 +68,7 @@ "locate-character": "^2.0.0", "magic-string": "^0.21.1", "mocha": "^3.2.0", + "node-fetch": "^1.7.1", "node-resolve": "^1.3.3", "nyc": "^10.0.0", "prettier": "^1.4.1", diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index 6b7b1217d3..fbcdce21c1 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -1,9 +1,11 @@ const path = require('path'); const childProcess = require('child_process'); +const fetch = require('node-fetch'); const username = process.env.SAUCE_USERNAME; const accessKey = process.env.SAUCE_ACCESS_KEY; const build = process.env.TRAVIS_BUILD_NUMBER; +const pullRequest = process.env.TRAVIS_PULL_REQUEST; const tags = [ process.env.TRAVIS_NODE_VERSION, 'CI' ]; const idleTimeout = 30; @@ -54,11 +56,87 @@ const args = [ `--server=http://${username}:${accessKey}@ondemand.saucelabs.com/wd/hub` ]; +let stdout; + try { - childProcess.execFileSync(path.join(__dirname, 'benchmark.sh'), args, { + stdout = childProcess.execFileSync(path.join(__dirname, 'benchmark.sh'), args, { cwd: process.cwd(), - stdio: 'inherit' + stdio: [ + 0, + ] }); } catch (err) { console.error('An error occurred running the benchmark!'); } + +if (typeof stdout !== 'string') { + stdout = stdout.toString('utf8'); +} + +const outputs = []; +let index = 0; +let started = false; + +// parse the output to find what we want +const split = stdout.split('\n'); +split.forEach((line, lineNum) => { + if (started) { + if (line.indexOf('Running capability') === 0 || line.indexOf('Took ') === 0) { + started = false; + index++; + } else { + if (outputs.length <= index) { + outputs[index] = []; + } + outputs[index].push(line); + } + } else if (lineNum > 0 && line === '' && split[lineNum - 1].indexOf('Testing ') === 0) { + started = true; + } +}); + +if (pullRequest !== 'false') { + const githubUsername = 'Svelte-Bot'; + const id = 29757693; + const githubToken = process.env.GITHUB_ACCESS_TOKEN; + + fetch(`https://${githubUsername}:${githubToken}@api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`) + .then(res => res.json()) + .then(res => { + let addComment = false; + let editId = null; + + if (res.length === 0) { + addComment = true; + } else if (res[res.length - 1].user.id !== id) { + addComment = true; + + res.forEach(reply => { + if (reply.user.id === id) { + editId = reply.id; + } + }); + } + + if (addComment) { + const contents = '
Benchmark Results' + + outputs.map(output => output.join('\n')).join('\n----------------------------------------------------------------------\n') + + '
'; + if (editId === null) { + return fetch(`https://${githubUsername}:${githubToken}@api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`, { + method: 'POST', + body: JSON.stringify({ + body: contents + }) + }); + } else { + return fetch(`https://${githubUsername}:${githubToken}@api.github.com/repos/sveltejs/svelte/issues/comments/${editId}`, { + method: 'PATCH', + body: JSON.stringify({ + body: contents + }) + }); + } + } + }); +} diff --git a/yarn.lock b/yarn.lock index a3b9fbe5a4..99fdc119ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1014,6 +1014,12 @@ electron-to-chromium@^1.2.7: version "1.3.8" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.8.tgz#b2c8a2c79bb89fbbfd3724d9555e15095b5f5fb6" +encoding@^0.1.11: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + dependencies: + iconv-lite "~0.4.13" + entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" @@ -1529,7 +1535,7 @@ http-signature@~1.1.0: jsprim "^1.2.2" sshpk "^1.7.0" -iconv-lite@0.4.13: +iconv-lite@0.4.13, iconv-lite@~0.4.13: version "0.4.13" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.13.tgz#1f88aba4ab0b1508e8312acc39345f36e992e2f2" @@ -1687,6 +1693,10 @@ is-resolvable@^1.0.0: dependencies: tryit "^1.0.1" +is-stream@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -2078,6 +2088,13 @@ natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" +node-fetch@^1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.1.tgz#899cb3d0a3c92f952c47f1b876f4c8aeabd400d5" + dependencies: + encoding "^0.1.11" + is-stream "^1.0.1" + node-resolve@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/node-resolve/-/node-resolve-1.3.3.tgz#74c7f5d3373e4bb2f60182e3a96dde0f8aacb0ce" From c8644f67ad7561434447d4aab174e2471a9f0043 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Wed, 28 Jun 2017 11:35:12 -0500 Subject: [PATCH 14/27] Run custom version of svelte and fix stdio --- scripts/travis-bench.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index fbcdce21c1..b73e2132ad 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -53,7 +53,8 @@ const args = [ tags, }, ])}`, - `--server=http://${username}:${accessKey}@ondemand.saucelabs.com/wd/hub` + `--server=http://${username}:${accessKey}@ondemand.saucelabs.com/wd/hub`, + `--custom=${process.cwd()}` ]; let stdout; @@ -61,9 +62,7 @@ let stdout; try { stdout = childProcess.execFileSync(path.join(__dirname, 'benchmark.sh'), args, { cwd: process.cwd(), - stdio: [ - 0, - ] + stdio: 'inherit' }); } catch (err) { console.error('An error occurred running the benchmark!'); From a9d391809e07282c44fd9f5dbc4b3177898281e1 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Wed, 28 Jun 2017 11:38:38 -0500 Subject: [PATCH 15/27] Only run for PR --- scripts/travis-bench.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index b73e2132ad..e4da045642 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -9,6 +9,11 @@ const pullRequest = process.env.TRAVIS_PULL_REQUEST; const tags = [ process.env.TRAVIS_NODE_VERSION, 'CI' ]; const idleTimeout = 30; +if (pullRequest === 'false') { + console.log('Benchmark skipped.'); + process.exit(0); +} + const args = [ `--capabilities=${JSON.stringify([ /* { From 5e1134cb7d4618d46fdc5c956227d4b85bc9a4c9 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Wed, 28 Jun 2017 11:54:57 -0500 Subject: [PATCH 16/27] Use parent, to match svelte-bench --- scripts/travis-bench.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index e4da045642..5f04118545 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -59,7 +59,7 @@ const args = [ }, ])}`, `--server=http://${username}:${accessKey}@ondemand.saucelabs.com/wd/hub`, - `--custom=${process.cwd()}` + `--custom=${path.join(process.cwd(), '..')}` ]; let stdout; From 0787e51398dfc3a11d0098ee9fa7a3ebe48975df Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Wed, 28 Jun 2017 12:08:32 -0500 Subject: [PATCH 17/27] Fixed issue in svelte-bench --- scripts/travis-bench.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index 5f04118545..e4da045642 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -59,7 +59,7 @@ const args = [ }, ])}`, `--server=http://${username}:${accessKey}@ondemand.saucelabs.com/wd/hub`, - `--custom=${path.join(process.cwd(), '..')}` + `--custom=${process.cwd()}` ]; let stdout; From 735bb0fe10cd7f06020c4c2cd90b0884b5070c64 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Wed, 28 Jun 2017 12:51:55 -0500 Subject: [PATCH 18/27] Use output file instead of parsing stdout --- scripts/travis-bench.js | 110 +++++++++++++++------------------------- 1 file changed, 41 insertions(+), 69 deletions(-) diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index e4da045642..6aa08f393e 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -1,4 +1,5 @@ const path = require('path'); +const fs = require('fs'); const childProcess = require('child_process'); const fetch = require('node-fetch'); @@ -14,6 +15,8 @@ if (pullRequest === 'false') { process.exit(0); } +const outputFile = path.join(process.cwd(), 'tmp', 'output.txt'); + const args = [ `--capabilities=${JSON.stringify([ /* { @@ -59,13 +62,12 @@ const args = [ }, ])}`, `--server=http://${username}:${accessKey}@ondemand.saucelabs.com/wd/hub`, - `--custom=${process.cwd()}` + `--custom=${process.cwd()}`, + `--output=${outputFile}`, ]; -let stdout; - try { - stdout = childProcess.execFileSync(path.join(__dirname, 'benchmark.sh'), args, { + childProcess.execFileSync(path.join(__dirname, 'benchmark.sh'), args, { cwd: process.cwd(), stdio: 'inherit' }); @@ -73,74 +75,44 @@ try { console.error('An error occurred running the benchmark!'); } -if (typeof stdout !== 'string') { - stdout = stdout.toString('utf8'); -} - -const outputs = []; -let index = 0; -let started = false; +const githubUsername = 'Svelte-Bot'; +const id = 29757693; +const githubToken = process.env.GITHUB_ACCESS_TOKEN; -// parse the output to find what we want -const split = stdout.split('\n'); -split.forEach((line, lineNum) => { - if (started) { - if (line.indexOf('Running capability') === 0 || line.indexOf('Took ') === 0) { - started = false; - index++; - } else { - if (outputs.length <= index) { - outputs[index] = []; - } - outputs[index].push(line); - } - } else if (lineNum > 0 && line === '' && split[lineNum - 1].indexOf('Testing ') === 0) { - started = true; - } -}); +fetch(`https://${githubUsername}:${githubToken}@api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`) + .then(res => res.json()) + .then(res => { + let addComment = false; + let editId = null; -if (pullRequest !== 'false') { - const githubUsername = 'Svelte-Bot'; - const id = 29757693; - const githubToken = process.env.GITHUB_ACCESS_TOKEN; + if (res.length === 0) { + addComment = true; + } else if (res[res.length - 1].user.id !== id) { + addComment = true; - fetch(`https://${githubUsername}:${githubToken}@api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`) - .then(res => res.json()) - .then(res => { - let addComment = false; - let editId = null; - - if (res.length === 0) { - addComment = true; - } else if (res[res.length - 1].user.id !== id) { - addComment = true; + res.forEach(reply => { + if (reply.user.id === id) { + editId = reply.id; + } + }); + } - res.forEach(reply => { - if (reply.user.id === id) { - editId = reply.id; - } + if (addComment) { + const contents = '
Benchmark Results' + fs.readFileSync(outputFile) + '
'; + if (editId === null) { + return fetch(`https://${githubUsername}:${githubToken}@api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`, { + method: 'POST', + body: JSON.stringify({ + body: contents + }) + }); + } else { + return fetch(`https://${githubUsername}:${githubToken}@api.github.com/repos/sveltejs/svelte/issues/comments/${editId}`, { + method: 'PATCH', + body: JSON.stringify({ + body: contents + }) }); } - - if (addComment) { - const contents = '
Benchmark Results' + - outputs.map(output => output.join('\n')).join('\n----------------------------------------------------------------------\n') + - '
'; - if (editId === null) { - return fetch(`https://${githubUsername}:${githubToken}@api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`, { - method: 'POST', - body: JSON.stringify({ - body: contents - }) - }); - } else { - return fetch(`https://${githubUsername}:${githubToken}@api.github.com/repos/sveltejs/svelte/issues/comments/${editId}`, { - method: 'PATCH', - body: JSON.stringify({ - body: contents - }) - }); - } - } - }); -} + } + }); From 10200cbdf147978e203d4530c8d3cdd33adbb454 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Wed, 28 Jun 2017 14:25:06 -0500 Subject: [PATCH 19/27] Last commit here, looks good --- scripts/travis-bench.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index 6aa08f393e..37cf7e6773 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -87,14 +87,9 @@ fetch(`https://${githubUsername}:${githubToken}@api.github.com/repos/sveltejs/sv if (res.length === 0) { addComment = true; - } else if (res[res.length - 1].user.id !== id) { + } else if (res[res.length - 1].user.id === id) { addComment = true; - - res.forEach(reply => { - if (reply.user.id === id) { - editId = reply.id; - } - }); + editId = res[res.length - 1].id; } if (addComment) { From 3eb4c0b24040d1bb58b02024aa0fb986e78d6b6d Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Wed, 28 Jun 2017 16:04:10 -0500 Subject: [PATCH 20/27] Set iterations and add debug --- scripts/travis-bench.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index 37cf7e6773..0f46b8639c 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -64,6 +64,7 @@ const args = [ `--server=http://${username}:${accessKey}@ondemand.saucelabs.com/wd/hub`, `--custom=${process.cwd()}`, `--output=${outputFile}`, + `--iterations=15`, ]; try { @@ -84,7 +85,7 @@ fetch(`https://${githubUsername}:${githubToken}@api.github.com/repos/sveltejs/sv .then(res => { let addComment = false; let editId = null; - + console.log('[DEBUG]', res); if (res.length === 0) { addComment = true; } else if (res[res.length - 1].user.id === id) { From 0afcf5be697cab4c3ce981a499ce68c030db4219 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Wed, 28 Jun 2017 16:31:12 -0500 Subject: [PATCH 21/27] Fix authentication --- scripts/travis-bench.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index 0f46b8639c..6670a94123 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -79,8 +79,11 @@ try { const githubUsername = 'Svelte-Bot'; const id = 29757693; const githubToken = process.env.GITHUB_ACCESS_TOKEN; +const headers = { + Authorization: `token ${githubToken}` +}; -fetch(`https://${githubUsername}:${githubToken}@api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`) +fetch(`https://api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`, { headers }) .then(res => res.json()) .then(res => { let addComment = false; @@ -96,15 +99,17 @@ fetch(`https://${githubUsername}:${githubToken}@api.github.com/repos/sveltejs/sv if (addComment) { const contents = '
Benchmark Results' + fs.readFileSync(outputFile) + '
'; if (editId === null) { - return fetch(`https://${githubUsername}:${githubToken}@api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`, { + return fetch(`https://api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`, { method: 'POST', + headers, body: JSON.stringify({ body: contents }) }); } else { - return fetch(`https://${githubUsername}:${githubToken}@api.github.com/repos/sveltejs/svelte/issues/comments/${editId}`, { + return fetch(`https://api.github.com/repos/sveltejs/svelte/issues/comments/${editId}`, { method: 'PATCH', + headers, body: JSON.stringify({ body: contents }) From 8806d500ed69106935021c2a205f52cc08ac74d4 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Tue, 4 Jul 2017 13:40:59 -0500 Subject: [PATCH 22/27] Use browserstack instead of saucelabs --- .travis.yml | 4 ++-- scripts/travis-bench.js | 46 ++++++++++++++--------------------------- 2 files changed, 17 insertions(+), 33 deletions(-) diff --git a/.travis.yml b/.travis.yml index d8b84c39b5..a432f9e121 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ sudo: required env: global: - BUILD_TIMEOUT=10000 - - SAUCE_USERNAME=PaulBGD + - BROWSER_USERNAME=PaulBGD cache: directories: - "$HOME/.yarn-cache" @@ -22,5 +22,5 @@ jobs: node_js: '6' addons: jwt: - - secure: paQL489vgNsfNpPW7cZw6lp0ludg05A3j1ZohzSnW/qMwdR4NEp2Dmpag+BTbB86dUK7uVEJCGQ0sASRpDXJjVuWfFLwUehuPwmREggy6O4TLpkRS3Evju2LdKZWF46bkJcf257R/CdfRD1ug1r83wQEzJCAje8mRyPDRucZy6oEYqy7Q+qs5HOfGDHP3giFnbiweqxjscP1et/+PA2wQmdnxTdIZTJ7qs0/vwD8bGlDz8qt/h9X4CAv2KgT0Mw1kYocC/pZExPgfHbbS7nYIWHtwl3I9SPgZ/Hd+cDu2F8AHVppeoJyFJ6N+lxlqfnPyShFzXrXD5phJwKjEfcQAb7VyWNYbX+kYKPd4RCoYP4RBaiSqR3NKz5lgJCRhPmaDxQD3aDkJ/Uc6uU++x+t6vdxEtPH8OgywoPJrAWtFmJppInR79KJstGe6K0/kwQ3eLWos+lDd3dxsQmMAOUqxmSREeY5trHSK/jb70VfafqMCEgvSVkyJNKUqqXivXg4NhxPKWCE62XoWtDxXq+0OzYZGMJx2pKjIrINo8Q8uFy+yjVyw6WUq7L/JStZU7mwotzUzLuoIisx/3W5qaw1atjd4e13M+NBx5G6f/RrGTWSma5iHmIjGgBmz1biPamNxGlHetfaonohRcYHGS8egeUHlWpyyQ20iSvtgiZBjAE= # sauce_access_token + - secure: cE7fNdXH1DeXd1SGdpAV7tocxcq+YxmSXr+wTTqyAuzIFTVbcEqmkaMylJP0ZZ8uUlLRAKavHFR7lswcbhHhHAc71c7RjP5njqmj86g0PVKMDHy78gyLb3NfinyHPOH4StSrUUTD67D4bXPi/NBgeLNDnIgDvfcP7op3sAn1Q1HRuMCVJ8gTNm3w72wmKpPX6lylapmSbt5N8dhRZNq2iohixnKP4uKSj/DCp1wPxJ7EO6GPpbiZFGZS3leON/mVTK2nXCpVgyqOOQ1yr4A5HnyiiAWamPTl8jblM0aWZPucgNWEiivcEJdKuSYgBQE3sHAun87wGaNGZNa8P2pOLGrmb3dZDIfRe5F8IQUySyDczXsQDLakhBCDRD3PAkGh7cnO0DKz3JMXHrcDVgzSE93M/E4HyYuf6Z9jWX4jc/Vi7MG7Eq+AtzRSrMb9sKXpntH+Gdn4JYr7GRhDZd+EcnvOJFIj97bU0IaDkLN0gWBfMYpTB3+Gm6cpj64IJ0iI2YLJH/IVF9p5T5Qh9wxoEpgos5sOpJddtQDyJ2Zk9SsKutcMKjUNXHpIkiOtfG2CxA3wPP//3QCZo7tTbhnGkuWunRiVvRBTvd3owlQbCwaDwv/+ibAAifyzi9ihYqGZ0BY8kY/YHHTG6wz5LqCtTVdJWErp6jIjhuxn10toZNU= # browser key - secure: BkFLjOmOLU9euAZT9H/9ezDu8s3HdvWr4fEyl0Ddgjjjna/onv1c1GQ9Xu7BG/xEa8o+oM2hXrNs+pdz2euA/pJh6fiYsc3b2XMAEytM/kg8fAUzc6YKK0wRe9HzOW0UnmULyWgqfU1mPaFN+N2TrBXDNq5cCGt+Dze+Oc6fxj/h93OWjcYgHQCTFdIPXKCfKARWqhKgIxhufge1mbdkgT8sQohMdF7sE9hBj2soimRWN1+EWpYBDSGC1rhvm07udFBwFLb2zHPLesOdOsPjNgv8Zm1A8srwNljmKbL7Z0cpJPmB/H/ZaR0tuBTPLZM1yd5f5TR6Y8yNeE7a04t/UtCoLRXw6yd4bYQxGWPjSywAB/ZX3Af0CoMrWGxe7CEJAzhvUcyUXhhQsPNo5ec/vwswDVmF+iDSEpo5IfOMw3tFAOPr7wqBHSNZx6NmHIX58h2yE3AOBozBo+Z9QbCI5fikQ91Okk0YKq9FkYABZNnZpbhxCmVPjzZuuIDZfuCulrIaKAz0WX03TJHKTTrUPc2hHAnjvk6pHXcUMc9qDFUrd5UaSsqskDBhSn/mViAt15wR3p5G2ZkDipIxGuGjvEE7MlEsWCH+OdNQtCcEX5USu3csXzUF8/OZ8B7P4ZZbL5heljNQ9sil4qQoB6IIvpGOIURcQssq+w3dF3BV3aU= # github_access_token diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index 6670a94123..280c9fed6b 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -3,12 +3,10 @@ const fs = require('fs'); const childProcess = require('child_process'); const fetch = require('node-fetch'); -const username = process.env.SAUCE_USERNAME; -const accessKey = process.env.SAUCE_ACCESS_KEY; +const username = process.env.BROWSER_USERNAME; +const accessKey = process.env.BROWSER_KEY; const build = process.env.TRAVIS_BUILD_NUMBER; const pullRequest = process.env.TRAVIS_PULL_REQUEST; -const tags = [ process.env.TRAVIS_NODE_VERSION, 'CI' ]; -const idleTimeout = 30; if (pullRequest === 'false') { console.log('Benchmark skipped.'); @@ -17,51 +15,37 @@ if (pullRequest === 'false') { const outputFile = path.join(process.cwd(), 'tmp', 'output.txt'); +const defaultCap = { + 'browserstack.user': username, + 'browserstack.key': accessKey, + build +}; + const args = [ `--capabilities=${JSON.stringify([ /* { browserName: 'safari', version: '10.0', platform: 'macOS 10.12', - username, - accessKey, - idleTimeout, - build, - tags, }, { browserName: 'internet explorer', version: '11.103', platform: 'Windows 10', - username, - accessKey, - idleTimeout, - build, - tags, }, */ { - browserName: 'firefox', - version: 'latest', - platform: 'Windows 10', - username, - accessKey, - idleTimeout, - build, - tags, + browserName: 'Firefox', + os: 'Windows', + os_version: '10', }, { browserName: 'chrome', - version: 'latest', - platform: 'Windows 10', - username, - accessKey, - idleTimeout, - build, - tags, + os: 'Windows', + os_version: '10', }, - ])}`, - `--server=http://${username}:${accessKey}@ondemand.saucelabs.com/wd/hub`, + ].map(cap => Object.assign(cap, defaultCap))}`, + `--server=http://hub-cloud.browserstack.com/wd/hub`, `--custom=${process.cwd()}`, `--output=${outputFile}`, `--iterations=15`, From 5b3fed3e496d270ff586ef5aad14d6eb5f5101ba Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Tue, 4 Jul 2017 13:51:01 -0500 Subject: [PATCH 23/27] Close paranthesis --- scripts/travis-bench.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index 280c9fed6b..4f5fe2f2ea 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -44,7 +44,7 @@ const args = [ os: 'Windows', os_version: '10', }, - ].map(cap => Object.assign(cap, defaultCap))}`, + ].map(cap => Object.assign(cap, defaultCap)))}`, `--server=http://hub-cloud.browserstack.com/wd/hub`, `--custom=${process.cwd()}`, `--output=${outputFile}`, From 8d9374c2aab6cb69c14685968e56043d170d368d Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Tue, 4 Jul 2017 14:14:18 -0500 Subject: [PATCH 24/27] Fix authentication --- .travis.yml | 2 +- scripts/travis-bench.js | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index a432f9e121..05b457eb38 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,7 +8,7 @@ sudo: required env: global: - BUILD_TIMEOUT=10000 - - BROWSER_USERNAME=PaulBGD + - BROWSER_USERNAME=paulsauve1 cache: directories: - "$HOME/.yarn-cache" diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index 4f5fe2f2ea..83e5b7409d 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -67,7 +67,7 @@ const headers = { Authorization: `token ${githubToken}` }; -fetch(`https://api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`, { headers }) +fetch(`https://api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`) .then(res => res.json()) .then(res => { let addComment = false; @@ -82,8 +82,9 @@ fetch(`https://api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/commen if (addComment) { const contents = '
Benchmark Results' + fs.readFileSync(outputFile) + '
'; + let action; if (editId === null) { - return fetch(`https://api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`, { + action = fetch(`https://api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`, { method: 'POST', headers, body: JSON.stringify({ @@ -91,7 +92,7 @@ fetch(`https://api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/commen }) }); } else { - return fetch(`https://api.github.com/repos/sveltejs/svelte/issues/comments/${editId}`, { + action = fetch(`https://api.github.com/repos/sveltejs/svelte/issues/comments/${editId}`, { method: 'PATCH', headers, body: JSON.stringify({ @@ -99,5 +100,6 @@ fetch(`https://api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/commen }) }); } + return action.then(res => res.json()).then(res => console.log('[DEBUG]', res)); } }); From 238bb6d951d83d495acc581b584bec17434badd4 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Tue, 4 Jul 2017 15:51:34 -0500 Subject: [PATCH 25/27] More travis debug --- scripts/travis-bench.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index 83e5b7409d..ffe7f1aecc 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -18,6 +18,7 @@ const outputFile = path.join(process.cwd(), 'tmp', 'output.txt'); const defaultCap = { 'browserstack.user': username, 'browserstack.key': accessKey, + 'browserstack.debug': 'true', build }; @@ -60,11 +61,16 @@ try { console.error('An error occurred running the benchmark!'); } +if (!fs.existsSync(outputFile)) { + throw new Error('Benchmark failed.'); +} + const githubUsername = 'Svelte-Bot'; const id = 29757693; const githubToken = process.env.GITHUB_ACCESS_TOKEN; +console.log('GitHub token is of type', typeof githubToken); const headers = { - Authorization: `token ${githubToken}` + 'Authorization': `token ${githubToken}` }; fetch(`https://api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`) @@ -78,10 +84,12 @@ fetch(`https://api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/commen } else if (res[res.length - 1].user.id === id) { addComment = true; editId = res[res.length - 1].id; + } else { + addComment = true; } if (addComment) { - const contents = '
Benchmark Results' + fs.readFileSync(outputFile) + '
'; + const contents = '
Benchmark Results```' + fs.readFileSync(outputFile).replace(/[\r\n]+/g, '\n') + '```
'; let action; if (editId === null) { action = fetch(`https://api.github.com/repos/sveltejs/svelte/issues/${pullRequest}/comments`, { From 2fc76bb85323f2d68cd903c0465461cdd722faaf Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Tue, 4 Jul 2017 16:04:22 -0500 Subject: [PATCH 26/27] We've come to this --- scripts/travis-bench.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/travis-bench.js b/scripts/travis-bench.js index ffe7f1aecc..1e8e5e3b1b 100644 --- a/scripts/travis-bench.js +++ b/scripts/travis-bench.js @@ -8,6 +8,8 @@ const accessKey = process.env.BROWSER_KEY; const build = process.env.TRAVIS_BUILD_NUMBER; const pullRequest = process.env.TRAVIS_PULL_REQUEST; +console.log(username.length, accessKey ? accessKey.length : typeof accessKey); + if (pullRequest === 'false') { console.log('Benchmark skipped.'); process.exit(0); From 9cb013fe3ceb086d9fc3fca32e3e8ad6d3afd4f8 Mon Sep 17 00:00:00 2001 From: Paul Sauve Date: Tue, 4 Jul 2017 16:34:52 -0500 Subject: [PATCH 27/27] Move to job section --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 05b457eb38..1a4d21dee8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,7 +20,7 @@ jobs: - stage: benchmark script: node scripts/travis-bench.js node_js: '6' -addons: - jwt: - - secure: cE7fNdXH1DeXd1SGdpAV7tocxcq+YxmSXr+wTTqyAuzIFTVbcEqmkaMylJP0ZZ8uUlLRAKavHFR7lswcbhHhHAc71c7RjP5njqmj86g0PVKMDHy78gyLb3NfinyHPOH4StSrUUTD67D4bXPi/NBgeLNDnIgDvfcP7op3sAn1Q1HRuMCVJ8gTNm3w72wmKpPX6lylapmSbt5N8dhRZNq2iohixnKP4uKSj/DCp1wPxJ7EO6GPpbiZFGZS3leON/mVTK2nXCpVgyqOOQ1yr4A5HnyiiAWamPTl8jblM0aWZPucgNWEiivcEJdKuSYgBQE3sHAun87wGaNGZNa8P2pOLGrmb3dZDIfRe5F8IQUySyDczXsQDLakhBCDRD3PAkGh7cnO0DKz3JMXHrcDVgzSE93M/E4HyYuf6Z9jWX4jc/Vi7MG7Eq+AtzRSrMb9sKXpntH+Gdn4JYr7GRhDZd+EcnvOJFIj97bU0IaDkLN0gWBfMYpTB3+Gm6cpj64IJ0iI2YLJH/IVF9p5T5Qh9wxoEpgos5sOpJddtQDyJ2Zk9SsKutcMKjUNXHpIkiOtfG2CxA3wPP//3QCZo7tTbhnGkuWunRiVvRBTvd3owlQbCwaDwv/+ibAAifyzi9ihYqGZ0BY8kY/YHHTG6wz5LqCtTVdJWErp6jIjhuxn10toZNU= # browser key - - secure: BkFLjOmOLU9euAZT9H/9ezDu8s3HdvWr4fEyl0Ddgjjjna/onv1c1GQ9Xu7BG/xEa8o+oM2hXrNs+pdz2euA/pJh6fiYsc3b2XMAEytM/kg8fAUzc6YKK0wRe9HzOW0UnmULyWgqfU1mPaFN+N2TrBXDNq5cCGt+Dze+Oc6fxj/h93OWjcYgHQCTFdIPXKCfKARWqhKgIxhufge1mbdkgT8sQohMdF7sE9hBj2soimRWN1+EWpYBDSGC1rhvm07udFBwFLb2zHPLesOdOsPjNgv8Zm1A8srwNljmKbL7Z0cpJPmB/H/ZaR0tuBTPLZM1yd5f5TR6Y8yNeE7a04t/UtCoLRXw6yd4bYQxGWPjSywAB/ZX3Af0CoMrWGxe7CEJAzhvUcyUXhhQsPNo5ec/vwswDVmF+iDSEpo5IfOMw3tFAOPr7wqBHSNZx6NmHIX58h2yE3AOBozBo+Z9QbCI5fikQ91Okk0YKq9FkYABZNnZpbhxCmVPjzZuuIDZfuCulrIaKAz0WX03TJHKTTrUPc2hHAnjvk6pHXcUMc9qDFUrd5UaSsqskDBhSn/mViAt15wR3p5G2ZkDipIxGuGjvEE7MlEsWCH+OdNQtCcEX5USu3csXzUF8/OZ8B7P4ZZbL5heljNQ9sil4qQoB6IIvpGOIURcQssq+w3dF3BV3aU= # github_access_token + addons: + jwt: + - secure: cOK1+CViuy516Y5UokCDod1ZfdAGJophzGZuKetGuOvUVbLohJJsZkkjPGn7iCD85g3NK7cOVUmqc3+uM+xCOSPf3Hy5wEEQLY+C1hgP4c5rykg8n+MjmOHET6NSa8D9fpeWTc48Al+5l7w3PPs0SISPI/dp9voIYJl61nPuvLmbLH1YESJtrlQ10cem550Ty7alKRLuHcobtFmcdVLKHCoDmUJO7AdqgEh6n8EQRd5csBaB4VGmw7QTOqdgK5cRhWW2w5wL2eOtMNR614VRR96k3p7QW/Nzd1uIQ9PAXU+Y8OgGIyUWDvL3JjRrH74R6RNazLKoqEjR8NaVvg1zIcNYaGrmhtviwJXFpEnqf4jRNtGMqOD/XULgbmi6X8G9qG0WcR/RW2vCyRFa7bg6xb9UhAahmnxDlOOkDJkJzmyWGW9XGF/9w+UR+e8g/wKbiV+xLg+WxTj1SQioKflXWwQnP7lzBbWA/ICBpq8k/lrzQ4Js3Y8fu3K4HPRIzYQxBvoeQ9rWuR6rxD0MyrCAXYIJ/vWC/6Q1/BGVEfeOnXhweVgjy7YOVG2IL0w8cCBoYZvsE4jnV857Y6+3ZxIaVU3v/DwFRry4lwTmgVGMEMYnU5jM1ic5F0MrjuRvJnIjteWRvmIDv1fO6vPo0ypYLdDquUwlajRIns5yJU/uuD0= # browser key + - secure: BkFLjOmOLU9euAZT9H/9ezDu8s3HdvWr4fEyl0Ddgjjjna/onv1c1GQ9Xu7BG/xEa8o+oM2hXrNs+pdz2euA/pJh6fiYsc3b2XMAEytM/kg8fAUzc6YKK0wRe9HzOW0UnmULyWgqfU1mPaFN+N2TrBXDNq5cCGt+Dze+Oc6fxj/h93OWjcYgHQCTFdIPXKCfKARWqhKgIxhufge1mbdkgT8sQohMdF7sE9hBj2soimRWN1+EWpYBDSGC1rhvm07udFBwFLb2zHPLesOdOsPjNgv8Zm1A8srwNljmKbL7Z0cpJPmB/H/ZaR0tuBTPLZM1yd5f5TR6Y8yNeE7a04t/UtCoLRXw6yd4bYQxGWPjSywAB/ZX3Af0CoMrWGxe7CEJAzhvUcyUXhhQsPNo5ec/vwswDVmF+iDSEpo5IfOMw3tFAOPr7wqBHSNZx6NmHIX58h2yE3AOBozBo+Z9QbCI5fikQ91Okk0YKq9FkYABZNnZpbhxCmVPjzZuuIDZfuCulrIaKAz0WX03TJHKTTrUPc2hHAnjvk6pHXcUMc9qDFUrd5UaSsqskDBhSn/mViAt15wR3p5G2ZkDipIxGuGjvEE7MlEsWCH+OdNQtCcEX5USu3csXzUF8/OZ8B7P4ZZbL5heljNQ9sil4qQoB6IIvpGOIURcQssq+w3dF3BV3aU= # github_access_token