Some engineers were already on Yarn 0.10.x which was permitted by the range in our package.json#engines However this introduced 'integrity sha512' lines into the yarn.lock files. Then when engineers use yarn 0.9 (in particular, Bazel did this) then the lock files get tons of meaningless edits. We could force everyone back to yarn 0.9 but this commit chooses to instead advance everyone past 0.10 PR Close #27193
128 lines
4.8 KiB
Bash
Executable File
128 lines
4.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# because this script is being source-ed via .travis.yaml,
|
|
# we need to restore the original options so that that we don't interfere with
|
|
# travis' internals
|
|
readonly ORIGINAL_SHELL_OPTIONS=$(set +o)
|
|
|
|
# this script is extra noisy and used in many places during the build so we suppress the trace with +x to reduce the noise
|
|
set -u -e -o pipefail
|
|
|
|
# sets and optionally prints environmental variable
|
|
# usage: setEnvVar variableName variableValue
|
|
function setEnvVar() {
|
|
local name=$1
|
|
local value=$2
|
|
|
|
if [[ ${print} == "print" ]]; then
|
|
echo ${name}=${value}
|
|
fi
|
|
export ${name}="${value}"
|
|
}
|
|
|
|
# use BASH_SOURCE so that we get the right path when this script is called AND source-d
|
|
readonly thisDir=$(cd $(dirname ${BASH_SOURCE[0]}); pwd)
|
|
readonly print=${1:-}
|
|
|
|
# print bash version just so that we know what is running all the scripts
|
|
if [[ ${print} == "print" ]]; then
|
|
bash --version
|
|
fi
|
|
|
|
|
|
#######################
|
|
# CUSTOM GLOBALS #
|
|
#######################
|
|
|
|
setEnvVar NODE_VERSION 10.9.0
|
|
setEnvVar YARN_VERSION 1.12.1
|
|
setEnvVar CHROMIUM_VERSION 561733 # Chrome 68 linux stable, see https://www.chromium.org/developers/calendar
|
|
setEnvVar CHROMEDRIVER_VERSION_ARG "--versions.chrome 2.41"
|
|
setEnvVar SAUCE_CONNECT_VERSION 4.4.9
|
|
setEnvVar ANGULAR_CLI_VERSION 1.6.3
|
|
setEnvVar CI_AIO_MIN_PWA_SCORE 95
|
|
setEnvVar CI_BRANCH $TRAVIS_BRANCH
|
|
setEnvVar CI_COMMIT $TRAVIS_COMMIT
|
|
setEnvVar CI_COMMIT_RANGE $TRAVIS_COMMIT_RANGE
|
|
setEnvVar CI_PULL_REQUEST $TRAVIS_PULL_REQUEST
|
|
setEnvVar PROJECT_ROOT $(cd ${thisDir}/../..; pwd)
|
|
|
|
if [[ ${TRAVIS:-} ]]; then
|
|
case ${CI_MODE} in
|
|
js)
|
|
setEnvVar KARMA_JS_BROWSERS ChromeNoSandbox
|
|
;;
|
|
saucelabs_required)
|
|
setEnvVar KARMA_JS_BROWSERS `node -e "console.log(require('/home/travis/build/angular/angular/browser-providers.conf').sauceAliases.CI_REQUIRED.join(','))"`
|
|
;;
|
|
browserstack_required)
|
|
setEnvVar KARMA_JS_BROWSERS `node -e "console.log(require('/home/travis/build/angular/angular/browser-providers.conf').browserstackAliases.CI_REQUIRED.join(','))"`
|
|
;;
|
|
saucelabs_optional)
|
|
setEnvVar KARMA_JS_BROWSERS `node -e "console.log(require('/home/travis/build/angular/angular/browser-providers.conf').sauceAliases.CI_OPTIONAL.join(','))"`
|
|
;;
|
|
browserstack_optional)
|
|
setEnvVar KARMA_JS_BROWSERS `node -e "console.log(require('/home/travis/build/angular/angular/browser-providers.conf').browserstackAliases.CI_OPTIONAL.join(','))"`
|
|
;;
|
|
esac
|
|
else
|
|
setEnvVar KARMA_JS_BROWSERS Chrome
|
|
fi
|
|
|
|
|
|
if [[ ${TRAVIS:-} ]]; then
|
|
# used by xvfb that is used by Chromium
|
|
setEnvVar DISPLAY :99.0
|
|
|
|
# Use newer version of GCC to that is required to compile native npm modules for Node v4+ on Ubuntu Precise
|
|
# more info: https://docs.travis-ci.com/user/languages/javascript-with-nodejs#Node.js-v4-(or-io.js-v3)-compiler-requirements
|
|
setEnvVar CXX g++-4.8
|
|
|
|
# Used by karma and karma-chrome-launcher
|
|
# In order to have a meaningful SauceLabs badge on the repo page,
|
|
# the angular2-ci account is used only when pushing commits to master;
|
|
# in all other cases, the regular angular-ci account is used.
|
|
if [ "${CI_PULL_REQUEST}" = "false" ] && [ "${CI_BRANCH}" = "master" ]; then
|
|
setEnvVar SAUCE_USERNAME angular2-ci
|
|
# Not using use `setEnvVar` so that we don't print the key.
|
|
export SAUCE_ACCESS_KEY=693ebc16208a-0b5b-1614-8d66-a2662f4e
|
|
else
|
|
setEnvVar SAUCE_USERNAME angular-ci
|
|
# Not using use `setEnvVar` so that we don't print the key.
|
|
export SAUCE_ACCESS_KEY=9b988f434ff8-fbca-8aa4-4ae3-35442987
|
|
fi
|
|
|
|
setEnvVar BROWSER_STACK_USERNAME angularteam1
|
|
# not using use setEnvVar so that we don't print the key
|
|
export BROWSER_STACK_ACCESS_KEY=CaXMeMHD9pr5PHg8N7Jq
|
|
setEnvVar CHROME_BIN ${HOME}/.chrome/chromium/chrome-linux/chrome
|
|
setEnvVar BROWSER_PROVIDER_READY_FILE /tmp/angular-build/browser-provider-tunnel-init.lock
|
|
fi
|
|
|
|
|
|
|
|
#######################
|
|
# PREEXISTING GLOBALS #
|
|
#######################
|
|
|
|
# Prepend `~/.yarn/bin` to the PATH
|
|
setEnvVar PATH $HOME/.yarn/bin:$PATH
|
|
|
|
# Append dist/all to the NODE_PATH so that cjs module resolver finds find the packages that use
|
|
# absolute module ids (e.g. @angular/core)
|
|
setEnvVar NODE_PATH ${NODE_PATH:-}:${PROJECT_ROOT}/dist/all:${PROJECT_ROOT}/dist/tools
|
|
setEnvVar LOGS_DIR /tmp/angular-build/logs
|
|
|
|
# strip leading "/home/travis/build/angular/angular/" or "./" path. Could this be done in one shot?
|
|
CURRENT_SHELL_SOURCE_FILE=${BASH_SOURCE#${PROJECT_ROOT}/}
|
|
export CURRENT_SHELL_SOURCE_FILE=${CURRENT_SHELL_SOURCE_FILE#./}
|
|
# Prefix xtrace output with file name/line and optionally function name
|
|
# http://wiki.bash-hackers.org/scripting/debuggingtips#making_xtrace_more_useful
|
|
# TODO(i): I couldn't figure out how to set this via `setEnvVar` so I just set it manually
|
|
export PS4='+(${CURRENT_SHELL_SOURCE_FILE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }'
|
|
if [[ ${print} == "print" ]]; then
|
|
echo PS4=${PS4}
|
|
fi
|
|
|
|
eval "${ORIGINAL_SHELL_OPTIONS}"
|