2016-04-28 20:50:03 -04:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2017-03-02 03:22:24 -05:00
|
|
|
set -u -e -o pipefail
|
2016-04-28 20:50:03 -04:00
|
|
|
|
2017-03-07 14:04:30 -05:00
|
|
|
TRAVIS=${TRAVIS:-}
|
|
|
|
CI_MODE=${CI_MODE:-}
|
|
|
|
|
2016-04-28 20:50:03 -04:00
|
|
|
# Setup environment
|
2017-03-05 04:49:10 -05:00
|
|
|
readonly thisDir=$(cd $(dirname $0); pwd)
|
|
|
|
source ${thisDir}/_travis-fold.sh
|
|
|
|
|
|
|
|
|
|
|
|
# If the previous commands in the `script` section of .travis.yaml failed, then abort.
|
|
|
|
# The variable is not set in early stages of the build, so we default to 0 there.
|
|
|
|
# https://docs.travis-ci.com/user/environment-variables/
|
|
|
|
if [[ ${TRAVIS_TEST_RESULT=0} == 1 ]]; then
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
|
2016-04-28 20:50:03 -04:00
|
|
|
|
|
|
|
mkdir -p ${LOGS_DIR}
|
|
|
|
|
|
|
|
|
|
|
|
# TODO: install nvm?? it's already on travis so we don't need it
|
|
|
|
#curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.0/install.sh | bash
|
|
|
|
|
|
|
|
|
|
|
|
# Install node
|
|
|
|
#nvm install ${NODE_VERSION}
|
|
|
|
|
|
|
|
|
2017-09-21 09:39:43 -04:00
|
|
|
# Install version of yarn that we are locked against
|
|
|
|
travisFoldStart "install-yarn"
|
|
|
|
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version "${YARN_VERSION}"
|
|
|
|
travisFoldEnd "install-yarn"
|
2016-04-28 20:50:03 -04:00
|
|
|
|
2017-08-28 12:49:41 -04:00
|
|
|
|
2017-09-21 09:39:43 -04:00
|
|
|
# Install all npm dependencies according to yarn.lock
|
|
|
|
travisFoldStart "yarn-install"
|
2017-10-19 05:19:45 -04:00
|
|
|
node tools/npm/check-node-modules --purge || yarn install --frozen-lockfile --non-interactive
|
2017-09-21 09:39:43 -04:00
|
|
|
travisFoldEnd "yarn-install"
|
2017-08-28 12:49:41 -04:00
|
|
|
|
|
|
|
|
2017-08-28 17:11:27 -04:00
|
|
|
# Install bower packages
|
|
|
|
travisFoldStart "bower-install"
|
|
|
|
$(npm bin)/bower install
|
|
|
|
travisFoldEnd "bower-install"
|
2016-04-28 20:50:03 -04:00
|
|
|
|
|
|
|
|
2017-11-06 12:59:59 -05:00
|
|
|
if [[ ${TRAVIS} &&
|
|
|
|
${CI_MODE} == "aio" ||
|
|
|
|
${CI_MODE} == "aio_e2e" ||
|
|
|
|
${CI_MODE} == "aio_tools_test" ||
|
|
|
|
${CI_MODE} == "aio_optional"
|
|
|
|
]]; then
|
2017-01-25 12:39:01 -05:00
|
|
|
# angular.io: Install all yarn dependencies according to angular.io/yarn.lock
|
2017-03-02 03:22:24 -05:00
|
|
|
travisFoldStart "yarn-install.aio"
|
2017-03-05 04:49:10 -05:00
|
|
|
(
|
|
|
|
cd ${PROJECT_ROOT}/aio
|
2017-10-09 03:13:38 -04:00
|
|
|
yarn install --frozen-lockfile --non-interactive
|
2017-03-05 04:49:10 -05:00
|
|
|
)
|
2017-03-02 03:22:24 -05:00
|
|
|
travisFoldEnd "yarn-install.aio"
|
2017-01-25 12:39:01 -05:00
|
|
|
fi
|
|
|
|
|
2017-07-20 12:40:40 -04:00
|
|
|
# Install bazel
|
2017-08-21 11:23:47 -04:00
|
|
|
if [[ ${TRAVIS} && (${CI_MODE} == "bazel" || ${CI_MODE} == "e2e_2") ]]; then
|
2017-07-20 12:40:40 -04:00
|
|
|
travisFoldStart "bazel-install"
|
|
|
|
(
|
|
|
|
mkdir tmp
|
|
|
|
cd tmp
|
2017-09-25 15:40:22 -04:00
|
|
|
curl --location --compressed https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-installer-linux-x86_64.sh > bazel-${BAZEL_VERSION}-installer-linux-x86_64.sh
|
|
|
|
chmod +x bazel-${BAZEL_VERSION}-installer-linux-x86_64.sh
|
|
|
|
./bazel-${BAZEL_VERSION}-installer-linux-x86_64.sh --user
|
2017-07-20 12:40:40 -04:00
|
|
|
cd ..
|
|
|
|
rm -rf tmp
|
|
|
|
)
|
|
|
|
travisFoldEnd "bazel-install"
|
|
|
|
fi
|
2017-01-25 12:39:01 -05:00
|
|
|
|
2017-10-19 14:15:44 -04:00
|
|
|
|
|
|
|
# Install Chromium
|
2017-11-06 12:59:59 -05:00
|
|
|
if [[ ${TRAVIS} &&
|
|
|
|
${CI_MODE} == "js" ||
|
|
|
|
${CI_MODE} == "e2e" ||
|
|
|
|
${CI_MODE} == "e2e_2" ||
|
|
|
|
${CI_MODE} == "aio" ||
|
|
|
|
${CI_MODE} == "aio_e2e" ||
|
|
|
|
${CI_MODE} == "aio_optional"
|
|
|
|
]]; then
|
2017-10-19 14:15:44 -04:00
|
|
|
travisFoldStart "install-chromium"
|
|
|
|
(
|
|
|
|
${thisDir}/install-chromium.sh
|
|
|
|
|
|
|
|
# Start xvfb for local Chrome used for testing
|
|
|
|
if [[ ${TRAVIS} ]]; then
|
|
|
|
travisFoldStart "install-chromium.xvfb-start"
|
|
|
|
sh -e /etc/init.d/xvfb start
|
|
|
|
travisFoldEnd "install-chromium.xvfb-start"
|
|
|
|
fi
|
|
|
|
)
|
|
|
|
travisFoldEnd "install-chromium"
|
2016-04-28 20:50:03 -04:00
|
|
|
fi
|
2017-01-25 12:39:01 -05:00
|
|
|
|
2016-04-28 20:50:03 -04:00
|
|
|
|
|
|
|
# Install Sauce Connect
|
2016-05-09 19:47:26 -04:00
|
|
|
if [[ ${TRAVIS}] && (${CI_MODE} == "saucelabs_required" || ${CI_MODE} == "saucelabs_optional") ]]; then
|
2017-03-02 03:22:24 -05:00
|
|
|
travisFoldStart "install-sauceConnect"
|
2017-03-05 04:49:10 -05:00
|
|
|
(
|
|
|
|
${thisDir}/../sauce/sauce_connect_setup.sh
|
|
|
|
)
|
2017-03-02 03:22:24 -05:00
|
|
|
travisFoldEnd "install-sauceConnect"
|
2016-04-28 20:50:03 -04:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# Install BrowserStack Tunnel
|
2016-05-09 19:47:26 -04:00
|
|
|
if [[ ${TRAVIS} && (${CI_MODE} == "browserstack_required" || ${CI_MODE} == "browserstack_optional") ]]; then
|
2017-03-02 03:22:24 -05:00
|
|
|
travisFoldStart "install-browserstack"
|
2017-03-05 04:49:10 -05:00
|
|
|
(
|
|
|
|
${thisDir}/../browserstack/start_tunnel.sh
|
|
|
|
)
|
2017-03-02 03:22:24 -05:00
|
|
|
travisFoldEnd "install-browserstack"
|
2016-04-28 20:50:03 -04:00
|
|
|
fi
|
|
|
|
|
2017-03-02 03:22:24 -05:00
|
|
|
# Print return arrows as a log separator
|
|
|
|
travisFoldReturnArrows
|