angular-cn/integration/dynamic-compiler
George Kalpakas 7f0d7f4d12 build: update lockfiles for integration projects (#33968)
In the `integration_test` CircleCI job, we run `yarn install` on all
projects in the `integration/` directory. If a project has no lockfile
or if the lockfile is out-of-sync with the corresponding `package.json`
file, then the installed dependency versions are no longer pinned, which
can result in different versions being installed between different runs
of the same job (if, for example, a new version is released for a
package) and breaks hermeticity.

This could be prevented by using the `--frozen-lockfile` option with
`yarn install`, but this is not possible with the current setup, because
yarn needs to be able to install the locally built Angular packages,
whose checksums will be different from the ones in the lockfile.
Therefore, we have to manually ensure that the lockfiles remain in-sync
with the corresponding `package.json` files for the rest of the
dependencies.

For example, previously, [cli-hello-world-lazy/yarn.lock][1] had an
entry for `@angular-devkit/build-angular@0.900.0-next.9` (pinned to
`0.900.0-next.9`), but [cli-hello-world-lazy/package.json][2] specified
the `@angular-devkit/build-angular` version as `^0.900.0-rc.0` (note the
leading caret). As a result, since the version in the lock file does not
much the one in `package.json`, the lockfile is ignored and the latest
available version that matches `^0.900.0-rc.0` is installed.

This, for example, started causing unrelated CI failures ([example][3]),
when `@angular-devkit/build-angular@9.0.0-rc.3` was released with a size
improvement.

This commit ensures that all integration projects have a lockfile and
that lockfiles are up-to-date (with the current `package.json` files).

[1]: https://github.com/angular/angular/blob/fc2f6b845/integration/cli-hello-world-lazy/yarn.lock#L13
[2]: https://github.com/angular/angular/blob/fc2f6b845/integration/cli-hello-world-lazy/package.json#L26
[3]: https://circleci.com/gh/angular/angular/535959#tests/containers/2

PR Close #33968
2019-11-26 16:08:32 -08:00
..
e2e build: upgrade jasmine (and related typings) to latest version (#19904) 2018-07-06 13:48:02 -07:00
src test: clean up explicit dynamic query usages (#33015) 2019-10-17 16:10:10 -04:00
index.html feat(platform-browser-dynamic): export `JitCompilerFactory` (#20478) 2017-11-22 08:56:11 -06:00
package.json test(ngcc): build `zone.js` from source in `scripts/build-packages-dist.sh` (#33733) 2019-11-12 09:55:16 -08:00
rollup.config.js build(bazel): Use local rollup & build-optimizer for ng_rollup_bundle (#28215) 2019-01-18 09:07:52 -08:00
rollup.lazy.config.js build(bazel): Use local rollup & build-optimizer for ng_rollup_bundle (#28215) 2019-01-18 09:07:52 -08:00
tsconfig.json feat: make the Ivy compiler the default for ngc (#32219) 2019-08-20 16:41:08 -07:00
yarn.lock build: update lockfiles for integration projects (#33968) 2019-11-26 16:08:32 -08:00