language: node_js
node_js:
- '8'
sudo: required
group: deprecated-2017Q4
cache:
  directories:
  - /home/travis/virtualenv/python2.7/lib/python2.7/site-packages
  - node_modules
notifications:
  slack:
    secure: ezESiG7JnuSLZc2/PPhOvWUv5BHBCr+g86MsuLLw+S+zz3DUfzWHMQ1g5tUvkeSDTPmfEIX41EnPkaoWtsD3OGO0PGXgseAfA8+6Z4N1rICNZZrhXZB2s6UdwRK1e+0Jol4W3kHmt96BHyN2scLNgJYeWMgSJllVsuPhMTlKBZIXI9u540NH8Nxjl3f2WvoIg64Q1mZvMxkpPbw4xssx6U4HSFE8kTTE6+EFsSxzombFX0cLGjPiJ9QZgGVUk4UkIjyiFLQQDfQlLllCaUpqJ9+qbuCNoMSKA2yty/qyZ8Y+r4OlMberjmBzR9GRLLyXWWcaAfMIgwlRhjtLYIDAUSsGM1iwUWCgyB9maG2IiXuYLSueuMx8DcDwbpUepoDgnqBYnM2AJmT8gcsxqlKYzJpYpHDgZgBlLZQgMXqjrVJHs/Tf9XVcLS6HAn1Ww0OOT01jThfy4gClpAuqLayYexsXOoL+RaFg25E2NzuTtaFWgRfWZgcAeqYNDiUzwun2D4vZ5I+NtdRP0gzpbG2fxhFz05vAqyf1Kp6ZYb17Li3A38dIm6Lsvv3qawAIAgNaZpIZX3f89+uq6jHU8kJy1Iv823JK2Xac3vEz3SHUKJnuXFF0LO07om9AcNEXhP/JrJ617S8nfvDtZRJODMFhz8qQwie+65Ql1I871goBpVs=
