Now that we are using package.json properties to indicate which
entry-point format to compile, it turns out that we don't really
need to distinguish between flat and non-flat formats, unless we
are compiling `@angular/core`.
PR Close#29092
You can now specify a list of properties in the package.json that
should be considered (in order) to find the path to the format to compile.
The build marker system has been updated to store the markers in
the package.json rather than an additional external file.
Also instead of tracking the underlying bundle format that was compiled,
it now tracks the package.json property.
BREAKING CHANGE:
The `proertiesToConsider` option replaces the previous `formats` option,
which specified the final bundle format, rather than the property in the
package.json.
If you were using this option to compile only specific bundle formats,
you must now modify your usage to pass in the properties in the package.json
that map to the format that you wish to compile.
In the CLI, the `--formats` is no longer available. Instead use the
`--properties` option.
FW-1120
PR Close#29092
Currently when building AIO with Ivy, we run Ngcc and transform
all found formats. This potentially slows down the build (and
therefore the "test_aio_local_ivy" job). Since it's not necessary
to build all formats, and we only need "fesm5" and "fesm2015",
we can explicitly specify the required formats.
**Note**: Currently this does not have any big effect, because Angular
Material does not ship ES2015/ES5 files. The change primarily just
suppresses the Ngcc messages for Material not providing ES2015/ES5
entry-points.
Technically if new non-Ivy packages are added to AIO, this
speeds up the build as we don't build the unused formats.
PR Close#29117
Previously, `ng-packages-installer` would replace the version ranges for
all dependencies that were peer dependencies of an Angular package with
the version range used in the Angular package. This effectively meant
that the pinned version (from `yarn.lock`) for that dependency was
ignored (even if the pinned version satisfied the new version range).
This commit reduces non-determinism in CI jobs using the locally built
Angular packages by always using pinned versions of dependencies for
Angular package peer dependencies if possible.
For example, assuming the following versions for the RxJS dependency:
- **aio/package.json**: `rxjs: ^6.3.0`
- **aio/yarn.lock**: `rxjs@^6.3.0: 6.3.3`
- **@angular/core#peerDependencies**: `rxjs: ^6.0.0`
...the following versions would be used with `ng-packages-installer`:
- Before this commit:
- **aio/package.json**: `rxjs: ^6.0.0`
- **node_modules/rxjs/**: `6.4.0` (latest version satisfying `^6.0.0`)
- After this commit:
- **aio/package.json**: `rxjs: ^6.3.0`
- **node_modules/rxjs/**: `6.3.3` (because it satisfies `^6.0.0`)
PR Close#28510
Currently our version of Yarn is installed through
the "circleci/node" docker image. This is problematic
because in order to be able to update Yarn, we always
need to update the docker image to a version that
comes with the desired Yarn version. Sometimes there
is no docker image with the desired latest Yarn version,
and therefore we cannot easily update the Yarn version.
Additionally updating the docker image also means that
we need to update our version of NodeJS, as well as the
version of `openssl` might have changed (meaning that
our encrypted credential files may not be decodable with
the new version of `openssl`)
PR Close#28546
By default, `webdriver-manager update` will download the latest
ChromeDriver version, which might not be compatible with the Chrome
version included in the [docker image used on CI], causing CI failures.
Previously, we used to pin the ChromeDriver version on CI in
[ngcontainer's Dockerfile][2]. This was accidentally broken in #26691,
while moving from ngcontainer to default CircleCI docker images.
This commit fixes the issue by pinning ChromeDriver to a known
compatible version.
[1]: bfd48d156d/.circleci/config.yml (L16)
[2]: bfd48d156d/tools/ngcontainer/Dockerfile (L63)
PR Close#28494
This new version of dgeni-packages gives the main (implemented)
overload of a method the correct id and aliases, which allow it to be
automatically linked.
See 398f35da30Fixes#27820Closes#27821
PR Close#27864
Earlier versions may transitively depend on a malicious version of
`flatmap-stream` (see dominictarr/event-stream#116).
The `aio-builds-setup/` had an older version of `event-stream` (3.3.4),
which did not depend on `flatmap-stream`, but upgraded it anyway.
PR Close#27274
Some engineers were already on Yarn 0.10.x which was permitted by the range in our package.json#engines
However this introduced 'integrity sha512' lines into the yarn.lock files.
Then when engineers use yarn 0.9 (in particular, Bazel did this) then the lock files get tons of meaningless edits.
We could force everyone back to yarn 0.9 but this commit chooses to instead advance everyone past 0.10
PR Close#27193
Previously, `firebase-tools@3.x` was used and the deployment from
CircleCI failed with `Unexpected error` (HTTP code: 410).
This commit ensures that we use a recent version of `firebase-tools` for
deploying to Firebase. It also ensures that we use the locally installed
`firebase-tools` (not sure where it came from before 😁).
PR Close#26746
This commit also removes the extra jasminewd2 typings, since the changes
have been merged in the official typings with
DefinitelyTyped/DefinitelyTyped#28957.
PR Close#26139
The JSON files from which cli command docs for angular.io are generated
is broken on master (e.g. angular/cli-builds@e0ec86757), which cause foc
generation (and CI) to fail.
Pinning the git ref where we pull cli sources from to a version that is
known to be working (until we figure out what the best approach is)
PR Close#26391
This is necessary to avoid webpack/webpack#8082, when installing
dependencies without taking the lockfile into account (e.g. with
`yarn aio-use-local` - locally or on CI).
PR Close#26202
The default dgeni config is to concatenate leading comments in front of API items.
In the case that you have an API item that starts a file with no import statements,
the license comment at the top of the file was being added to the front of the
API item's comment. SInce the license comment includes the `@license` tag
and the API item's comment did not start with `@description` the content of
the API item's comment was being put inside the `@license` tag, and no
description was being extracted from the API item's comment.
This commit updates to a version of dgeni-packages that has a switch to turn off
this concatenation, and then also configures this switch.
Closes#26045
PR Close#26050
Enables Chrome users to search angular.io and its subdomains from the browsers navigation bar.
Not sure if compatible with Firefox yet.
The queried term in the URL is removed after closing the search-results.
PR Close#25479
Since `aio/src/generated/` is git-ignored, it is easy for stale content
(e.g. removed images, examples, zips, etc.) to remain there on local
clones and then get copied into the `dist/` directory.
This commit ensures `aio/src/generated/` is cleaned up before generating
the new content.
PR Close#25841
Now that the doc-gen parses the imports of TS source
files we need to ensure that the root node_modules
exists. Otherwise running `yarn docs` produces an
obscure error:
```
Error: No SourceFile found with path node_modules/@types/jasmine/index.d.ts
```
Closes#25759
PR Close#25811
AIO is currently using a beta version of @angular/service-worker.
Since that was implemented, the SW has been rewritten and released
as part of Angular 5.0.0. This commit updates AIO to use the latest
implementation, with an appropriate configuration file that caches
the various AIO assets in useful ways.
PR Close#19795
Now instead of pushing the AIO build artifacts to the preview server
from inside a Travis job, the artifacts are built and hosted on the
CircleCI infrastructure. The preview server will then pull these
down after being triggered by a CircleCI build webhook.
This update allows us to autolink to methods and properties, which
means that we can change things like `{@link transition transition()}`
to just `transition()`.
PR Close#24000
Previously these docs always displayed `any` as the type
of the const export. Now the type is computed correctly from
the declared type or initializer of the constant.
PR Close#23850
When running `yarn start` and `yarn serve-and-sync`, we are usually
more interested in faster re-build times than optimized builds. This was
also the behavior, before upgrading to @angular/cli@6 (fc5af69fb).
This commit introduces a new configuration (`fast`), which is used by
`yarn start` and `yarn serve-and-sync` to restore the faster,
unoptimized builds.
Other commands, such as `ng serve` and `ng e2e`, remain unchanged (using
slower, optimized builds).
PR Close#23569
Temporary workaround for angular/angular-cli#10398.
The behavior of `yarn build` remains the same, but building for a
specific deployment env (e.g. archive, next) requires
`yarn build-for $deployEnv`.
PR Close#23470
This commit configures a periodic job to be run on CircleCI, performing several
checks against the actual apps deployed to production (https://angular.io) and
staging (https://next.angular.io).
Fixes#21942
PR Close#22483
The new version of `dgeni-packages/typescript` no longer strips
out "namespaces" from types, which was part of the problem of
not autolinking correctly to `HttpEventType.Response`.
Another part of the problem was that we did not include `.`
characters when matching potential code blocks for auto-linking,
which precluded properties of enums from being linked.
Finally, members we not being given a `path` property, which is
needed to effectively autolink to them. This is now set in
the `simplifyMemberAnchors` processor.
Closes#21375
PR Close#22494
Includes:
* display ToC for API docs
* update dgeni-packages to 0.24.1
* add floating sidebar in API docs
* add breadcrumbs and structured data for Google crawler
* improved rendering of method overloads
* properties rendered in a table
* params rendered with docs
* removal of outdated "infobox" from all API docs
PR Close#21874
This will prevent the confusing errors for first time users who
try to generate the docs with `yarn docs` and are told there are
dangling links.
Closes#21944
PR Close#21970
This has two benefits:
* it prepares the way for the API docs update, which need parameter docs
* it doesn't incorrectly report dangling links for non-latin anchors
Closes#21306
PR Close#21802
Running `yarn start` (which watches the `src/` directory) and
`yarn docs-watch` (which cleans up files in `src/generated/api/`) often
results in `ENOTEMPTY` errors.
This commit solves it by ensuring that `yarn docs` has been completed
before running `yarn start`.
PR Close#21806
Previously the generated files were cleaned out before
doc-gen began (via a yarn pre-script). This can cause a
race condition in the CLI server, which prevents the new
generated files from being picked up.
Now we delay the cleaning until the last minute to ensure
that they ar still picked up by the webpack server.
PR Close#21540
-rw-r--r-- 1 iminar eng 72498 Jan 9 22:20 dist/0.0d2802b63e9f4f4615cd.chunk.js
-rw-r--r-- 1 iminar eng 14872 Jan 9 22:20 dist/4.c719ac5645940382cdce.chunk.js
-rw-r--r-- 1 iminar eng 1558 Jan 9 22:20 dist/inline.cb4b7a639193fc489d3b.bundle.js
-rw-r--r-- 1 iminar eng 454654 Jan 9 22:20 dist/main.b65f32ffc92e075e64e0.bundle.js
-rw-r--r-- 1 iminar eng 40264 Jan 9 22:20 dist/polyfills.87edf5d695f14a29bf91.bundle.js
-rw-r--r-- 1 iminar eng 54001 Jan 9 22:20 dist/worker-basic.min.js
PR Close#21351
This change introduces a size regression of 9kb for main.js :-(
I filed an issue for this: https://github.com/angular/angular-cli/issues/9108
-rw-r--r-- 1 iminar eng 72546 Jan 5 19:27 dist.cli-1.6.3/0.86a7a08f7866e6cdc36f.chunk.js
-rw-r--r-- 1 iminar eng 14893 Jan 5 19:27 dist.cli-1.6.3/4.c719ac5645940382cdce.chunk.js
-rw-r--r-- 1 iminar eng 1558 Jan 5 19:27 dist.cli-1.6.3/inline.7722895d8c844f710bcd.bundle.js
-rw-r--r-- 1 iminar eng 466484 Jan 5 19:27 dist.cli-1.6.3/main.faff0e2da95443f759f5.bundle.js
-rw-r--r-- 1 iminar eng 40363 Jan 5 19:27 dist.cli-1.6.3/polyfills.87edf5d695f14a29bf91.bundle.js
-rw-r--r-- 1 iminar eng 54001 Jan 5 19:27 dist.cli-1.6.3/worker-basic.min.js
PR Close#21350
This causes a 3.4kb size regressions for polyfills.js. :-(
I filed an issue for this: https://github.com/angular/zone.js/issues/989
-rw-r--r-- 1 iminar eng 73998 Jan 5 17:51 dist/0.5fb611ef423970fd3ba1.chunk.js
-rw-r--r-- 1 iminar eng 14880 Jan 5 17:51 dist/4.c719ac5645940382cdce.chunk.js
-rw-r--r-- 1 iminar eng 1558 Jan 5 17:51 dist/inline.797233300016416206fc.bundle.js
-rw-r--r-- 1 iminar eng 457592 Jan 5 17:51 dist/main.5870135237d5187f1ab6.bundle.js
-rw-r--r-- 1 iminar eng 40684 Jan 5 17:51 dist/polyfills.88f0257676f76560da16.bundle.js
-rw-r--r-- 1 iminar eng 54001 Jan 5 17:51 dist/worker-basic.min.js
PR Close#21349
Since our version of Chromium is also pinned, a new ChromeDriver (that
drops support for our Chromium version) can cause random (and unrelated
to the corresponding changes) errors on CI.
This commit pins the version of ChromeDriver and it should now be
manually upgraded to a vrsion that is compatible with th currently used
Chromium version.
PR Close#20940
Using `display: none` on the `<h1>` causes `innerText` to not work as expected
and include the icon ligature (`link`) in the title. This caused the window
title on the angular.io Home page to appear as "Angular - link".
This commit fixes it by not generating anchors at all for headings with the
`no-anchor` class.
Fixes#20427
PR Close#20440
-rw-r--r-- 1 iminar eng 14880 Nov 4 11:54
dist/0.b19e913fbdd6507d346b.chunk.js
-rw-r--r-- 1 iminar eng 1533 Nov 4 11:54
dist/inline.9183bfe0d60f43b6a772.bundle.js
-rw-r--r-- 1 iminar eng 486476 Nov 4 11:54
dist/main.f5445f99490330207c9c.bundle.js
-rw-r--r-- 1 iminar eng 37070 Nov 4 11:54
dist/polyfills.0dfca732c5a075c110d0.bundle.js
Closes#20184
When this command is run on CI, `yarn build` has already been run, so
this was unnecessarily building angular.io again (adding ~4mins to the
`aio` job).
When this command is run locally, it is most often about testing a new
`lighthouse` version/config, so you don't need to build angular.io over
and over (and if necessary, one can always run `yarn build` manually).
Closes#19633
-rw-r--r-- 1 iminar eng 14880 Nov 1 12:25 dist/0.b19e913fbdd6507d346b.chunk.js
-rw-r--r-- 1 iminar eng 1533 Nov 1 12:25 dist/inline.2826385ad3e299c6d1c1.bundle.js
-rw-r--r-- 1 iminar eng 486476 Nov 1 12:25 dist/main.f0610805f4aad19da4be.bundle.js
-rw-r--r-- 1 iminar eng 37070 Nov 1 12:25 dist/polyfills.0dfca732c5a075c110d0.bundle.js
PR Close#19702
This reverts commit f0d530b4de38f71c759e42afc8f3d7531eb1b1fb.
cli rc.8 reintroduces the node polyfill which causes size regression,
so I'm putting the patch back in.
-rw-r--r-- 1 iminar eng 14880 Nov 1 12:11 dist/0.b19e913fbdd6507d346b.chunk.js
-rw-r--r-- 1 iminar eng 1533 Nov 1 12:11 dist/inline.25600c3b48de18b97581.bundle.js
-rw-r--r-- 1 iminar eng 486476 Nov 1 12:11 dist/main.d1292a34401056535884.bundle.js
-rw-r--r-- 1 iminar eng 37070 Nov 1 12:11 dist/polyfills.0dfca732c5a075c110d0.bundle.js
PR Close#19702
-rw-r--r-- 1 iminar eng 14880 Nov 1 11:57 dist/0.b19e913fbdd6507d346b.chunk.js
-rw-r--r-- 1 iminar eng 1533 Nov 1 11:57 dist/inline.3574d1d784c09c507dbd.bundle.js
-rw-r--r-- 1 iminar eng 497812 Nov 1 11:57 dist/main.76bbb69df79eaefef54c.bundle.js
-rw-r--r-- 1 iminar eng 37259 Nov 1 11:57 dist/polyfills.fdb71956ccd13330fb47.bundle.js
PR Close#19702
-rw-r--r-- 1 iminar eng 14880 Oct 30 11:29 dist/0.b19e913fbdd6507d346b.chunk.js
-rw-r--r-- 1 iminar eng 1533 Oct 30 11:29 dist/inline.25600c3b48de18b97581.bundle.js
-rw-r--r-- 1 iminar eng 486476 Oct 30 11:29 dist/main.d1292a34401056535884.bundle.js
-rw-r--r-- 1 iminar eng 37070 Oct 30 11:29 dist/polyfills.0dfca732c5a075c110d0.bundle.js
PR Close#19702
-rw-r--r-- 1 iminar eng 14942 Oct 20 22:16 dist/0.b19e913fbdd6507d346b.chunk.js
-rw-r--r-- 1 iminar eng 1535 Oct 20 22:16 dist/inline.68ebcf831dc9c905804f.bundle.js
-rw-r--r-- 1 iminar eng 541291 Oct 20 22:16 dist/main.5ec6fb5f95fc0433d822.bundle.js
-rw-r--r-- 1 iminar eng 37402 Oct 20 22:16 dist/polyfills.f8409a9eb69060ac1aa6.bundle.js
PR Close#19702
-rw-r--r-- 1 iminar eng 84219 Oct 19 21:37 dist/0.0f327734d18211139822.chunk.js
-rw-r--r-- 1 iminar eng 14942 Oct 19 21:37 dist/4.c719ac5645940382cdce.chunk.js
-rw-r--r-- 1 iminar eng 1560 Oct 19 21:37 dist/inline.887757679ff553e20b54.bundle.js
-rw-r--r-- 1 iminar eng 492354 Oct 19 21:37 dist/main.5e5dc9ed980c9f5dc2bd.bundle.js
-rw-r--r-- 1 iminar eng 37402 Oct 19 21:37 dist/polyfills.f8409a9eb69060ac1aa6.bundle.js
PR Close#19702
-rw-r--r-- 1 iminar eng 84219 Oct 18 21:05 dist/0.0f327734d18211139822.chunk.js
-rw-r--r-- 1 iminar eng 14942 Oct 18 21:05 dist/4.c719ac5645940382cdce.chunk.js
-rw-r--r-- 1 iminar eng 1560 Oct 18 21:05 dist/inline.887757679ff553e20b54.bundle.js
-rw-r--r-- 1 iminar eng 492354 Oct 18 21:05 dist/main.5e5dc9ed980c9f5dc2bd.bundle.js
-rw-r--r-- 1 iminar eng 37402 Oct 18 21:05 dist/polyfills.f8409a9eb69060ac1aa6.bundle.js
PR Close#19702
-rw-r--r-- 1 iminar eng 84219 Oct 18 09:13 dist/0.8ef208c27531d5c6af63.chunk.js
-rw-r--r-- 1 iminar eng 14942 Oct 18 09:13 dist/4.c719ac5645940382cdce.chunk.js
-rw-r--r-- 1 iminar eng 1560 Oct 18 09:13 dist/inline.adc367eb50c706f3fd04.bundle.js
-rw-r--r-- 1 iminar eng 492354 Oct 18 09:13 dist/main.b9d9549455c74aff1480.bundle.js
-rw-r--r-- 1 iminar eng 37402 Oct 18 09:13 dist/polyfills.f8409a9eb69060ac1aa6.bundle.js
PR Close#19702
-rw-r--r-- 1 iminar eng 14942 Oct 13 14:52 dist/0.b19e913fbdd6507d346b.chunk.js
-rw-r--r-- 1 iminar eng 1535 Oct 13 14:52 dist/inline.6ca24f1c3b848103b041.bundle.js
-rw-r--r-- 1 iminar eng 567802 Oct 13 14:52 dist/main.c8183a2c0116782ca366.bundle.js
-rw-r--r-- 1 iminar eng 37402 Oct 13 14:52 dist/polyfills.f8409a9eb69060ac1aa6.bundle.js
PR Close#19702
-rw-r--r-- 1 iminar eng 14942 Oct 13 14:30 dist/0.b19e913fbdd6507d346b.chunk.js
-rw-r--r-- 1 iminar eng 1535 Oct 13 14:30 dist/inline.702d6ff5146ddc373f05.bundle.js
-rw-r--r-- 1 iminar eng 588943 Oct 13 14:30 dist/main.64c96d55a10c56cfd6cd.bundle.js
-rw-r--r-- 1 iminar eng 37402 Oct 13 14:30 dist/polyfills.f8409a9eb69060ac1aa6.bundle.js
PR Close#19702
-rw-r--r-- 1 iminar eng 14942 Oct 13 13:35 dist/0.b19e913fbdd6507d346b.chunk.js
-rw-r--r-- 1 iminar eng 1535 Oct 13 13:35 dist/inline.f005f1bd6803b72f5961.bundle.js
-rw-r--r-- 1 iminar eng 582527 Oct 13 13:35 dist/main.b9ef1abb785be8de15b8.bundle.js
-rw-r--r-- 1 iminar eng 37402 Oct 13 13:35 dist/polyfills.f8409a9eb69060ac1aa6.bundle.js
PR Close#19702
all the non-npm changes were made by the angular-material-prefix-updater tool.
the tool missed a few things, which I'll fix in a separate commit to preserve the diff.
-rw-r--r-- 1 iminar eng 14942 Oct 13 13:09 dist/0.b19e913fbdd6507d346b.chunk.js
-rw-r--r-- 1 iminar eng 1535 Oct 13 13:09 dist/inline.0592c25ceb544d6aca3d.bundle.js
-rw-r--r-- 1 iminar eng 578250 Oct 13 13:09 dist/main.45d4edca3facc6d621e7.bundle.js
-rw-r--r-- 1 iminar eng 37402 Oct 13 13:09 dist/polyfills.f8409a9eb69060ac1aa6.bundle.js
PR Close#19702
the size regression has gotten worse:
-rw-r--r-- 1 iminar eng 14942 Oct 13 12:24 dist/0.b19e913fbdd6507d346b.chunk.js
-rw-r--r-- 1 iminar eng 1535 Oct 13 12:24 dist/inline.41e701c562960ede8ef5.bundle.js
-rw-r--r-- 1 iminar eng 865780 Oct 13 12:24 dist/main.6c4c605d461870b9c2d7.bundle.js
-rw-r--r-- 1 iminar eng 37402 Oct 13 12:24 dist/polyfills.f8409a9eb69060ac1aa6.bundle.js
PR Close#19702
this causes the size regression to get only worse:
-rw-r--r-- 1 iminar eng 14942 Oct 13 10:37 dist/0.b19e913fbdd6507d346b.chunk.js
-rw-r--r-- 1 iminar eng 1535 Oct 13 10:37 dist/inline.3cc964095cb25e329dc0.bundle.js
-rw-r--r-- 1 iminar eng 846141 Oct 13 10:37 dist/main.5eb64df77b2877327a16.bundle.js
-rw-r--r-- 1 iminar eng 37402 Oct 13 10:37 dist/polyfills.965a9a5ad3e11b17f85e.bundle.js
PR Close#19702
Usages of `NgTools_InternalApi_NG_2` from `@angular/compiler-cli` will now
throw an error.
Adds `listLazyRoutes` to `@angular/compiler-cli/ngtools2.ts` for getting
the lazy routes of a `ng.Program`.
PR Close#19836
The tooling for boilerplate was also running `yarn install` on the examples'
shared folder. But since this is handled by `ng-packages-installer` this
commit refactors the tools so that the boilerplate no longer does this
anymore.
PR Close#19511
The new v5 version of this toolkit is too incompatible for us to run
AIO against both versions. So for now we will ignore this libary when
running against local Angular distributions and continue to use the
version on npm.
PR Close#19511
Upgrading to dgeni-packages 0.21.4 gives us
access to more properties on the API docs, which
allows us to fix the following issues:
Closes#19450Closes#19452Closes#19456
`ng build ...` must be the last command on the corresponding yarn script,
because it needs to be passed extra arguments (such as the target environment)
in specific cases.
This commit allows building angular.io against the locally built Angular
packages. It adds two new npm scripts:
- `setup-local`: Same as `setup`, but overwrites the Angular packages for both
angular.io and the examples boilerplate with the locally built ones.
- `build-local`: Same as `build`, but uses `setup-local` instead of `setup`
under the hood, thus overwriting installed Angular packages with locally built
ones.
Fixes#18611
For classes, the tree of subclasses is rendered, recursively.
For interfaces, the descendants are separated into child interfaces, which
extend the interface, and classes, which implement the interface.
Closes#19306
There are now 3 modes for deployment: next, stable, archive.
We compute which mode (and other deployment properties)
from the `TRAVIS_BRANCH` and the `STABLE_BRANCH`.
If the TRAVIS_BRANCH is master we deploy as "next".
If the `TRAVIS_BRANCH` matches the `STABLE_BRANCH` we deploy as "stable".
Otherwise if the branch has a major version lower than the stable version
and its minor version is highest of similar branches we deploy as "archive".
For "archive" deployments we compute the firebase project and deployment
url based on the major version of the `TRAVIS_BRANCH`.
As well as choosing where to deploy the build, we also use this
to select the environment file for the AIO Angular app.
This will enable the app to change its rendering and behaviour
based on its mode.
See #18287Closes#18297
There are now 3 modes for deployment: next, stable, archive.
We compute which mode (and other deployment properties)
from the `TRAVIS_BRANCH` and the `STABLE_BRANCH`.
If the TRAVIS_BRANCH is master we deploy as "next".
Otherwise if the branch is the highest of its minor versions
we deploy as "stable" if the `TRAVIS_BRANCH` matches the `STABLE_BRANCH` or
else "archive".
For "archive" deployments we compute the firebase project and deployment
url based on the major version of the `TRAVIS_BRANCH`.
As well as choosing where to deploy the build, we also use this
to select the environment file for the AIO Angular app.
This will enable the app to change its rendering and behaviour
based on its mode.
See #18287
This version fixes the DISCONNECTED errors (described in #17543) and removes the
need to the workaround (8af203c).
The relevant jasmine commit is jasmine/jasmine@c60d66994.
You can now specify what environment you are building
by add it to the `yarn build` command. For example:
```
yarn build -- --env=stage
```
Moreover the `deploy-to-firebase.sh` script will automatically apply the
appropriate environment.
The current stable branch is determined based on the current version mapped to
the npm `latest` tag (by replacing the patch version number with 'x' - e.g.
`1.2.3` --> `1.2.x`).
PRs against the stable branch will be deployed to the preview server (as long as
the rest of the requirements are met). Commits on the stable branch itself will
be deployed to production.
Fixes#16908
Rather than hard coding excludes into the dgeni config,
use the fact that we are already ignoring the boilerplate
and generated files via the .gitignore file.