Commit graph

940 commits

Author SHA1 Message Date
Greg Magolan
2f572772b0 build: add npm_integration_test && angular_integration_test (#33927)
* it's tricky to get out of the runfiles tree with `bazel test` as `BUILD_WORKSPACE_DIRECTORY` is not set but I employed a trick to read the `DO_NOT_BUILD_HERE` file that is one level up from `execroot` and that contains the workspace directory. This is experimental and if `bazel test //:test.debug` fails than `bazel run` is still guaranteed to work as  `BUILD_WORKSPACE_DIRECTORY` will be set in that context

* test //integration:bazel_test and //integration:bazel-schematics_test exclusively

* run "exclusive" and "manual" bazel-in-bazel integration tests in their own CI job as they take 8m+ to execute

```
//integration:bazel-schematics_test                                      PASSED in 317.2s
//integration:bazel_test                                                 PASSED in 167.8s
```

* Skip all integration tests that are now handled by angular_integration_test except the tests that are tracked for payload size; these are:
- cli-hello-world*
- hello_world__closure

* add & pin @babel deps as newer versions of babel break //packages/localize/src/tools/test:test

@babel/core dep had to be pinned to 7.6.4 or else //packages/localize/src/tools/test:test failed. Also //packages/localize uses @babel/generator, @babel/template, @babel/traverse & @babel/types so these deps were added to package.json as they were not being hoisted anymore from @babel/core transitive.

NB: integration/hello_world__systemjs_umd test must run with systemjs 0.20.0
NB: systemjs must be at 0.18.10 for legacy saucelabs job to pass
NB: With Bazel 2.0, the glob for the files to test `"integration/bazel/**"` is empty if integation/bazel is in .bazelignore. This glob worked under these conditions with 1.1.0. I did not bother testing with 1.2.x as not having integration/bazel in .bazelignore is correct.

PR Close #33927
2020-02-24 08:59:20 -08:00
Alan Agius
824d9a8cbf build: update cli packages to latest versions (#35608)
PR Close #35608
2020-02-21 08:31:19 -08:00
Paul Gschwendtner
5bec534bfc build: remove dependency on @types/chokidar (#35371)
We recently updated chokidar to `3.0.0`. The latest version of
chokidar provides TypeScript types on its own and makes the extra
dependency on the `@types` unnecessary.

This seems to have caused the `build-packages-dist` script to fail with
an error like:

```
[strictDeps] transitive dependency on external/npm/node_modules/chokidar/types/index.d.ts
   not allowed. Please add the BUILD target to your rule's deps.
```

It's unclear why that happens, but a reasonable theory would be that
the TS compilation accidentally picked up the types from `chokidar`
instead of `@types/chokidar`, and the strict deps `@bazel/typescript`
check reported this as issue because it's not an explicit target dependency.

PR Close #35371
2020-02-19 12:49:53 -08:00
Alex Rickabaugh
5edeee69dd release: cut the v9.0.2 release 2020-02-19 11:18:40 -08:00
Greg Magolan
098ba19560 build: update to @bazel/bazel 2.1.0 (#35430)
Includes new feature to honor .bazelignore in external repositories. rules_nodejs 1.3.0 now generates a .bazelignore for the @npm repository so that Bazel ignores the @npm//:node_modules folder.

PR Close #35430
2020-02-13 16:29:33 -08:00
Greg Magolan
5149d98acc build: update to rules_nodejs 1.3.0 (#35430)
Brings in feat: builtin: expose @npm//foo__all_files filegroup that includes all files in the npm package (https://github.com/bazelbuild/rules_nodejs/commit/8d77827) that is needed for npm_integration_test @npm//puppeteer pkg_tar on OSX (as the OSX Chrrome libs are extracted to paths that contain spaces)

PR Close #35430
2020-02-13 16:29:33 -08:00
Joey Perrott
6aa259246e ci: add verification of the pullapprove config (#35060)
Verify that all files in the repo are covered by the pullapprove config
and that all rules in the pullapprove config match at least one file
in the repo.

PR Close #35060
2020-02-12 16:39:14 -08:00
Kara Erickson
c3b5ce4bb2 release: cut the v9.0.1 release 2020-02-12 10:35:56 -08:00
Greg Magolan
cd2ffea668 test: use puppeteer in integration tests and to download correct chromedriver (#35049)
This means integration tests no longer need to depend on a $CI_CHROMEDRIVER_VERSION_ARG environment variable to specify which chromedriver version to download to match the locally installed chrome. This was bad DX and not having it specified was not reliable as webdriver-manager would not always download the chromedriver version to work with the locally installed chrome.

webdriver-manager update --gecko=false --standalone=false $CI_CHROMEDRIVER_VERSION_ARG is now replaced with node webdriver-manager-update.js in the root package.json, which checks which version of chrome puppeteer has come bundled with & downloads informs webdriver-manager to download the corresponding chrome driver version.

Integration tests now use "webdriver-manager": "file:../../node_modules/webdriver-manager" so they don't have to waste time calling webdriver-manager update in postinstall

"// resolutions": "Ensure a single version of webdriver-manager which comes from root node_modules that has already run webdriver-manager update",
"resolutions": {
"**/webdriver-manager": "file:../../node_modules/webdriver-manager"
}
This should speed up each integration postinstall by a few seconds.

Further, integration test package.json files link puppeteer via file:../../node_modules/puppeteer which is the ideal situation as the puppeteer post-install won't download chrome if it is already downloaded. In CI, since node_modules is cached it should not need to download Chrome either unless the node_modules cache is busted.

NB: each version of puppeteer comes bundles with a specific version of chrome. Root package.json & yarn.lock currently pull down puppeteer 2.1.0 which comes with chrome 80. See https://github.com/puppeteer/puppeteer#q-which-chromium-version-does-puppeteer-use for more info.

Only two references to CI_CHROMEDRIVER_VERSION_ARG left in integration tests at integration/bazel-schematics/test.sh which I'm not entirely sure how to get rid of it

Use a lightweight puppeteer=>chrome version mapping instead of launching chrome and calling browser.version()

Launching puppeteer headless chrome and calling browser.version() was a heavy-handed approach to determine the Chrome version. A small and easy to update mappings file is a better solution and it means that the `yarn install` step does not require chrome shared libs available on the system for its postinstall step

PR Close #35049
2020-02-11 13:16:54 -08:00
Misko Hevery
b72fce8acf release: cut the v9.0.0 release 2020-02-06 08:50:04 -08:00
Filipe Silva
24555dbb2d build: update @angular/cli to rc 14 (#35162)
PR Close #35162
2020-02-05 17:20:31 -08:00
Miško Hevery
152eec5543 release: cut the v9.0.0-rc.14 release 2020-02-03 15:06:16 -08:00
Misko Hevery
ab12529941 release: cut the v9.0.0-rc.13 release 2020-01-31 18:27:44 -08:00
Greg Magolan
2984c00f43 build: update to rules_nodejs 1.2.2 (#34961)
Fixes issue with yarn_install not following yarn-path in .yarnrc when bazel run from yarn with `yarn bazel ...` (rules_nodejs: fix: unset YARN_IGNORE_PATH in yarn_install before calling yarn #1588)

PR Close #34961
2020-01-31 13:14:06 -08:00
Greg Magolan
e4cf71c9f3 build: update to rules_nodejs 1.2.1 (#34961)
Fixes issue with conflicting linker module mappings introduced in 1.2.0

PR Close #34961
2020-01-31 13:14:06 -08:00
Greg Magolan
3ec64f92fd build: update to rules_nodejs 1.2.0 (#34961)
This brings in a fix so that yarn_install picks up the yarn-path attribute of the .yarnrc file.

PR Close #34961
2020-01-31 13:14:06 -08:00
Wagner Maciel
701952b61e build: update to @bazel/protractor@1.2.0 (#35068)
we need this to be able to control the protractor version via peer dep, so that
we can update benchpress to protractor 6

PR Close #35068
2020-01-31 11:14:48 -08:00
Andrew Kushnir
9fb11a8070 release: cut the v9.0.0-rc.12 release 2020-01-30 13:42:19 -08:00
Alex Rickabaugh
3b612afff3 build(compiler-cli): update to chokidar 3.x (#35047)
Update from chokidar 2.x to 3.x in ngc/ngtsc, to eliminate any possibility
of a security issue with a downstream dependency of the package.

FW-1809 #resolve

PR Close #35047
2020-01-30 08:41:14 -08:00
Igor Minar
e82ed07227 build: update to @angular/cli@9.0.0-rc.11 (#35042)
PR Close #35042
2020-01-29 14:11:39 -08:00
Igor Minar
7c6a53fb8b build: update CLI to 9.0.0-rc.10 (#34965)
PR Close #34965
2020-01-27 09:22:59 -08:00
Igor Minar
789706fe78 build: explicitly define @babel/generator dep in package.json (#34974)
Previously we just happened to be able to use it because of npm hoisting.

PR Close #34974
2020-01-26 14:53:47 -08:00
Andrew Kushnir
b890d10fc6 release: cut the v9.0.0-rc.11 release 2020-01-24 15:29:06 -08:00
Paul Gschwendtner
81af3ed183 build: create bazel marco to test for circular dependencies (#34774)
Creates a Bazel macro that can be used to test packages for
circular dependencies. We face one limitation with Bazel:

 * Built packages use module imports, and not relative source file
 paths. This means we need custom resolution.

Fortunately, tools like `madge` support custom resolution.

Also removes the outdated `check-cycles` gulp task that
didn't catch circular dependencies. It seems like the test
became broken when we switched the packages-dist output to Bazel. It
breaks because the Bazel output doesn't use relative paths, but uses
the module imports. This will be handled in the new Bazel macro/rule.

PR Close #34774
2020-01-23 11:36:41 -08:00
Greg Magolan
73adfa23a1 build: upgrade to bazel 2.0.0 (#34877)
PR Close #34877
2020-01-23 10:05:06 -08:00
Matias Niemelä
a651fb98c5 release: cut the v9.0.0-rc.10 release 2020-01-22 09:40:20 -08:00
Filipe Silva
f6fbe3a4a9 build: use CLI rc.8 (#34788)
PR Close #34788
2020-01-17 13:42:42 -05:00
Greg Magolan
762c531e30 build: update to rules_nodejs 1.1.0 (#34736)
This release resolves the bootstrap require patching issue with jasmine_node_test. Require patches are now included before any bootstrap scripts.

PR Close #34736
2020-01-15 14:58:09 -05:00
Greg Magolan
04ebe125b2 test: add coverage to //tools/ts-api-guardian/... on WindowsCI (#34736)
PR Close #34736
2020-01-15 14:58:09 -05:00
Greg Magolan
fa30e31cd5 build: update to rules nodejs 1.0.1 (#34736)
This brings in a few minor fixes including a better way to patch require for bootstrap scripts

Also remove install_source_map_support attribute from nodejs_binary targets This attribute will be removed from nodejs_binary in the future

PR Close #34736
2020-01-15 14:58:09 -05:00
Greg Magolan
1cf28929f1 build: update to @angular/cli 9.0.0-rc.4 (#34736)
This brings in a required fix to allow for 0.0.0 dev version of @angular/core for integration testing. Without this the following error is now observed:

```
This version of CLI is only compatible with Angular versions ^9.0.0-beta || >=9.0.0 <10.0.0,
but Angular version 0.0.0 was found instead.
```

NB: rc.7 breaks the cli-hello-world-ivy-i18n integration test

PR Close #34736
2020-01-15 14:58:09 -05:00
Greg Magolan
c8ba576021 build: upgrade to rules_nodejs 1.0.0 (first stable release) (#34736)
Brings in the fix for stamping which was preventing many targets from getting cached.

PR Close #34736
2020-01-15 14:58:08 -05:00
atscott
b6bc3887f0 release: cut the v9.0.0-rc.9 release 2020-01-15 09:21:24 -08:00
Filipe Silva
40fdb01108 build: update tsickle to 0.38.0 (#33717)
This is the tsickle version that supports TypeScript 3.7.

PR Close #33717
2020-01-14 16:42:23 -08:00
Andrius
373157970a build: typescript 3.7 support (#33717)
This PR updates TypeScript version to 3.7 while retaining compatibility with TS3.6.

PR Close #33717
2020-01-14 16:42:23 -08:00
Igor Minar
9801fc3c0a build: update to @bazel/ibazel@0.11.1 (#34732)
motivation: keeping up to date and picking up new bugfixes for ibazel that could fix some weirdness
I see when using 0.10.3

PR Close #34732
2020-01-13 07:18:58 -08:00
atscott
c3490f7092 Revert "build: upgrade to rules_nodejs 1.0.0 (first stable release) (#34589)" (#34730)
This reverts commit cb6ffa1211.

PR Close #34730
2020-01-10 14:12:18 -08:00
atscott
c9fdc661d6 Revert "build: update to @angular/cli 9.0.0-rc.4 (#34589)" (#34730)
This reverts commit 1ba6fd3f42.

PR Close #34730
2020-01-10 14:12:17 -08:00
atscott
cdf1b5f985 Revert "build: update to rules nodejs 1.0.1 (#34589)" (#34730)
This reverts commit 8042433cb0.

PR Close #34730
2020-01-10 14:12:17 -08:00
atscott
80a7bc8168 Revert "test: add coverage to //tools/ts-api-guardian/... on WindowsCI (#34589)" (#34730)
This reverts commit 9e0583045c.

PR Close #34730
2020-01-10 14:12:16 -08:00
Greg Magolan
613367508f test: add coverage to //tools/ts-api-guardian/... on WindowsCI (#34589)
PR Close #34589
2020-01-10 08:32:02 -08:00
Greg Magolan
1bb0fbd733 build: update to rules nodejs 1.0.1 (#34589)
This brings in a few minor fixes including a better way to patch require for bootstrap scripts.

PR Close #34589
2020-01-10 08:32:01 -08:00
Greg Magolan
e03c0f6ae5 build: update to @angular/cli 9.0.0-rc.4 (#34589)
This brings in a required fix to allow for 0.0.0 dev version of @angular/core for integration testing. Without this the following error is now observed:

```
This version of CLI is only compatible with Angular versions ^9.0.0-beta || >=9.0.0 <10.0.0,
but Angular version 0.0.0 was found instead.
```

NB: rc.7 breaks the cli-hello-world-ivy-i18n integration test

PR Close #34589
2020-01-10 08:32:01 -08:00
Greg Magolan
0d9c7ba6b3 build: upgrade to rules_nodejs 1.0.0 (first stable release) (#34589)
Brings in the fix for stamping which was preventing many targets from getting cached.

PR Close #34589
2020-01-10 08:32:01 -08:00
Alex Rickabaugh
186d310f6b release: cut the v9.0.0-rc.8 release 2020-01-08 14:09:03 -08:00
George Kalpakas
10acac07e1 build: update firebase-tools to the latest version (#34682)
This fixes `Server Error. certificate has expired` errors that cause AIO
deployment to fail.
(Example CI failure: https://circleci.com/gh/angular/angular/578227)

PR Close #34682
2020-01-08 13:21:36 -08:00
Kara Erickson
6c33b7040d release: cut the v9.0.0-rc.7 release 2019-12-18 15:21:56 -08:00
Igor Minar
199d7da343 build: update to yarn@1.21.1 (#34384)
This updates yarn throughout the monorepo for both build and CI.

PR Close #34384
2019-12-16 07:40:01 -08:00
Kara Erickson
4d99dfe6da Revert "build: update to yarn@1.21.1" (#34402)
This reverts commit f029af50820765019413fa319330830306b80d6a while we investigate
some failures on master on Circle CI. Currently the Windows tests and the
"test-ivy-aot" jobs are red because of incompatible yarn versions.

PR Close #34402
2019-12-13 13:43:27 -08:00
Igor Minar
d661f1e993 build: update to yarn@1.21.1 (#34384)
This updates yarn throughout the monorepo for both build and CI.

PR Close #34384
2019-12-13 10:51:16 -08:00