mirror of
https://github.com/transloadit/uppy.git
synced 2026-01-23 02:25:07 +00:00
Marrying travis & sauce (#88)
* First swing at marrying travis & sauce * Try to utilize the tunnel on Travis so we can test localhost * Fix tag tyoe * No longer spin up xwindows as saucelabs runs our browsers now
This commit is contained in:
parent
c4793e9804
commit
36aca95a88
5 changed files with 59 additions and 18 deletions
|
|
@ -7,15 +7,16 @@ addons:
|
|||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- g++-4.8
|
||||
sauce_connect:
|
||||
username:
|
||||
secure: nAMJ/d1fm9urTYsQ+1uqj6Jjf71J8rzwYBSZbTDAeUEZzAdvGc0a9H3PYWM4pnUDPo5s1c9MMetXi2XNdUbXgMKHbEnePZ2mJamqFtXMmpG8pgFmMqj+btMd7Yybt070tRsn4Vy0uBSi2H/en7F3j+grABJV+SAXqWkSB7CU1fZaN/u0DpoGBNj1ZNwkYCIhpLueYJTPRWBOodMAarXuFv5+7KFOKuZM3tF/JjsMNSSaDgTkz13BZnbX6vNPxGJJNJcyJGSaXrVW8hh1Zmvnk/XdiLy+vt7Wz1wz3A9ebiFDuydo5AAkxrLFsCJ5nGEqLg3bkr6NaTRpbM84ZT3i1FQMTdKP6OHHqwAeBscB6BkyhZhzvsFtl2YRBNK9mA3OtOYvBmTkFkNqvrPQlfu7cFtyG5+AUfSCiTTgS/vWIwoqSVAXaOEqN8Fp54ecUdkzCTttl3gXteZzNLRYvyQcFpoJb6E+dS8qAW0OFOteiwKVuPCh3nGUzBP13bRo1i9UAX7ZCTlpjinkxE8ryzbToo6ZcVQMBAkKhaw/x8GzOtfm5rgYMeQzGEoBJNfr7qqfs7JMxAIEMYjrTL9PXVOp/R8F3FdsqbV70jSyfsxMSMkwSWFRmVslG8+Djy8P3LnckGy1FEbMHnH8GZHZg+hbBzN8Be1/1fV0oRRAr939WRc=
|
||||
access_key:
|
||||
secure: OY3oWwiJghfty9wSPVvlhirvFGxPHDdIRuVkzAv6j7C/hj2BWYAP/UHrwdQ9XiYisHi/B5mGeyRVlrAf0MNGrG84rTDUbTWZbmktfuxl7A+Y6c0czk+s4SdhOiANG5b3tFl5wKq8h7uhrWH5/jWoKQ2Fz1VDCqxTvvZQbo41jSBhi7TBia626hxEePzdaiuw6HhGFZtfaoVs/FX30ylz8WDNrBjwCynjxsT52BaQrVvgEhuyzlOpI69YkZBPOq4fc3KiZ2YR43gLTx8K+sYCE9yJxdg1xT/UAawEhmedU83nyBZVo4rr7+03AixIxtI28MUCfBMlcsGwBxcKEKY/IWcp9UkPCq6+zALQoncV478tP21eYvlmxSFhYCrv+WEQlN+BcNjr4OJlmmFDbCVaF7r9qLeQPImU0+9iJU3OjrW7lpfLxORpGDEr2Nx6awKkIJCxNyK9weefeNo6Fz3V1kkyZ/7yWFeniJnRUCbahrB2XgzxIE+W307s1Qs4fm6JK7hVLTtG4fBzjChmAyGIzu744ws9WqmjvkC9D7OfnuXqanv/VcBFqPiudInerv7NL8FketUC+fxe/7XJfcxdaDGBjk8Kq7zXDohGRGymUXEoMDNJsKkMMlaKzdf7tgqdhsRJoH9NCVqrDXuG5al0UtrDP5RS7qfoxUunJmNFhlg=
|
||||
cache:
|
||||
apt: true
|
||||
directories:
|
||||
- node_modules
|
||||
- website/node_modules
|
||||
before_script:
|
||||
- export PATH=${PATH}:${HOME}/bin
|
||||
- export DISPLAY=:99.0
|
||||
- /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16
|
||||
script:
|
||||
- npm run build
|
||||
- npm run test
|
||||
|
|
|
|||
|
|
@ -67,7 +67,8 @@ Theme: Acceptance tests and Google Drive Polish
|
|||
|
||||
Scheduled to be released: May 06, 2016
|
||||
|
||||
- [ ] Add `addFile`-hack so we can have acceptance tests on Safari as well as Edge (@arturi)
|
||||
- [ ] Wire saucelabs and travis togeteher, make saucelabsl fails fatal to travis builds
|
||||
- [x] Add `addFile`-hack so we can have acceptance tests on Safari as well as Edge (@arturi)
|
||||
- [x] drive: possible UI polish (@hedgerh)
|
||||
- [x] drive: write files to filesystem correctly (@hedgerh)
|
||||
- [x] test: Fix 15s timeout image.jpg (@arturi)
|
||||
|
|
|
|||
|
|
@ -9,6 +9,10 @@ export UPPYSERVER_GOOGLE_SECRET="***"
|
|||
export UPPYSERVER_INSTAGRAM_KEY="***"
|
||||
export UPPYSERVER_INSTAGRAM_SECRET="***"
|
||||
|
||||
# Let's not set this by default, because that will make acceptance tests Always run on Saucelabs
|
||||
## export SAUCE_ACCESS_KEY="***"
|
||||
## export SAUCE_USERNAME="***"
|
||||
|
||||
# travis encrypt --add GHPAGES_URL=https://secret_access_token@github.com/transloadit/uppy.git
|
||||
# travis encrypt --add env.global "UPPYSERVER_DROPBOX_KEY=${UPPYSERVER_DROPBOX_KEY}"
|
||||
# travis encrypt --add env.global "UPPYSERVER_DROPBOX_SECRET=${UPPYSERVER_DROPBOX_SECRET}"
|
||||
|
|
@ -16,3 +20,9 @@ export UPPYSERVER_INSTAGRAM_SECRET="***"
|
|||
# travis encrypt --add env.global "UPPYSERVER_GOOGLE_SECRET=${UPPYSERVER_GOOGLE_SECRET}"
|
||||
# travis encrypt --add env.global "UPPYSERVER_INSTAGRAM_KEY=${UPPYSERVER_INSTAGRAM_KEY}"
|
||||
# travis encrypt --add env.global "UPPYSERVER_INSTAGRAM_SECRET=${UPPYSERVER_INSTAGRAM_SECRET}"
|
||||
|
||||
# The Travis Sauce Connect addon exports the SAUCE_USERNAME and SAUCE_ACCESS_KEY environment variables,
|
||||
# and relays connections to the hub URL back to Sauce Labs.
|
||||
# See: https://docs.travis-ci.com/user/gui-and-headless-browsers/#Using-Sauce-Labs
|
||||
# travis encrypt --add addons.sauce_connect.username "${SAUCE_USERNAME}"
|
||||
# travis encrypt --add addons.sauce_connect.access_key "${SAUCE_ACCESS_KEY}"
|
||||
|
|
|
|||
|
|
@ -15,15 +15,33 @@ require('babel-register')
|
|||
var webdriver = require('selenium-webdriver')
|
||||
var remote = require('selenium-webdriver/remote')
|
||||
|
||||
var username = process.env.SAUCELABS_USERNAME
|
||||
var accessKey = process.env.SAUCELABS_ACCESS_KEY
|
||||
// The Travis Sauce Connect addon exports the SAUCE_USERNAME and SAUCE_ACCESS_KEY environment variables,
|
||||
// and relays connections to the hub URL back to Sauce Labs.
|
||||
// See: https://docs.travis-ci.com/user/gui-and-headless-browsers/#Using-Sauce-Labs
|
||||
var username = process.env.SAUCE_USERNAME
|
||||
var accessKey = process.env.SAUCE_ACCESS_KEY
|
||||
|
||||
var remoteHost = 'http://uppy.io'
|
||||
var localHost = 'http://localhost:4000'
|
||||
|
||||
// if accessKey is supplied as env variable, this is a remote Saucelabs test
|
||||
var isRemoteTest = accessKey ? true : ''
|
||||
var host = isRemoteTest ? remoteHost : localHost
|
||||
var isTravisTest = process.env.TRAVIS === 'true'
|
||||
var isRemoteTest = !!accessKey
|
||||
|
||||
var host = localHost
|
||||
if (isTravisTest) {
|
||||
// We have a tunnel via the saucelabs addon on Travis
|
||||
host = localHost
|
||||
} else if (isRemoteTest) {
|
||||
// We're not too sure about a working tunnel otherwise, best just test uppy.io
|
||||
host = remoteHost
|
||||
} else {
|
||||
// If we don't have any access keys set, we'll assume you'll be playing around with a local
|
||||
// firefox webdriver.
|
||||
host = localHost
|
||||
}
|
||||
|
||||
console.log('Acceptance tests will be targetting: ' + host)
|
||||
|
||||
// FYI: old Chrome on Windows XP — didn’t pass
|
||||
var platforms = [
|
||||
|
|
@ -45,15 +63,26 @@ var tests = [
|
|||
function buildDriver (platform) {
|
||||
var driver
|
||||
if (isRemoteTest) {
|
||||
var capabilities = {
|
||||
'browserName': platform.browser,
|
||||
'platform': platform.os,
|
||||
'version': platform.version,
|
||||
'username': username,
|
||||
'accessKey': accessKey
|
||||
}
|
||||
|
||||
if (isTravisTest) {
|
||||
// @todo Do we need a hub_url = "%s:%s@localhost:4445" % (username, access_key)
|
||||
// as mentioned in https://docs.travis-ci.com/user/gui-and-headless-browsers/#Using-Sauce-Labs ?
|
||||
capabilities['tunnel-identifier'] = process.env.TRAVIS_JOB_NUMBER
|
||||
capabilities['build'] = process.env.TRAVIS_BUILD_NUMBER
|
||||
capabilities['name'] = 'Travis ##' + process.env.TRAVIS_JOB_NUMBER
|
||||
capabilities['tags'] = [process.env.TRAVIS_NODE_VERSION, 'CI']
|
||||
}
|
||||
|
||||
driver = new webdriver
|
||||
.Builder()
|
||||
.withCapabilities({
|
||||
'browserName': platform.browser,
|
||||
'platform': platform.os,
|
||||
'version': platform.version,
|
||||
'username': username,
|
||||
'accessKey': accessKey
|
||||
})
|
||||
.withCapabilities(capabilities)
|
||||
.usingServer('http://' + username + ':' + accessKey +
|
||||
'@ondemand.saucelabs.com:80/wd/hub')
|
||||
.build()
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
var webdriver = require('selenium-webdriver')
|
||||
var remote = require('selenium-webdriver/remote')
|
||||
|
||||
var username = process.env.SAUCELABS_USERNAME
|
||||
var accessKey = process.env.SAUCELABS_ACCESS_KEY
|
||||
var username = process.env.SAUCE_USERNAME
|
||||
var accessKey = process.env.SAUCE_ACCESS_KEY
|
||||
|
||||
// var platform = { browser: 'firefox', version: '34.0', os: 'Windows 7' }
|
||||
var platform = { browser: 'Safari', version: '9.0', os: 'OS X 10.11' }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue