42 lines
1.5 KiB
Bash
42 lines
1.5 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
# Build the dist/packages-dist directory in the same fashion as the legacy
|
||
|
# /build.sh script, by building the npm packages with Bazel and copying files.
|
||
|
# This is needed for scripts and tests which are not updated to the Bazel output
|
||
|
# layout (which always matches the input layout).
|
||
|
# Do not add new dependencies on this script, instead adapt scripts to use the
|
||
|
# new layout, and write new tests as Bazel targets.
|
||
|
|
||
|
set -u -e -o pipefail
|
||
|
|
||
|
cd "$(dirname "$0")"
|
||
|
|
||
|
# basedir is the workspace root
|
||
|
readonly basedir=$(pwd)/..
|
||
|
|
||
|
echo "##################################"
|
||
|
echo "scripts/build-packages-dist.sh:"
|
||
|
echo " building @angular/* npm packages"
|
||
|
echo "##################################"
|
||
|
# Ideally these integration tests should run under bazel, and just list the npm
|
||
|
# packages in their deps[].
|
||
|
# Until then, we have to manually run bazel first to create the npm packages we
|
||
|
# want to test.
|
||
|
bazel query --output=label 'kind(.*_package, //packages/...)' \
|
||
|
| xargs bazel build
|
||
|
readonly bin=$(bazel info bazel-bin)
|
||
|
|
||
|
# Create the legacy dist/packages-dist folder
|
||
|
[ -d "${basedir}/dist/packages-dist" ] || mkdir -p $basedir/dist/packages-dist
|
||
|
# Each package is a subdirectory of bazel-bin/packages/
|
||
|
for pkg in $(ls ${bin}/packages); do
|
||
|
# Skip any that don't have an "npm_package" target
|
||
|
srcDir="${bin}/packages/${pkg}/npm_package"
|
||
|
destDir="${basedir}/dist/packages-dist/${pkg}"
|
||
|
if [ -d $srcDir ]; then
|
||
|
echo "# Copy artifacts to ${destDir}"
|
||
|
rm -rf $destDir
|
||
|
cp -R $srcDir $destDir
|
||
|
chmod -R u+w $destDir
|
||
|
fi
|
||
|
done
|