The bazel-schematics test could suffer from a version skew where new CLI projects were not yet using a new TS version, but Angular packages already were. This caused the the `ngc` call in the added `postinstall` to run and fail: https://circleci.com/gh/angular/angular/283109 PR Close #29885
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| set -eux -o pipefail
 | |
| 
 | |
| function installLocalPackages() {
 | |
|   # Install Angular packages that are built locally from HEAD.
 | |
|   # This also gets around the bug whereby yarn caches local `file://` urls.
 | |
|   # See https://github.com/yarnpkg/yarn/issues/2165
 | |
|   readonly pwd=$(pwd)
 | |
|   readonly packages=(
 | |
|     animations common compiler core forms platform-browser
 | |
|     platform-browser-dynamic router bazel compiler-cli language-service upgrade
 | |
|   )
 | |
|   local local_packages=()
 | |
|   for package in "${packages[@]}"; do
 | |
|     local_packages+=("@angular/${package}@file:${pwd}/../../../dist/packages-dist/${package}")
 | |
|   done
 | |
|   yarn add "${local_packages[@]}"
 | |
| }
 | |
| 
 | |
| function testBazel() {
 | |
|   # Set up
 | |
|   bazel version
 | |
|   ng version
 | |
|   rm -rf demo
 | |
|   # Create project
 | |
|   ng new demo --collection=@angular/bazel --routing --skip-git --skip-install --style=scss
 | |
|   cd demo
 | |
|   # Force more recent TS version until new Angular CLI projects also use it.
 | |
|   yarn add typescript@3.4.2 --dev
 | |
|   installLocalPackages
 | |
|   yarn webdriver-manager update --gecko=false --standalone=false ${CI_CHROMEDRIVER_VERSION_ARG:---versions.chrome 2.45}
 | |
|   ng generate component widget --style=css
 | |
|   ng build
 | |
|   ng test
 | |
|   ng e2e
 | |
|   ng e2e --prod
 | |
|   if [ -e 'WORKSPACE' ] || [ -e 'BUILD.bazel' ]; then
 | |
|     echo 'WORKSPACE / BUILD.bazel file should not exist in project'
 | |
|     exit 1
 | |
|   fi
 | |
| }
 | |
| 
 | |
| function testNonBazel() {
 | |
|   # Replace angular.json that uses Bazel builder with the default generated by CLI
 | |
|   mv ./angular.json.bak ./angular.json
 | |
|   mv ./tsconfig.json.bak ./tsconfig.json
 | |
|   rm -rf dist src/main.dev.ts src/main.prod.ts
 | |
|   ng build --progress=false
 | |
|   ng test --progress=false --watch=false
 | |
|   ng e2e --configuration=production --webdriver-update=false
 | |
| }
 | |
| 
 | |
| testBazel
 | |
| testNonBazel
 |