| 
									
										
										
										
											2018-12-12 15:39:14 -08:00
										 |  |  | #!/usr/bin/env bash
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | set -eux -o pipefail | 
					
						
							| 
									
										
										
										
											2019-02-20 09:58:42 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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[@]}" | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2018-12-12 15:39:14 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-18 15:44:13 -08:00
										 |  |  | function testBazel() { | 
					
						
							| 
									
										
										
										
											2018-12-12 15:39:14 -08:00
										 |  |  |   # Set up | 
					
						
							|  |  |  |   bazel version | 
					
						
							| 
									
										
										
										
											2019-01-28 11:03:04 -08:00
										 |  |  |   ng version | 
					
						
							| 
									
										
										
										
											2018-12-12 15:39:14 -08:00
										 |  |  |   rm -rf demo | 
					
						
							|  |  |  |   # Create project | 
					
						
							| 
									
										
										
										
											2019-03-27 09:58:59 -07:00
										 |  |  |   ng new demo --collection=@angular/bazel --routing --skip-git --skip-install --style=scss | 
					
						
							| 
									
										
										
										
											2018-12-12 15:39:14 -08:00
										 |  |  |   cd demo | 
					
						
							| 
									
										
										
										
											2019-02-02 01:02:16 -08:00
										 |  |  |   # Force more recent TS version until new Angular CLI projects also use it. | 
					
						
							| 
									
										
										
										
											2019-04-13 15:29:48 +01:00
										 |  |  |   yarn add typescript@3.4.2 --dev | 
					
						
							| 
									
										
										
										
											2019-02-20 09:58:42 -08:00
										 |  |  |   installLocalPackages | 
					
						
							|  |  |  |   yarn webdriver-manager update --gecko=false --standalone=false ${CI_CHROMEDRIVER_VERSION_ARG:---versions.chrome 2.45} | 
					
						
							| 
									
										
										
										
											2019-01-17 13:21:31 -08:00
										 |  |  |   ng generate component widget --style=css | 
					
						
							| 
									
										
										
										
											2019-01-24 11:51:20 -08:00
										 |  |  |   ng build | 
					
						
							| 
									
										
										
										
											2018-12-17 13:17:13 -08:00
										 |  |  |   ng test | 
					
						
							|  |  |  |   ng e2e | 
					
						
							| 
									
										
										
										
											2019-03-18 16:44:03 -07:00
										 |  |  |   ng e2e --prod | 
					
						
							| 
									
										
										
										
											2019-03-06 17:50:57 -08:00
										 |  |  |   if [ -e 'WORKSPACE' ] || [ -e 'BUILD.bazel' ]; then | 
					
						
							|  |  |  |     echo 'WORKSPACE / BUILD.bazel file should not exist in project' | 
					
						
							|  |  |  |     exit 1 | 
					
						
							|  |  |  |   fi | 
					
						
							| 
									
										
										
										
											2018-12-12 15:39:14 -08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-18 15:44:13 -08:00
										 |  |  | function testNonBazel() { | 
					
						
							|  |  |  |   # Replace angular.json that uses Bazel builder with the default generated by CLI | 
					
						
							| 
									
										
										
										
											2019-01-28 11:03:04 -08:00
										 |  |  |   mv ./angular.json.bak ./angular.json | 
					
						
							| 
									
										
										
										
											2019-02-19 17:58:21 -08:00
										 |  |  |   mv ./tsconfig.json.bak ./tsconfig.json | 
					
						
							| 
									
										
										
										
											2018-12-18 15:44:13 -08:00
										 |  |  |   rm -rf dist src/main.dev.ts src/main.prod.ts | 
					
						
							| 
									
										
										
										
											2019-01-04 20:27:09 +02:00
										 |  |  |   ng build --progress=false | 
					
						
							|  |  |  |   ng test --progress=false --watch=false | 
					
						
							| 
									
										
										
										
											2019-01-28 11:03:04 -08:00
										 |  |  |   ng e2e --configuration=production --webdriver-update=false | 
					
						
							| 
									
										
										
										
											2018-12-18 15:44:13 -08:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | testBazel | 
					
						
							|  |  |  | testNonBazel |