2016-12-15 11:19:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# Building and Testing Angular
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-12-15 11:19:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								This document describes how to set up your development environment to build and test Angular.
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 11:38:49 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								It also explains the basic mechanics of using `git` , `node` , and `npm` .
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-04-09 09:33:10 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  [Prerequisite Software ](#prerequisite-software )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								*  [Getting the Sources ](#getting-the-sources )
							 
						 
					
						
							
								
									
										
										
										
											2016-07-21 11:48:23 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  [Installing NPM Modules ](#installing-npm-modules )
							 
						 
					
						
							
								
									
										
										
										
											2016-07-08 13:00:27 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  [Building ](#building )
							 
						 
					
						
							
								
									
										
										
										
											2015-04-09 09:33:10 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  [Running Tests Locally ](#running-tests-locally )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								See the [contribution guidelines ](https://github.com/angular/angular/blob/master/CONTRIBUTING.md )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								if you'd like to contribute to Angular.
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								## Prerequisite Software
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Before you can build and test Angular, you must install and configure the
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								following products on your development machine:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-01-21 13:30:03 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  [Git ](http://git-scm.com ) and/or the **GitHub app**  (for [Mac ](http://mac.github.com ) or
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  [Windows ](http://windows.github.com )); [GitHub's Guide to Installing
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  Git](https://help.github.com/articles/set-up-git) is a good source of information.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-06 09:22:45 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  [Node.js ](http://nodejs.org ), (version specified in the engines field of [`package.json` ](../package.json )) which is used to run a development web server,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  run tests, and generate distributable files.
							 
						 
					
						
							
								
									
										
										
										
											2016-01-21 13:30:03 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-06 09:22:45 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  [Yarn ](https://yarnpkg.com ) (version specified in the engines field of [`package.json` ](../package.json )) which is used to install dependencies.
							 
						 
					
						
							
								
									
										
										
										
											2017-09-21 15:39:43 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-01-08 10:04:28 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  [Java Development Kit ](http://www.oracle.com/technetwork/es/java/javase/downloads/index.html ) which is used
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								  to execute the selenium standalone server for e2e testing.
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-03-22 16:26:29 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  (Optional for now) [Bazel ](https://bazel.build/ ), please follow instructions in [BAZEL.md ](https://github.com/angular/angular/blob/master/docs/BAZEL.md )
							 
						 
					
						
							
								
									
										
										
										
											2017-12-06 09:22:45 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								## Getting the Sources
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-04-17 16:02:42 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Fork and clone the Angular repository:
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-04-17 16:02:42 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								1.  Login to your GitHub account or create one by following the instructions given
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								   [here ](https://github.com/signup/free ).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								2.  [Fork ](http://help.github.com/forking ) the [main Angular
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								   repository](https://github.com/angular/angular).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								3.  Clone your fork of the Angular repository and define an `upstream`  remote pointing back to
							 
						 
					
						
							
								
									
										
										
										
											2015-04-17 16:02:42 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								   the Angular repository that you forked in the first place.
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```shell
							 
						 
					
						
							
								
									
										
										
										
											2015-04-17 16:02:42 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# Clone your GitHub repository:
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								git clone git@github .com:< github  username > /angular.git
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Go to the Angular directory:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								cd angular
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Add the main Angular repository as an upstream remote to your repository:
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								git remote add upstream https://github.com/angular/angular.git
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2016-07-21 11:48:23 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Installing NPM Modules
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-08-17 11:38:49 +09:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								Next, install the JavaScript modules needed to build and test Angular:
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```shell
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Install Angular project dependencies (package.json)
 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-21 15:39:43 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								yarn install
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-12-06 09:22:45 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								**Optional**: In this document, we make use of installed npm package scripts and binaries
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								(stored under `./node_modules/.bin` ) by prefixing these command invocations with `$(yarn bin)` ; in
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								particular `gulp`  and `protractor`  commands.
							 
						 
					
						
							
								
									
										
										
										
											2016-12-20 17:50:04 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-21 18:01:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Windows only
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								In order to create the right symlinks, run **as administrator** :
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```shell
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								./scripts/windows/create-symlinks.sh
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Before submitting a PR, do not forget to remove them:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```shell
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 ./scripts/windows/remove-symlinks.sh
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-08 13:00:27 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Building
 
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-08 13:00:27 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								To build Angular run:
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```shell
							 
						 
					
						
							
								
									
										
										
										
											2016-07-08 13:00:27 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								./build.sh
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-08 13:00:27 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								*  Results are put in the dist folder.
							 
						 
					
						
							
								
									
										
										
										
											2015-03-17 18:48:02 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								## Running Tests Locally
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-08 13:00:27 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								To run tests:
							 
						 
					
						
							
								
									
										
										
										
											2015-11-07 00:16:53 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-09-02 17:08:16 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```shell
							 
						 
					
						
							
								
									
										
										
										
											2016-07-29 14:10:20 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$ ./test.sh node             # Run all angular tests on node
							 
						 
					
						
							
								
									
										
										
										
											2016-07-14 08:51:05 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-29 14:10:20 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$ ./test.sh browser          # Run all angular tests in browser
							 
						 
					
						
							
								
									
										
										
										
											2018-03-23 16:55:32 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-29 14:10:20 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$ ./test.sh browserNoRouter  # Optionally run all angular tests without router in browser
							 
						 
					
						
							
								
									
										
										
										
											2016-07-14 08:51:05 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-03-23 16:55:32 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$ ./test.sh router           # Optionally run only the router tests in browser
							 
						 
					
						
							
								
									
										
										
										
											2016-07-14 08:51:05 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								You should execute the 3 test suites before submitting a PR to github.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-08-31 22:06:22 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								See [DEBUG.md ](DEBUG.md ) for information on debugging the code while running the unit tests.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-07-14 08:51:05 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								All the tests are executed on our Continuous Integration infrastructure and a PR could only be merged once the tests pass.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								-  CircleCI fails if your code is not formatted properly,
							 
						 
					
						
							
								
									
										
										
										
											2016-10-02 16:19:47 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								-  Travis CI fails if any of the test suites described above fails.
							 
						 
					
						
							
								
									
										
										
										
											2016-07-14 08:51:05 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-12-05 20:27:20 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## <a name="clang-format"></a> Formatting your source code
 
							 
						 
					
						
							
								
									
										
										
										
											2016-07-14 08:51:05 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Angular uses [clang-format ](http://clang.llvm.org/docs/ClangFormat.html ) to format the source code. If the source code
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								is n ot properly formatted, the CI will fail and the PR can not be merged.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								You can automatically format your code by running:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								``` shell
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$ gulp format
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-06-07 09:42:29 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								There is a handy [clang-format extension ](https://marketplace.visualstudio.com/items?itemName=xaver.clang-format )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								for Visual Studio Code. Use the following settings to format your code when you save a file:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```json
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    "editor.formatOnSave": true,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    "clang-format.executable": "${workspaceRoot}/node_modules/.bin/clang-format"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-12-31 03:54:53 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Linting/verifying your source code
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								You can check that your code is properly formatted and adheres to coding style by running:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								``` shell
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$ gulp lint
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-01-19 14:25:44 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								## Publishing snapshot builds
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-04-23 11:46:02 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								When a build of any branch on the upstream fork angular/angular is green on CircleCI,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								it automatically publishes build artifacts
							 
						 
					
						
							
								
									
										
										
										
											2017-01-19 14:25:44 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								to repositories in the Angular org, eg. the `@angular/core`  package is published to
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								http://github.com/angular/core-builds.
							 
						 
					
						
							
								
									
										
										
										
											2016-07-14 08:51:05 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-12-15 11:19:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								You may find that your un-merged change needs some validation from external participants.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								Rather than requiring them to pull your Pull Request and build Angular locally, you can
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								publish the `*-builds`  snapshots just like our Travis build does.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								First time, you need to create the github repositories:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								``` shell
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$ export TOKEN=[get one from https://github.com/settings/tokens]
							 
						 
					
						
							
								
									
										
										
										
											2017-08-24 08:03:05 -07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								$ CREATE_REPOS=1 TRAVIS= ./scripts/ci/publish-build-artifacts.sh [github username]
							 
						 
					
						
							
								
									
										
										
										
											2016-12-15 11:19:21 -08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								For subsequent snapshots, just run
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								``` shell
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$ ./scripts/publish/publish-build-artifacts.sh [github username]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2016-12-20 22:52:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								The script will publish the build snapshot to a branch with the same name as your current branch,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								and create it if it doesn't exist.