the polymer benchmarks are super old and not relevant any more and these benchmarks were the only reason why we needed bower at all so long, bower. thanks for all the fish. PR Close #27931
557 lines
18 KiB
Bash
Executable File
557 lines
18 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -u -e -o pipefail
|
|
|
|
readonly currentDir=$(cd $(dirname $0); pwd)
|
|
source ${currentDir}/scripts/ci/_travis-fold.sh
|
|
|
|
# TODO(i): wrap into subshell, so that we don't pollute CWD, but not yet to minimize diff collision with Jason
|
|
cd ${currentDir}
|
|
|
|
PACKAGES=(compiler
|
|
core
|
|
common
|
|
animations
|
|
platform-browser
|
|
platform-browser-dynamic
|
|
forms
|
|
http
|
|
platform-server
|
|
platform-webworker
|
|
platform-webworker-dynamic
|
|
upgrade
|
|
router
|
|
compiler-cli
|
|
language-service
|
|
benchpress
|
|
service-worker
|
|
elements)
|
|
|
|
TSC_PACKAGES=(compiler
|
|
compiler-cli
|
|
language-service
|
|
benchpress)
|
|
|
|
NODE_PACKAGES=(compiler-cli
|
|
benchpress)
|
|
|
|
SCOPED_PACKAGES=$(
|
|
for P in ${PACKAGES[@]}; do echo \\@angular/${P}; done
|
|
)
|
|
NG_UPDATE_PACKAGE_GROUP=$(
|
|
# The first sed creates an array of strings
|
|
# The second sed is to allow it to be run in the perl expression so forward slashes don't end
|
|
# the regular expression.
|
|
echo \[\"${SCOPED_PACKAGES[@]}\"] \
|
|
| sed 's/ /", "/g' \
|
|
| sed 's/\//\\\//g'
|
|
)
|
|
|
|
|
|
BUILD_ALL=true
|
|
BUNDLE=true
|
|
VERSION_PREFIX=$(node -p "require('./package.json').version")
|
|
VERSION_SUFFIX="-$(git log --oneline -1 | awk '{print $1}')"
|
|
REMOVE_BENCHPRESS=false
|
|
BUILD_EXAMPLES=true
|
|
COMPILE_SOURCE=true
|
|
TYPECHECK_ALL=true
|
|
BUILD_TOOLS=true
|
|
export NODE_PATH=${NODE_PATH:-}:${currentDir}/dist/tools
|
|
|
|
for ARG in "$@"; do
|
|
case "$ARG" in
|
|
--quick-bundle=*)
|
|
COMPILE_SOURCE=false
|
|
TYPECHECK_ALL=false
|
|
BUILD_EXAMPLES=false
|
|
BUILD_TOOLS=false
|
|
;;
|
|
--packages=*)
|
|
PACKAGES_STR=${ARG#--packages=}
|
|
PACKAGES=( ${PACKAGES_STR//,/ } )
|
|
BUILD_ALL=false
|
|
;;
|
|
--bundle=*)
|
|
BUNDLE=( "${ARG#--bundle=}" )
|
|
;;
|
|
--publish)
|
|
VERSION_SUFFIX=""
|
|
REMOVE_BENCHPRESS=true
|
|
;;
|
|
--examples=*)
|
|
BUILD_EXAMPLES=${ARG#--examples=}
|
|
;;
|
|
--compile=*)
|
|
COMPILE_SOURCE=${ARG#--compile=}
|
|
;;
|
|
--typecheck=*)
|
|
TYPECHECK_ALL=${ARG#--typecheck=}
|
|
;;
|
|
--tools=*)
|
|
BUILD_TOOLS=${ARG#--tools=}
|
|
;;
|
|
*)
|
|
echo "Unknown option $ARG."
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
#######################################
|
|
# Verifies a directory isn't in the ignored list
|
|
# Arguments:
|
|
# param1 - Path to check
|
|
# Returns:
|
|
# Boolean
|
|
#######################################
|
|
isIgnoredDirectory() {
|
|
name=$(basename ${1})
|
|
if [[ -f "${1}" || "${name}" == "src" || "${name}" == "test" || "${name}" == "integrationtest" || "${name}" == "locales" ]]; then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
#######################################
|
|
# Check if array contains an element
|
|
# Arguments:
|
|
# param1 - Element to check
|
|
# param2 - Array to look for element in
|
|
# Returns:
|
|
# None
|
|
#######################################
|
|
containsElement () {
|
|
local e
|
|
for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
|
|
return 1
|
|
}
|
|
|
|
#######################################
|
|
# Rollup index files recursively, ignoring blacklisted directories
|
|
# Arguments:
|
|
# param1 - Base source folder
|
|
# param2 - Destination directory
|
|
# param3 - Package name
|
|
# param4 - Is sub directory
|
|
# Returns:
|
|
# None
|
|
#######################################
|
|
rollupIndex() {
|
|
# Iterate over the files in this directory, rolling up each into ${2} directory
|
|
in_file="${1}/${3}.js"
|
|
if [ ${4:-} ]; then
|
|
out_file="$(dropLast ${2})/${3}.js"
|
|
else
|
|
out_file="${2}/${3}.js"
|
|
fi
|
|
|
|
BANNER_TEXT=`cat ${LICENSE_BANNER}`
|
|
if [[ -f ${in_file} ]]; then
|
|
echo "=========== $ROLLUP -i ${in_file} -o ${out_file} --sourcemap -f es --banner BANNER_TEXT >/dev/null 2>&1"
|
|
$ROLLUP -i ${in_file} -o ${out_file} --sourcemap -f es --banner "$BANNER_TEXT" >/dev/null 2>&1
|
|
fi
|
|
|
|
# Recurse for sub directories
|
|
for DIR in ${1}/* ; do
|
|
local sub_package=$(basename "${DIR}")
|
|
isIgnoredDirectory ${DIR} && continue
|
|
local regex=".+/(.+)/${sub_package}.js"
|
|
if [[ "${DIR}/${sub_package}.js" =~ $regex ]]; then
|
|
|
|
rollupIndex ${DIR} ${2}/${BASH_REMATCH[1]} ${sub_package} true
|
|
fi
|
|
done
|
|
}
|
|
|
|
#######################################
|
|
# Recursively runs rollup on any entry point that has a "rollup.config.js" file
|
|
# Arguments:
|
|
# param1 - Base source folder containing rollup.config.js
|
|
# Returns:
|
|
# None
|
|
#######################################
|
|
runRollup() {
|
|
if [[ -f "${1}/rollup.config.js" ]]; then
|
|
cd ${1}
|
|
|
|
echo "====== $ROLLUP -c ${1}/rollup.config.js --sourcemap"
|
|
$ROLLUP -c rollup.config.js --sourcemap >/dev/null 2>&1
|
|
|
|
# Recurse for sub directories
|
|
for DIR in ${1}/* ; do
|
|
isIgnoredDirectory ${DIR} && continue
|
|
runRollup ${DIR}
|
|
done
|
|
fi
|
|
}
|
|
|
|
#######################################
|
|
# Adds banners to all files in a directory
|
|
# Arguments:
|
|
# param1 - Directory to add license banners to
|
|
# Returns:
|
|
# None
|
|
#######################################
|
|
addBanners() {
|
|
for file in ${1}/*; do
|
|
if [[ -f ${file} && "${file##*.}" != "map" ]]; then
|
|
cat ${LICENSE_BANNER} > ${file}.tmp
|
|
cat ${file} >> ${file}.tmp
|
|
mv ${file}.tmp ${file}
|
|
fi
|
|
done
|
|
}
|
|
|
|
#######################################
|
|
# Minifies files in a directory
|
|
# Arguments:
|
|
# param1 - Directory to minify
|
|
# Returns:
|
|
# None
|
|
#######################################
|
|
minify() {
|
|
# Iterate over the files in this directory, rolling up each into ${2} directory
|
|
regex="(.+).js"
|
|
files=(${1}/*)
|
|
echo "${files[@]}"
|
|
for file in "${files[@]}"; do
|
|
echo "${file}"
|
|
base_file=$( basename "${file}" )
|
|
if [[ "${base_file}" =~ $regex && "${base_file##*.}" != "map" ]]; then
|
|
local out_file=$(dirname "${file}")/${BASH_REMATCH[1]}.min.js
|
|
echo "====== $UGLIFY -c --comments -o ${out_file} --source-map "includeSources=true,content='${file}.map',filename='${out_file}.map'" ${file}"
|
|
$UGLIFY -c --comments -o ${out_file} --source-map "includeSources=true,content='${file}.map',filename='${out_file}.map'" ${file}
|
|
fi
|
|
done
|
|
}
|
|
|
|
#######################################
|
|
# Recursively compile package
|
|
# Arguments:
|
|
# param1 - Source directory
|
|
# param2 - Out dir
|
|
# param3 - Package Name
|
|
# Returns:
|
|
# None
|
|
#######################################
|
|
compilePackage() {
|
|
# For TSC_PACKAGES items
|
|
if containsElement "${3}" "${TSC_PACKAGES[@]}"; then
|
|
echo "====== [${3}]: COMPILING: ${TSC} -p ${1}/tsconfig-build.json"
|
|
local package_name=$(basename "${2}")
|
|
$TSC -p ${1}/tsconfig-build.json
|
|
if [[ "${3}" = "compiler" ]]; then
|
|
if [[ "${package_name}" = "testing" ]]; then
|
|
echo "$(cat ${LICENSE_BANNER}) ${N} export * from './${package_name}/${package_name}'" > ${2}/../${package_name}.d.ts
|
|
fi
|
|
fi
|
|
else
|
|
echo "====== [${3}]: COMPILING: ${NGC} -p ${1}/tsconfig-build.json"
|
|
local package_name=$(basename "${2}")
|
|
$NGC -p ${1}/tsconfig-build.json
|
|
if [[ "${package_name}" != "locales" ]]; then
|
|
echo "====== Create ${1}/../${package_name}.d.ts re-export file for tsickle"
|
|
echo "$(cat ${LICENSE_BANNER}) ${N} export * from './${package_name}/${package_name}'" > ${2}/../${package_name}.d.ts
|
|
echo "{\"__symbolic\":\"module\",\"version\":3,\"metadata\":{},\"exports\":[{\"from\":\"./${package_name}/${package_name}\"}],\"flatModuleIndexRedirect\":true}" > ${2}/../${package_name}.metadata.json
|
|
fi
|
|
fi
|
|
|
|
# Build subpackages
|
|
for DIR in ${1}/* ; do
|
|
[ -d "${DIR}" ] || continue
|
|
BASE_DIR=$(basename "${DIR}")
|
|
# Skip over directories that are not nested entry points
|
|
[[ -e ${DIR}/tsconfig-build.json && "${BASE_DIR}" != "integrationtest" ]] || continue
|
|
compilePackage ${DIR} ${2}/${BASE_DIR} ${3}
|
|
done
|
|
}
|
|
|
|
#######################################
|
|
# Recursively compile package
|
|
# Arguments:
|
|
# param1 - Source directory
|
|
# param2 - Out dir
|
|
# param3 - Package Name
|
|
# Returns:
|
|
# None
|
|
#######################################
|
|
compilePackageES5() {
|
|
if containsElement "${3}" "${TSC_PACKAGES[@]}"; then
|
|
echo "====== [${3}]: COMPILING: ${TSC} -p ${1}/tsconfig-build.json --target es5 -d false --outDir ${2} --importHelpers true --sourceMap"
|
|
local package_name=$(basename "${2}")
|
|
$TSC -p ${1}/tsconfig-build.json --target es5 -d false --outDir ${2} --importHelpers true --sourceMap
|
|
else
|
|
echo "====== [${3}]: COMPILING: ${NGC} -p ${1}/tsconfig-build.json --target es5 -d false --outDir ${2} --importHelpers true --sourceMap"
|
|
local package_name=$(basename "${2}")
|
|
$NGC -p ${1}/tsconfig-build.json --target es5 -d false --outDir ${2} --importHelpers true --sourceMap
|
|
fi
|
|
|
|
for DIR in ${1}/* ; do
|
|
[ -d "${DIR}" ] || continue
|
|
BASE_DIR=$(basename "${DIR}")
|
|
# Skip over directories that are not nested entry points
|
|
[[ -e ${DIR}/tsconfig-build.json && "${BASE_DIR}" != "integrationtest" ]] || continue
|
|
compilePackageES5 ${DIR} ${2} ${3}
|
|
done
|
|
}
|
|
|
|
#######################################
|
|
# Adds a package.json in directories where needed (secondary entry point typings).
|
|
# This is read by NGC to be able to find the flat module index.
|
|
# Arguments:
|
|
# param1 - Source directory of typings files
|
|
# Returns:
|
|
# None
|
|
#######################################
|
|
addNgcPackageJson() {
|
|
for DIR in ${1}/* ; do
|
|
[ -d "${DIR}" ] || continue
|
|
# Confirm there is an ${PACKAGE}.d.ts and ${PACKAGE}.metadata.json file. If so, create
|
|
# the package.json and recurse.
|
|
if [[ -f ${DIR}/${PACKAGE}.d.ts && -f ${DIR}/${PACKAGE}.metadata.json ]]; then
|
|
echo '{"typings": "${PACKAGE}.d.ts"}' > ${DIR}/package.json
|
|
addNgcPackageJson ${DIR}
|
|
fi
|
|
done
|
|
}
|
|
|
|
updateVersionReferences() {
|
|
NPM_DIR="$1"
|
|
(
|
|
echo "====== VERSION: Updating version references in ${NPM_DIR}"
|
|
cd ${NPM_DIR}
|
|
echo "====== EXECUTE: perl -p -i -e \"s/0\.0\.0\-PLACEHOLDER/${VERSION}/g\" $""(grep -ril 0\.0\.0\-PLACEHOLDER .)"
|
|
perl -p -i -e "s/0\.0\.0\-PLACEHOLDER/${VERSION}/g" $(grep -ril 0\.0\.0\-PLACEHOLDER .) < /dev/null 2> /dev/null
|
|
)
|
|
}
|
|
|
|
#######################################
|
|
# Drops the last entry of a path. Similar to normalizing a path such as
|
|
# /parent/child/.. to /parent.
|
|
# Arguments:
|
|
# param1 - Directory on which to drop the last item
|
|
# Returns:
|
|
# None
|
|
#######################################
|
|
|
|
dropLast() {
|
|
local last_item=$(basename ${1})
|
|
local regex=local regex="(.+)/${last_item}"
|
|
if [[ "${1}" =~ $regex ]]; then
|
|
echo "${BASH_REMATCH[1]}"
|
|
else
|
|
echo "${1}"
|
|
fi
|
|
}
|
|
|
|
VERSION="${VERSION_PREFIX}${VERSION_SUFFIX}"
|
|
echo "====== BUILDING: Version ${VERSION}"
|
|
|
|
N="
|
|
"
|
|
TSC=`pwd`/node_modules/.bin/tsc
|
|
NGC="node --max-old-space-size=3000 `pwd`/dist/tools/@angular/compiler-cli/src/main"
|
|
UGLIFY=`pwd`/node_modules/.bin/uglifyjs
|
|
TSCONFIG=./tools/tsconfig.json
|
|
ROLLUP=`pwd`/node_modules/.bin/rollup
|
|
|
|
if [[ ${BUILD_TOOLS} == true ]]; then
|
|
travisFoldStart "build tools" "no-xtrace"
|
|
echo "====== (tools)COMPILING: \$(npm bin)/tsc -p ${TSCONFIG} ====="
|
|
rm -rf ./dist/tools/
|
|
mkdir -p ./dist/tools/
|
|
$(npm bin)/tsc -p ${TSCONFIG}
|
|
travisFoldEnd "build tools"
|
|
fi
|
|
|
|
|
|
if [[ ${BUILD_ALL} == true && ${TYPECHECK_ALL} == true ]]; then
|
|
travisFoldStart "clean dist" "no-xtrace"
|
|
rm -rf ./dist/all/
|
|
rm -rf ./dist/packages
|
|
travisFoldEnd "clean dist"
|
|
|
|
travisFoldStart "copy e2e files" "no-xtrace"
|
|
mkdir -p ./dist/all/
|
|
|
|
(
|
|
echo "====== Copying files needed for e2e tests ====="
|
|
cp -r ./modules/playground ./dist/all/
|
|
cp -r ./modules/playground/favicon.ico ./dist/
|
|
#rsync -aP ./modules/playground/* ./dist/all/playground/
|
|
mkdir ./dist/all/playground/vendor
|
|
cd ./dist/all/playground/vendor
|
|
ln -s ../../../../node_modules/core-js/client/core.js .
|
|
ln -s ../../../../node_modules/zone.js/dist/zone.js .
|
|
ln -s ../../../../node_modules/zone.js/dist/long-stack-trace-zone.js .
|
|
ln -s ../../../../node_modules/systemjs/dist/system.src.js .
|
|
ln -s ../../../../node_modules/base64-js .
|
|
ln -s ../../../../node_modules/reflect-metadata/Reflect.js .
|
|
ln -s ../../../../node_modules/rxjs .
|
|
ln -s ../../../../node_modules/angular/angular.js .
|
|
ln -s ../../../../node_modules/hammerjs/hammer.js .
|
|
)
|
|
|
|
(
|
|
echo "====== Copying files needed for benchmarks ====="
|
|
cp -r ./modules/benchmarks ./dist/all/
|
|
cp -r ./modules/benchmarks/favicon.ico ./dist/
|
|
mkdir ./dist/all/benchmarks/vendor
|
|
cd ./dist/all/benchmarks/vendor
|
|
ln -s ../../../../node_modules/core-js/client/core.js .
|
|
ln -s ../../../../node_modules/zone.js/dist/zone.js .
|
|
ln -s ../../../../node_modules/zone.js/dist/long-stack-trace-zone.js .
|
|
ln -s ../../../../node_modules/systemjs/dist/system.src.js .
|
|
ln -s ../../../../node_modules/reflect-metadata/Reflect.js .
|
|
ln -s ../../../../node_modules/rxjs .
|
|
ln -s ../../../../node_modules/angular/angular.js .
|
|
ln -s ../../../../node_modules/incremental-dom/dist/incremental-dom-cjs.js
|
|
)
|
|
travisFoldEnd "copy e2e files"
|
|
|
|
TSCONFIG="packages/tsconfig.json"
|
|
travisFoldStart "tsc -p ${TSCONFIG}" "no-xtrace"
|
|
$TSC -p ${TSCONFIG}
|
|
travisFoldEnd "tsc -p ${TSCONFIG}"
|
|
TSCONFIG="packages/examples/tsconfig.json"
|
|
travisFoldStart "tsc -p ${TSCONFIG}" "no-xtrace"
|
|
$TSC -p ${TSCONFIG}
|
|
travisFoldEnd "tsc -p ${TSCONFIG}"
|
|
TSCONFIG="modules/tsconfig.json"
|
|
travisFoldStart "tsc -p ${TSCONFIG}" "no-xtrace"
|
|
$TSC -p ${TSCONFIG}
|
|
travisFoldEnd "tsc -p ${TSCONFIG}"
|
|
|
|
fi
|
|
|
|
if [[ ${BUILD_ALL} == true ]]; then
|
|
rm -rf ./dist/packages
|
|
if [[ ${BUNDLE} == true ]]; then
|
|
rm -rf ./dist/packages-dist
|
|
fi
|
|
fi
|
|
|
|
if [[ ${BUILD_TOOLS} == true || ${BUILD_ALL} == true ]]; then
|
|
echo "====== (compiler)COMPILING: \$(npm bin)/tsc -p packages/compiler/tsconfig-tools.json"
|
|
$(npm bin)/tsc -p packages/compiler/tsconfig-tools.json
|
|
echo "====== (compiler)COMPILING: \$(npm bin)/tsc -p packages/compiler-cli/tsconfig-tools.json"
|
|
$(npm bin)/tsc -p packages/compiler-cli/tsconfig-tools.json
|
|
|
|
mkdir -p ./dist/packages-dist
|
|
rsync -a packages/bazel/ ./dist/packages-dist/bazel
|
|
echo "workspace(name=\"angular\")" > ./dist/packages-dist/bazel/WORKSPACE
|
|
# Remove BEGIN-INTERNAL...END-INTERAL blocks
|
|
# https://stackoverflow.com/questions/24175271/how-can-i-match-multi-line-patterns-in-the-command-line-with-perl-style-regex
|
|
perl -0777 -n -i -e "s/(?m)^.*BEGIN-INTERNAL[\w\W]*END-INTERNAL.*\n//g; print" $(grep -ril BEGIN-INTERNAL dist/packages-dist/bazel) < /dev/null 2> /dev/null
|
|
# Re-host //packages/bazel/ which is just // in the public distro
|
|
perl -0777 -n -i -e "s#//packages/bazel/#//#g; print" $(grep -ril packages/bazel dist/packages-dist/bazel) < /dev/null 2> /dev/null
|
|
perl -0777 -n -i -e "s#angular/packages/bazel/#angular/#g; print" $(grep -ril packages/bazel dist/packages-dist/bazel) < /dev/null 2> /dev/null
|
|
updateVersionReferences dist/packages-dist/bazel
|
|
fi
|
|
|
|
for PACKAGE in ${PACKAGES[@]}
|
|
do
|
|
travisFoldStart "build package: ${PACKAGE}" "no-xtrace"
|
|
PWD=`pwd`
|
|
ROOT_DIR=${PWD}/packages
|
|
SRC_DIR=${ROOT_DIR}/${PACKAGE}
|
|
ROOT_OUT_DIR=${PWD}/dist/packages
|
|
OUT_DIR=${ROOT_OUT_DIR}/${PACKAGE}
|
|
OUT_DIR_ESM5=${ROOT_OUT_DIR}/${PACKAGE}/esm5
|
|
NPM_DIR=${PWD}/dist/packages-dist/${PACKAGE}
|
|
ESM2015_DIR=${NPM_DIR}/esm2015
|
|
FESM2015_DIR=${NPM_DIR}/fesm2015
|
|
ESM5_DIR=${NPM_DIR}/esm5
|
|
FESM5_DIR=${NPM_DIR}/fesm5
|
|
BUNDLES_DIR=${NPM_DIR}/bundles
|
|
|
|
LICENSE_BANNER=${ROOT_DIR}/license-banner.txt
|
|
|
|
if [[ ${COMPILE_SOURCE} == true ]]; then
|
|
rm -rf ${OUT_DIR}
|
|
rm -f ${ROOT_OUT_DIR}/${PACKAGE}.js
|
|
compilePackage ${SRC_DIR} ${OUT_DIR} ${PACKAGE}
|
|
fi
|
|
|
|
if [[ ${BUNDLE} == true ]]; then
|
|
echo "====== BUNDLING ${PACKAGE}: ${SRC_DIR} ====="
|
|
rm -rf ${NPM_DIR} && mkdir -p ${NPM_DIR}
|
|
|
|
if ! containsElement "${PACKAGE}" "${NODE_PACKAGES[@]}"; then
|
|
|
|
echo "====== Copy ${PACKAGE} typings"
|
|
rsync -a --exclude=*.js --exclude=*.js.map ${OUT_DIR}/ ${NPM_DIR}
|
|
|
|
(
|
|
cd ${SRC_DIR}
|
|
echo "====== Copy ESM2015 for ${PACKAGE}"
|
|
rsync -a --exclude="locale/**" --exclude="**/*.d.ts" --exclude="**/*.metadata.json" ${OUT_DIR}/ ${ESM2015_DIR}
|
|
|
|
echo "====== Rollup ${PACKAGE}"
|
|
rollupIndex ${OUT_DIR} ${FESM2015_DIR} ${PACKAGE}
|
|
|
|
echo "====== Produce ESM5 version"
|
|
compilePackageES5 ${SRC_DIR} ${OUT_DIR_ESM5} ${PACKAGE}
|
|
rsync -a --exclude="locale/**" --exclude="**/*.d.ts" --exclude="**/*.metadata.json" ${OUT_DIR_ESM5}/ ${ESM5_DIR}
|
|
rollupIndex ${OUT_DIR_ESM5} ${FESM5_DIR} ${PACKAGE}
|
|
|
|
echo "====== Run rollup conversions on ${PACKAGE}"
|
|
runRollup ${SRC_DIR}
|
|
addBanners ${BUNDLES_DIR}
|
|
minify ${BUNDLES_DIR}
|
|
|
|
if [[ -e ${SRC_DIR}/build.sh ]]; then
|
|
echo "====== Custom build for ${PACKAGE}"
|
|
cd ${SRC_DIR} && ${SRC_DIR}/build.sh
|
|
fi
|
|
|
|
) 2>&1 | grep -v "as external dependency"
|
|
|
|
if [[ ${PACKAGE} == "common" ]]; then
|
|
echo "====== Copy i18n locale data"
|
|
rsync -a ${OUT_DIR}/locales/ ${NPM_DIR}/locales
|
|
fi
|
|
else
|
|
echo "====== Copy ${PACKAGE} node tool"
|
|
rsync -a ${OUT_DIR}/ ${NPM_DIR}
|
|
fi
|
|
|
|
echo "====== Copy ${PACKAGE} package.json and .externs.js files"
|
|
rsync -am --include="package.json" --include="*/" --exclude=* ${SRC_DIR}/ ${NPM_DIR}/
|
|
rsync -am --include="*.externs.js" --include="*/" --exclude=* ${SRC_DIR}/ ${NPM_DIR}/
|
|
|
|
# Replace the NG_UPDATE_PACKAGE_GROUP value with the JSON array of packages.
|
|
perl -p -i -e "s/\"NG_UPDATE_PACKAGE_GROUP\"/${NG_UPDATE_PACKAGE_GROUP}/g" ${NPM_DIR}/package.json < /dev/null
|
|
|
|
cp ${ROOT_DIR}/README.md ${NPM_DIR}/
|
|
fi
|
|
|
|
|
|
if [[ -d ${NPM_DIR} ]]; then
|
|
updateVersionReferences ${NPM_DIR}
|
|
fi
|
|
|
|
travisFoldEnd "build package: ${PACKAGE}"
|
|
done
|
|
|
|
if [[ ${BUILD_EXAMPLES} == true ]]; then
|
|
travisFoldStart "build examples" "no-xtrace"
|
|
echo "====== Building examples: ./packages/examples/build.sh ====="
|
|
./packages/examples/build.sh
|
|
travisFoldEnd "build examples"
|
|
fi
|
|
|
|
if [[ ${REMOVE_BENCHPRESS} == true ]]; then
|
|
travisFoldStart "remove benchpress" "no-xtrace"
|
|
echo ""
|
|
echo "==== Removing benchpress from publication"
|
|
rm -r dist/packages-dist/benchpress
|
|
travisFoldEnd "remove benchpress"
|
|
fi
|
|
|
|
|
|
# Print return arrows as a log separator
|
|
travisFoldReturnArrows
|