10897d6473
There are now 3 modes for deployment: next, stable, archive. We compute which mode (and other deployment properties) from the `TRAVIS_BRANCH` and the `STABLE_BRANCH`. If the TRAVIS_BRANCH is master we deploy as "next". If the `TRAVIS_BRANCH` matches the `STABLE_BRANCH` we deploy as "stable". Otherwise if the branch has a major version lower than the stable version and its minor version is highest of similar branches we deploy as "archive". For "archive" deployments we compute the firebase project and deployment url based on the major version of the `TRAVIS_BRANCH`. As well as choosing where to deploy the build, we also use this to select the environment file for the AIO Angular app. This will enable the app to change its rendering and behaviour based on its mode. See #18287 Closes #18297
84 lines
3.4 KiB
YAML
84 lines
3.4 KiB
YAML
language: node_js
|
|
sudo: false
|
|
# force trusty as Google Chrome addon is not supported on Precise
|
|
dist: trusty
|
|
node_js:
|
|
- '6.9.5'
|
|
|
|
addons:
|
|
chrome: stable
|
|
# firefox: "38.0"
|
|
apt:
|
|
sources:
|
|
# needed to install g++ that is used by npms's native modules
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
# needed to install g++ that is used by npms's native modules
|
|
- g++-4.8
|
|
# https://docs.travis-ci.com/user/jwt
|
|
jwt:
|
|
# SAUCE_ACCESS_KEY<=secret for NGBUILDS_IO_KEY to work around travis-ci/travis-ci#7223, unencrypted value in valentine as NGBUILDS_IO_KEY>
|
|
# we alias NGBUILDS_IO_KEY to $SAUCE_ACCESS_KEY in env.sh and set the SAUCE_ACCESS_KEY there
|
|
- secure: "L7nrZwkAtFtYrP2DykPXgZvEKjkv0J/TwQ/r2QGxFTaBq4VZn+2Dw0YS7uCxoMqYzDwH0aAOqxoutibVpk8Z/16nE3tNmU5RzltMd6Xmt3qU2f/JDQLMo6PSlBodnjOUsDHJgmtrcbjhqrx/znA237BkNUu6UZRT7mxhXIZpn0U="
|
|
branches:
|
|
except:
|
|
- g3
|
|
|
|
cache:
|
|
yarn: true
|
|
directories:
|
|
- ./node_modules
|
|
- ./.chrome/chromium
|
|
- ./aio/node_modules
|
|
|
|
env:
|
|
global:
|
|
# GITHUB_TOKEN_ANGULAR=<github token, a personal access token of the angular-builds account, account access in valentine>
|
|
# This is needed for the e2e Travis matrix task to publish packages to github for continuous packages delivery.
|
|
- secure: "aCdHveZuY8AT4Jr1JoJB4LxZsnGWRe/KseZh1YXYe5UtufFCtTVHvUcLn0j2aLBF0KpdyS+hWf0i4np9jthKu2xPKriefoPgCMpisYeC0MFkwbmv+XlgkUbgkgVZMGiVyX7DCYXVahxIoOUjVMEDCbNiHTIrfEuyq24U3ok2tHc="
|
|
# FIREBASE_TOKEN
|
|
# This is needed for publishing builds to the "aio-staging" and "angular-io" firebase projects.
|
|
# This token was generated using the aio-deploy@angular.io account using `firebase login:ci` and password from valentine
|
|
- secure: "L5CyQmpwWtoR4Qi4xlWQh/cL1M6ZeJL4W4QAr4HdKFMgYt9h+Whqkymyh2NxwmCbPvWa7yUd+OiLQUDCY7L2VIg16hTwoe2CgYDyQA0BEwLzxtRrJXl93TfwMlrUx5JSIzAccD6D4sjtz8kSFMomK2Nls33xOXOukwyhVMjd0Cg="
|
|
# ANGULAR_PAYLOAD_FIREBASE_TOKEN
|
|
# This is for payload size data to "angular-payload-size" firebase project
|
|
# This token was generated using the payload@angular.io account using `firebase login:ci` and password from valentine
|
|
- secure: "SxotP/ymNy6uWAVbfwM9BlwETPEBpkRvU/F7fCtQDDic99WfQHzzUSQqHTk8eKk3GrGAOSL09vT0WfStQYEIGEoS5UHWNgOnelxhw+d5EnaoB8vQ0dKQBTK092hQg4feFprr+B/tCasyMV6mVwpUzZMbIJNn/Rx7H5g1bp+Gkfg="
|
|
matrix:
|
|
# Order: a slower build first, so that we don't occupy an idle travis worker waiting for others to complete.
|
|
- CI_MODE=e2e
|
|
- CI_MODE=e2e_2
|
|
- CI_MODE=js
|
|
- CI_MODE=saucelabs_required
|
|
- CI_MODE=browserstack_required
|
|
- CI_MODE=saucelabs_optional
|
|
- CI_MODE=browserstack_optional
|
|
- CI_MODE=aio_tools_test
|
|
- CI_MODE=aio
|
|
- CI_MODE=aio_e2e AIO_SHARD=0
|
|
- CI_MODE=aio_e2e AIO_SHARD=1
|
|
- CI_MODE=bazel
|
|
|
|
matrix:
|
|
fast_finish: true
|
|
allow_failures:
|
|
- env: "CI_MODE=saucelabs_optional"
|
|
- env: "CI_MODE=browserstack_optional"
|
|
|
|
before_install:
|
|
# source the env.sh script so that the exported variables are available to other scripts later on
|
|
- source ./scripts/ci/env.sh print
|
|
|
|
install:
|
|
- ./scripts/ci/install.sh
|
|
|
|
script:
|
|
- ./scripts/ci/build.sh
|
|
- ./scripts/ci/test.sh
|
|
# deploy is part of 'script' and not 'after_success' so that we fail the build if the deployment fails
|
|
- ./scripts/ci/deploy.sh
|
|
- ./scripts/ci/angular.sh
|
|
# all the scripts under this line will not quickly abort in case ${TRAVIS_TEST_RESULT} is 1 (job failure)
|
|
- ./scripts/ci/cleanup.sh
|
|
- ./scripts/ci/print-logs.sh
|