Commit Graph

206 Commits

Author SHA1 Message Date
Paul Gschwendtner 39818135d3 build: do not run bazel through yarn and nodejs
We don't want to run Bazel through Yarn or NodeJS as that could
mean that Bazel runs with limited memory.
2019-07-11 11:49:30 -07:00
Joey Perrott 93f4b584ac build: create script for setting up RBE in local dev environment (#16375) 2019-06-26 08:53:46 -07:00
Joey Perrott d511fbea34 build: setup RBE caching and remote build event service on CI (#16370) 2019-06-24 14:03:01 -07:00
Paul Gschwendtner 10370ef659 build: use bazel from node modules (#16361)
The goal of https://github.com/angular/components/commit/2ce5ffd56b70c3791331ceedeadc1f1f6daf3924 was to avoid the
use of Bazel through the `node_modules` because it adds unnecessary code overhead, slows down CI and means that
some tools need to be installed multiple times (such as `yarn`). Unfortunately when building a release with Bazel
right now, the bazel workspace status script depends on the global `node` binary. This means that we need
to bring in Node when running with the `--config=release` flag.. Since that causes inconsistent behavior
and just complicates the setup, we are using Bazel through Yarn for now. Similar to how we did it for
`angular/angular` with https://github.com/angular/angular/commit/8fc4ae51fb66d14f6dc82712a536c3842205fc6d.
2019-06-21 15:08:30 -07:00
Paul Gschwendtner 6ee271f559 fixup! build: replace setup angular snapshots script with python script
Add comment explaining why script needs to be in python
2019-06-21 09:34:21 -07:00
Paul Gschwendtner 21594d33e8 build: properly wait for external browser tunnels to terminate
We currently wait for browser tunnels of Saucelabs and Browserstack
to terminate by repeatedly checking with `ps -p`. This is not reliable and
can break if the host system is not removing forcibly killed child processes
from the process table. This is valid since the tunnels are launched as child
processes and we ideally wait for those to terminate using the `wait` command.
2019-06-21 09:34:21 -07:00
Paul Gschwendtner 10cd71a0ed build: replace setup angular snapshots script with python script
In order to be able to take advantage of Google's official
bazel docker images, we no longer can use a NodeJS script
for setting up the snapshot builds because NodeJS is not
installed in the image. Rather we need to convert the script
to a python script in order to be able to perform the package.json
modification.

Since this script is not intended to be executed locally, we
are free to use Python for this.
2019-06-21 09:34:21 -07:00
Paul Gschwendtner 2ce5ffd56b build: no longer use bazel from "ngcontainer" image
We no longer use Bazel from the `ngcontainer` image as it is
no longer maintained and we need to use the latest version of
Bazel in CircleCI. It's not ideal to use Bazel through Yarn since
binaries like that should be actually part of the docker image, but
for now we need to do this for jobs that use NodeJS & Bazel at the same time.
This is similar to what `angulart/angular` does.
2019-06-21 09:34:21 -07:00
Kristiyan Kostadinov 0bfcb32b62 chore: bazel lint error message printing out wrong fix command (#16258)
Fixes the lint failure, that gets logged out if the Bazel linting fails, showing the wrong command that can be used to fix the issue.
2019-06-10 13:37:32 -07:00
Paul Gschwendtner 8ba2f2259a build: add linting for bazel build files (#16090) 2019-06-03 11:19:45 -07:00
Paul Gschwendtner 816a833f4e build: add job to run tests with ivy
Introduces two new CI jobs that run tests with Ivy.
Pull requests will now run tests against a pinned
Angular/Ivy version. Additionally there is a cronjob
that runs the component tests with Ivy every hour
against Ivy from `angular/angular#master`. This allows
us to detect regressions very quickly.
2019-05-15 10:33:36 -07:00
mmalerba 35fece8f8e ci: fix snapshots (#15908) 2019-04-25 16:26:47 -07:00
Jeremy Elbourn fde980c8ad chore: update "material2" to "components" (#15905)
This should capture things that reference the GitHub repository.
There are many other places we use "material2" that we can clean up in
subsequent changes.
2019-04-25 13:19:41 -07:00
mmalerba 9eeb4b5aa0 cleanup: rename lib/ to material/ (#15889) 2019-04-24 09:53:00 -07:00
Jeremy Elbourn 4816ecdb81 chore: add cdk-experimental to deps for material-examples (#15737) 2019-04-05 13:32:54 -07:00
Paul Gschwendtner 9ca5722d68 build: downgrade to sauce-connect v4.5.1 (#28659) (#15183)
We currently face a lot of flakiness with our Saucelabs job. These randomly exceed the 2min establish timeout because something throws
off `sauce-connect` in a long-lasting loop where it tries to connect to some of their Saucelabs servers. The initial assumption from the Saucelabs
team was that we might have some invalid firewall rules, but this does not answer why this happens _randomly_, so the latest update from the support
is that there have been some changes in the latest version of `sauce-connect` version that cause this flakiness.
2019-02-13 17:13:45 -08:00
Paul Gschwendtner 58254ae419 build: update saucelabs connect version (#14930) 2019-01-25 09:49:17 -08:00
Paul Gschwendtner a8072c9ab9 build: setup bazel remote execution (#14641) 2019-01-16 11:19:48 -08:00
Paul Gschwendtner 2307489dff build: publish docs-content bazel artifacts (#14634) 2019-01-15 19:55:24 -08:00
Paul Gschwendtner 7ade500e7f build: force push publish artifacts script (#14489)
* Similarly to `angular/angular`, we should publish our artifacts using `git push --force`. This avoids the race condition where another CI job pushes to the builds repository before we try to push with our outdated `HEAD`.
2018-12-17 20:19:38 -08:00
Paul Gschwendtner c460728225 build: increase saucelabs connect timeout (#14470)
* build: increase saucelabs connect timeout

At some point we went down from a 2min wait timeout to 30seconds because we re-ran the startup script if something failed. Since re-running didn't really help and we removed it, we should move the timeout back to a longer period.

e.g. see: https://circleci.com/gh/angular/material2/25254 where it successfully acquired a tunnel, but just didn't have enough time to actually establish it.

* Switch to rewritten saucelabs version

* Update to latest saucelabs launcher version
2018-12-13 16:53:16 -08:00
Paul Gschwendtner bc563b713a build: update sauce connect (#14422) 2018-12-07 11:33:06 -08:00
Paul Gschwendtner a72d05fb36 build: fix failing nightly snapshot tests (#14395)
* build: fix failing nightly snapshot tests

* Fix comment typos
2018-12-06 12:41:42 -08:00
Paul Gschwendtner 0cacbd67d2 build: cronjob cannot install angular snapshot builds (#14332)
Apparently the script that also ran on TravisCI does not work on MacOS, nor on CircleCI because it's not guaranteed that the default awk supports storing match() results in an array that can print individual match groups.
2018-12-04 13:36:30 -08:00
Paul Gschwendtner 94ad518b09 build: fix cronjob tests not running against snapshots (#14327)
* Due to the fact that the `CIRCLE_WORKFLOW_ID` does not actually return the name of the workflow, but a unique id that is generated dynamically, the cronjob does not run against the Angular github builds.
2018-11-29 15:47:51 -08:00
Paul Gschwendtner 2633c7cffd build: setup cronjob to run tests against angular snapshots (#14217)
* Sets up a cronjob workflow that runs the local browser tests against the Angular Github snapshot builds at midnight everyday.
* No longer saves cache multiple times. This can cause unexpected behavior.
* Sorts jobs in `config.yml` to group all `tests_XX` jobs.

Closes #12516.
2018-11-27 13:02:22 -08:00
Paul Gschwendtner 4954bca555 build: remove unused retry-call script (#14220) 2018-11-26 16:51:56 -08:00
Paul Gschwendtner 039ca606c8 build: ensure tunnel identifiers are unique (#14108)
* Currently it can happen that our tunnel identifier conflicts with other tunnel identifiers from other Angular projects. A few PRs reported that their tunnel couldn't be re-opened because it was already used and closed successfully.
2018-11-14 14:19:22 -08:00
Paul Gschwendtner 3e7ae68c52 build: no longer use travis-ci (#14064) 2018-11-09 11:15:27 -08:00
Paul Gschwendtner a02e6c64f1 build: remove dashboard (#14023)
* Since we going to move from Travis to CircleCI we don't want to use the dashboard anymore. Since nobody has been
looking at the dashboard frequently, it just makes things more complicated and additionally we will be using
the Github robot in order to keep track of size changes.
2018-11-07 10:04:16 -08:00
Paul Gschwendtner 62f35dd67c build: move snapshot publish job to circleci (#13882)
Also switch to a single GitHub deploy token
2018-11-01 16:53:28 -07:00
Paul Gschwendtner 91d4c0f649 build: share release output between circle jobs (#13838)
Also support parallel Karma instances on CircleCI
2018-10-29 08:11:35 -07:00
Paul Gschwendtner b30ec56364 build: run browserstack on circleci (#13749) 2018-10-24 15:35:06 -07:00
Paul Gschwendtner 3ca3e39d59 build: update dgeni-packages version (#13772)
* Updates to the latest `dgeni-packages` version that includes: https://github.com/angular/dgeni-packages/commit/5d90fd9f31541f380a62a52fd31493b232b9585c. This allows us to remove a workaround.
* Removes the closure testing stuff that hasn't been used for months. In case we want to reintroduce testing w/ Google Closure, we should consider using Bazel or something (AFAIK there are Bazel rules for closure)
2018-10-23 12:00:11 -07:00
Paul Gschwendtner e4bf74a527 build: update saucelabs connect version (#13656) 2018-10-18 10:08:41 -07:00
Paul Gschwendtner 1ccd1eed92 build: fix cronjob snapshot jobs failing (#13595)
* Due to the fact that we modify the `package.json` in cronjobs without updating the actual lock-file, the `--frozen-lockfile` installation fails. In order to fix this, we should just re-install the dependencies after the general `yarn` installation.
2018-10-15 09:33:27 -07:00
Paul Gschwendtner b06a897b5b build: ensure dependencies are properly locked (#13482)
* Since we lock our dependencies in the `yarn.lock` file, we need to enforce that the lock file is in sync with the `package.json` file (similar as in angular/angular)
* Since we cache the dependenices & the yarn cache within Travis, it can happen that the node modules are stale (there is no checksum mechanism in Travis). In that case we need to purge the node modules and re-install.
2018-10-10 11:26:05 -07:00
Paul Gschwendtner da63c6f850 build: switch to yarn (#13362)
* build: switch to yarn

* Use more recent version of Yarn
2018-10-05 14:37:41 -07:00
vivian-hu a620fca9d8 Fix(script): schedule presubmit at same time and fix a typo in file name (#13418)
* fix(script): make the presubmit run at same time

* fix(script): fix typo in file name
2018-10-03 16:28:06 -07:00
Paul Gschwendtner 9d882a0119 build: do not e2e tests on saucelabs (#12700)
* No longer runs e2e tests inside of Saucelabs because Chrome is also installed on Travis CI and we should keep Saucelabs available for other browsers that don't run inside of Dockers or Travis.
2018-08-16 13:54:59 -07:00
Paul Gschwendtner 009f211e47 build: fix docs-content branch publish (#12690)
Currently the docs-content output will be overwritten each time a Travis job runs in another branch (e.g. `master`, `6.4.x`, `6.x`). This is because the given branches cannot be created in the `material2-docs-content´ repository.

This is not good because if we want to release a new patch version, we have no way to properly pull the docs-content data that matches the given new version. Meaning that the docs-content and the `@angular/material-examples` package might be already updated for the next `major` version and we run into runtime exceptions due to the breaking changes.
2018-08-15 14:43:20 -07:00
Paul Gschwendtner 13c141ea3a build: update saucelabs tunnel (#12689)
* Updates the Saucelabs Connect Tunnel to the most recent version that seems to include a major bug fix that should improve tunnel stability
* Changes the CircleCI resource class to the `xlarge` (similar as in angular/angular). This should speed up the Bazel builds due to more CPU threads and more RAM.
2018-08-15 14:42:11 -07:00
Paul Gschwendtner 1f9df4c907 build: test against angular snapshots (#12600) 2018-08-13 06:53:03 -07:00
Paul Gschwendtner e09ec343ef build: fix branch checkout for publish script (#12585) 2018-08-08 11:00:02 -07:00
Paul Gschwendtner 73f3f940b0 build: remove deprecated node-github api (#12420)
Switches to the newer version of `node-github` that has been renamed to `@octokit/rest`.
2018-07-31 11:13:34 -07:00
Paul Gschwendtner f9b9e25d61 build: fix dashboard deployment (#12293) 2018-07-20 08:26:39 -07:00
Paul Gschwendtner afb0ee37eb chore: remove screenshot testing (#12155)
Removes the screenshot test tool since Angular Material is visually being tested inside of Google.
2018-07-11 08:24:21 -07:00
Paul Gschwendtner fdd70823cf build: fix small browser test coverage (#11970)
* No longer just runs the tests against the first browser of a test platform (travis, saucelabs, browserstack)
* Stability is more valuable than speed (runs sequentially on CI now)
* Update Saucelabs Connect
* Remove unused spec reporter
* Update from Edge 14 to Edge 17
* Fix pixel deviations in Edge 17
2018-07-11 08:18:32 -07:00
Jeremy Elbourn 8acd5a156e build(bazel): add flatModuleIndexRedirect to material package (#10788) 2018-04-11 10:35:06 -07:00
Jeremy Elbourn 4211b39669 build(bazel): create script to run on top of ng_package output (#10776)
* build(bazel): create script to run on top of ng_package output

* Use bazel query to get targets and use ng_package replacements attr
2018-04-09 17:19:28 -07:00