The current stable branch is determined based on the current version mapped to the npm `latest` tag (by replacing the patch version number with 'x' - e.g. `1.2.3` --> `1.2.x`). PRs against the stable branch will be deployed to the preview server (as long as the rest of the requirements are met). Commits on the stable branch itself will be deployed to production. Fixes #16908
73 lines
2.4 KiB
Bash
Executable File
73 lines
2.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -u -e -o pipefail
|
|
|
|
# Setup environment
|
|
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
|
|
|
|
|
|
# Don't deploy if not running against angular/angular
|
|
# TODO(i): because we don't let deploy to run outside of angular/angular folks can't use their
|
|
# private travis build to deploy anywhere. This is likely ok, but this means that @alexeagle's
|
|
# fancy setup to publish ES2015 packages to github -build repos no longer works. This is ok
|
|
# since with flat modules we'll have this feature built-in. We should still go and remove
|
|
# stuff that Alex put in for this from publish-build-artifacts.sh
|
|
if [[ ${TRAVIS_REPO_SLUG} != "angular/angular" ]]; then
|
|
echo "Skipping deploy because this is not angular/angular."
|
|
exit 0
|
|
fi
|
|
|
|
|
|
case ${CI_MODE} in
|
|
e2e)
|
|
# Don't deploy if this is a PR build
|
|
if [[ ${TRAVIS_PULL_REQUEST} != "false" ]]; then
|
|
echo "Skipping deploy because this is a PR build."
|
|
exit 0
|
|
fi
|
|
|
|
travisFoldStart "deploy.packages"
|
|
${thisDir}/publish-build-artifacts.sh
|
|
travisFoldEnd "deploy.packages"
|
|
;;
|
|
aio)
|
|
# Only deploy if this not a PR. PRs are deployed early in `build.sh`.
|
|
if [[ $TRAVIS_PULL_REQUEST == "false" ]]; then
|
|
|
|
# Don't deploy if this build is not for master or the stable branch.
|
|
if [[ $TRAVIS_BRANCH != "master" ]] && [[ $TRAVIS_BRANCH != $STABLE_BRANCH ]]; then
|
|
echo "Skipping deploy because this build is not for master or the stable branch ($STABLE_BRANCH)."
|
|
exit 0
|
|
fi
|
|
|
|
travisFoldStart "deploy.aio"
|
|
(
|
|
cd ${TRAVIS_BUILD_DIR}/aio
|
|
|
|
if [[ $TRAVIS_BRANCH == $STABLE_BRANCH ]]; then
|
|
# This is upstream <stable-branch>: Deploy to production.
|
|
travisFoldStart "deploy.aio.production"
|
|
yarn deploy-production
|
|
travisFoldEnd "deploy.aio.production"
|
|
else
|
|
# This is upstream master: Deploy to staging.
|
|
travisFoldStart "deploy.aio.staging"
|
|
yarn deploy-staging
|
|
travisFoldEnd "deploy.aio.staging"
|
|
fi
|
|
)
|
|
travisFoldEnd "deploy.aio"
|
|
|
|
fi
|
|
;;
|
|
esac
|