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
							 |