env:
  global:
  - CXX=g++-4.8
  - API_HOST_master=https://api.scratch.mit.edu
  - API_HOST_STAGING=https://api.scratch.ly
  - API_HOST_VAR=API_HOST_$TRAVIS_BRANCH
  - API_HOST=${!API_HOST_VAR}
  - API_HOST=${API_HOST:-$API_HOST_STAGING}
  - ASSET_HOST_master=https://assets.scratch.mit.edu
  - ASSET_HOST_STAGING=https://assets.scratch.ly
  - ASSET_HOST_VAR=ASSET_HOST_$TRAVIS_BRANCH
  - ASSET_HOST=${!ASSET_HOST_VAR}
  - ASSET_HOST=${ASSET_HOST:-$ASSET_HOST_STAGING}
  - BACKPACK_HOST_master=https://backpack.scratch.mit.edu
  - BACKPACK_HOST_STAGING=https://backpack.scratch.ly
  - BACKPACK_HOST_VAR=BACKPACK_HOST_$TRAVIS_BRANCH
  - BACKPACK_HOST=${!BACKPACK_HOST_VAR}
  - BACKPACK_HOST=${BACKPACK_HOST:-$BACKPACK_HOST_STAGING}
  - CLOUDDATA_HOST_master=clouddata.scratch.mit.edu
  - CLOUDDATA_HOST_STAGING=varserver2.scratch.ly
  - CLOUDDATA_HOST_VAR=CLOUDDATA_HOST_$TRAVIS_BRANCH
  - CLOUDDATA_HOST=${!CLOUDDATA_HOST_VAR}
  - CLOUDDATA_HOST=${CLOUDDATA_HOST:-$CLOUDDATA_HOST_STAGING}
  - ROOT_URL_master=https://scratch.mit.edu
  - ROOT_URL_STAGING=https://scratch.ly
  - ROOT_URL_VAR=ROOT_URL_$TRAVIS_BRANCH
  - ROOT_URL=${!ROOT_URL_VAR}
  - ROOT_URL=${ROOT_URL:-$ROOT_URL_STAGING}
  - PROJECT_HOST_master=https://projects.scratch.mit.edu
  - PROJECT_HOST_STAGING=https://projects.scratch.ly
  - PROJECT_HOST_VAR=PROJECT_HOST_$TRAVIS_BRANCH
  - PROJECT_HOST=${!PROJECT_HOST_VAR}
  - PROJECT_HOST=${PROJECT_HOST:-$PROJECT_HOST_STAGING}
  - STATIC_HOST_master=https://cdn2.scratch.mit.edu
  - STATIC_HOST_STAGING=https://cdn.scratch.ly
  - STATIC_HOST_VAR=STATIC_HOST_$TRAVIS_BRANCH
  - STATIC_HOST=${!STATIC_HOST_VAR}
  - STATIC_HOST=${STATIC_HOST:-$STATIC_HOST_STAGING}
  - PATH=$PATH:$PWD/test/integration/node_modules/chromedriver/bin
  - AWS_ACCESS_KEY_ID=$EB_AWS_ACCESS_KEY_ID
  - AWS_SECRET_ACCESS_KEY=$EB_AWS_SECRET_ACCESS_KEY
  - FASTLY_ACTIVATE_CHANGES=true
  # FASTLY_API_KEY
  - secure: XNWcCnqSAd4MpKg6FVe3WeFmdqfdH753+PBCOEkJrHS+AHmLMuWsjIQFJ3LUR9ylEQRVPR2OyXJW/R8NI9toStREgwE4fwIVo0l4fwYqLStxYpEKlcWfkJ3uNpRZhvcVmUBycelrnjJqXVdrtlxPCKX0tNkpcKH2b98We7A2/r7HxKv13upDxWTQ/qRUv0+SJCRTB4n/QInABi87Ef8Q2rNGrL0WQzQvVBeiEXOP0JSkyYK4+q65gswMKPehgiFagnYVgJN9J9Q1VrBDc06gidbznBcEpPaBAYvsTTY9dWTJxaaKNSrmOIe/OiuJUEHjb+8NL+j6Lp7wX8lzEjbr0FkVlFnxS9VbftS2KFkN7+c3RF57+tsq0xwJ6vgomIVS5FupHgl/oCJicnH/FLfynditOLZhmhF+Ed5GCAoIEamRRzcVHdjvglsEtYsDX1/z2t+HKYtPQuXYOywDRVTSPf88eEbu8ehfgNcYaIAuD6eedyDnKTOIv7owWs3Y7GsxQ2jBLGXq1YoUEkPtB0vfaHi72CeEhDQ53mEn2Ure47UMGMgUjKtiIhDBNTbECwP/ZDJv1accGRljKjDy93aCJeRi1T7Op7tDbHSl4ScieeOwOeKJMcD1U5JGdA/sRnjjgSKb24P2ys4NYr95dgqWNNGPGMxca+lGufzdEaTQT44=
  # FASTLY_SERVICE_ID_master
  - secure: l5jwRVj4rj7qT6iuRinVqBBOie3OwBgXDPFER15JLLj5H5HZn0iGtdyuAhjvNWp6+Q/gGU6GAJEBCx63oFESBklyKUbZEAFqVI8f8g+d9toce+rlnMLcbw5A4jfgyqxJS9IYu57v291AGO78x7+HhUxbf9XLjhl1N18sIIDcMUXQir1zjnOkyBm3M4In2pi7PLdkpYwaWDxyjR9+Jy5BE9bl68BRSoqRGidFpoWHeZM4zrXzY49gSUsHNL6UnmYwCdEOGEclSn9cAhTE2O+z24Du3Kp35JfBnI8kHFfBn/u5auiHPzuwC4QvovjrxBNX9bvjBKVOPhgaq0kw3cKxftEeMAlHciancaXnCWFGSSQ7Cw7isvbYAJsy9gbNtJoNn90KlSPLUQ8pRcPU7pcfCabBxGYFda4736dWjq++SxiCyMgmxU9Q5LqOQWNvGsLREAKp4SOg0nkv2mrebAvL3Ta/nfI1Fb5mDtxsHJldttMYQgElV5OsXncZBY5pZG5KdbffnaxS40oRT58xdMQPLx/RUK/ZLkq+3lJM7Pb/ZuSJr7WBTu54VsWrPGr53Td1kZgONH1ksAepJxCij/X4f56aiQbRm144r9ERSJZBZ8qn8GG7N3Mad+ZJkPS9Bs4DIDgJyxMm7kIhUhPfHzydsb93ns1bPI6l+S+dx2JIKHc=
  # FASTLY_SERVICE_ID_STAGING
  - secure: MyT0xGN75v1bVnP1fpKaenx2WijGi2OZCQV5TDeDkgqlkW9n2HOtGa4bWE+cT+hR8UieC176sGg7OvsUCy0nYm5QhR8WJc+8WGa689GsPDUMgw+hUKfk/JYeHQHNKTwAyY6iN6Jo2qQtcBMS/M8xakwYaktB0vcNNId13Fhj7IMUTUEdpSWQLTkaXGB7cHM0ak9KqivH2aqzoncJnhcRNrqVz3FaLKmqAXI8NpQcgz5uAxkBjmniIHWkJPWRvLqr3xRebDaXiMFI7pB+iTSlbzR2lqsZLzZpSBJbqKhPx99KvnHjlSq7LAjP840X5Vj5ZCPlSrZe4IIYp2g863j5nOUHj1MC1Eh6xD3bjmZ+61KaWchSWMp+XOs9grghl9kLexfwZbCNxW0s8uq+WqOY/qcbzm/go5z7WFlDJ1Qmdo2sLhdtwCwcSwyCR8nhoaHqJtKg9PJTyKbr+SWizDVlSyWRccqyJ1jd/vjd1xAG5RRM6YuP4RBqEAWGzOsx+kJMhnOOI3yIZfY7eTntMxb9Gxjyk4IsBX3pyPHJSWeb7x4bzMGCHSewMmdTzcFHvSmRaZ2w50PSqPSagR42mYJqAfaS1/eMSf2oI5kE9RmiQYP4SrLerdYFbYEt0w8/+Hu8glRqpJtMSB42yWanMIvMBahSQH9dun3TzFQKKEljwzA=
  - FASTLY_SERVICE_ID_VAR=FASTLY_SERVICE_ID_$TRAVIS_BRANCH
  - FASTLY_SERVICE_ID=${!FASTLY_SERVICE_ID_VAR}
  - FASTLY_SERVICE_ID=${FASTLY_SERVICE_ID:-$FASTLY_SERVICE_ID_STAGING}
  - GA_TRACKER_master=UA-30688952-1
  - GA_TRACKER_STAGING=UA-30688952-7
  - GA_TRACKER_VAR=GA_TRACKER_$TRAVIS_BRANCH
  - GA_TRACKER=${!GA_TRACKER_VAR}
  - GA_TRACKER=${GA_TRACKER:-$GA_TRACKER_STAGING}
  - SCRATCH_ENV_master=production
  - SCRATCH_ENV_STAGING=staging
  - SCRATCH_ENV_VAR=SCRATCH_ENV_$TRAVIS_BRANCH
  - SCRATCH_ENV=${!SCRATCH_ENV_VAR}
  - SCRATCH_ENV=${SCRATCH_ENV:-$SCRATCH_ENV_STAGING}
  - S3_BUCKET_NAME_master=scratch-www-production
  - S3_BUCKET_NAME_STAGING=scratch-www-staging
  - S3_BUCKET_NAME_VAR=S3_BUCKET_NAME_$TRAVIS_BRANCH
  - S3_BUCKET_NAME=${!S3_BUCKET_NAME_VAR}
  - S3_BUCKET_NAME=${S3_BUCKET_NAME:-$S3_BUCKET_NAME_STAGING}
  - S3_LOCAL_DIR=build
  - SENTRY_DSN_master=https://ebc2f8a6bc7b44ca8fd902fd4f16b3d7@sentry.io/1357122
  - SENTRY_DSN_STAGING=https://c01014988b0a4f44bbefdf235623c456@sentry.io/1357982
  - SENTRY_DSN_VAR=SENTRY_DSN_$TRAVIS_BRANCH
  - SENTRY_DSN=${!SENTRY_DSN_VAR}
  - SENTRY_DSN=${SENTRY_DSN:-$SENTRY_DSN_STAGING}
  - SENTRY_ORG=scratch-foundation
  - SENTRY_PROJECT_master=scratch-30-production
  - SENTRY_PROJECT_STAGING=scratch-30-staging
  - SENTRY_PROJECT_VAR=SENTRY_PROJECT_$TRAVIS_BRANCH
  - SENTRY_PROJECT=${!SENTRY_PROJECT_VAR}
  - SENTRY_PROJECT=${SENTRY_PROJECT:-$SENTRY_PROJECT_STAGING}
  - SKIP_CLEANUP=true
  - NODE_ENV=production
  - WWW_VERSION=${TRAVIS_COMMIT:0:5}
addons:
  chrome: stable
  apt:
    sources:
      - ubuntu-toolchain-r-test
    packages:
      - g++-4.8
before_install:
# package-lock.json was introduced in npm@5
- '[[ $(node -v) =~ ^v9.*$ ]] || npm install -g npm@latest' # skipped when using node 9
- npm install -g greenkeeper-lockfile
install:
  - sudo -H pip install -r requirements.txt
  - npm --production=false install
  - npm --production=false update
before_script: greenkeeper-lockfile-update
after_script: greenkeeper-lockfile-upload
jobs:
  include:
  - stage: test
    deploy:
    - provider: script
      skip_cleanup: $SKIP_CLEANUP
      script: npm run deploy
      on:
        repo: LLK/scratch-www
        branch:
        - develop
        - hotfix/*
        - release/*
    - provider: script
      skip_cleanup: $SKIP_CLEANUP
      script: npm run deploy
      on:
        repo: LLK/scratch-www
        branch:
        - master
  - stage: smoke
    script: npm run test:integration:remote
stages:
- test
- name: smoke
  if: type != pull_request