This uses a new script and CircleCI job called "build-packages-dist" which shims the new Bazel build to produce outputs matching the legacy build. We'll use this to get AIO testing onto CircleCI as well. We move the integration tests to a new circleCI job that depends on this one, as well as the build publishing job. Note that every PR will have a trivial green publishing status, because we always create this job even for PRs. We'd rather not - see https://discuss.circleci.com/t/workflows-pull-request-filter/14396/4 PR Close #23512
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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
 |