2018-05-10 23:01:22 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#!/usr/bin/env bash
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								set -u -e -o pipefail
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2018-11-29 17:10:29 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								# Use for production releases
							 | 
						
					
						
							
								
									
										
										
										
											2018-05-10 23:01:22 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# Query Bazel for npm_package and ng_package rules with tags=["release-with-framework"]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# Publish them to npm (tagged next)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2018-11-01 20:47:39 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								# We need to resolve the Bazel binary in the node modules because running Bazel
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# through `yarn bazel` causes additional output that throws off the command stdout.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								BAZEL_BIN=$(yarn bin)/bazel
							 | 
						
					
						
							
								
									
										
										
										
											2018-11-29 17:10:29 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								# Build into a distinct output location so that artifacts from previous builds are not reused
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								BAZEL_OUTPUT_BASE=$(mktemp -d -t angular-release-latest.XXXXXXX)
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								BAZEL="$BAZEL_BIN --output_base=$BAZEL_OUTPUT_BASE"
							 | 
						
					
						
							
								
									
										
										
										
											2018-11-01 20:47:39 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2018-05-10 23:01:22 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# query for all npm packages to be released as part of the framework release
							 | 
						
					
						
							
								
									
										
										
										
											2018-11-01 20:47:39 +01:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								NPM_PACKAGE_LABELS=`${BAZEL_BIN} query --output=label 'attr("tags", "\[.*release-with-framework.*\]", //packages/...) intersect kind(".*_package", //packages/...)'`
							 | 
						
					
						
							
								
									
										
										
										
											2018-05-10 23:01:22 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# build all npm packages in parallel
							 | 
						
					
						
							
								
									
										
										
										
											2018-11-29 17:10:29 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								$BAZEL build --config=release $NPM_PACKAGE_LABELS
							 | 
						
					
						
							
								
									
										
										
										
											2018-05-10 23:01:22 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								# publish all packages in sequence to make it easier to spot any errors or warnings
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								for packageLabel in $NPM_PACKAGE_LABELS; do
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								  echo "publishing $packageLabel"
							 | 
						
					
						
							
								
									
										
										
										
											2018-11-29 17:10:29 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								  $BAZEL run -- ${packageLabel}.publish --access public --tag latest
							 | 
						
					
						
							
								
									
										
										
										
											2018-05-10 23:01:22 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								done
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 |