angular-cn/tools/ngcontainer
Alex Eagle 30d6233e83 build: update ngcontainer to bazel 0.18.0 (#26465) (#26488)
* build: update ngcontainer to bazel 0.18.0

* build: update skylint to bazel 0.18

use .bazelignore file to ignore node_modules directory

PR Close #26488
2018-10-19 20:59:29 -07:00
..
Dockerfile build: update ngcontainer to bazel 0.18.0 (#26465) (#26488) 2018-10-19 20:59:29 -07:00
README.md build: update ngcontainer to bazel 0.18.0 (#26465) (#26488) 2018-10-19 20:59:29 -07:00
publish.sh build: move ngcontainer sources to angular/angular (#23374) 2018-04-13 16:27:59 -07:00

README.md

ngcontainer

This docker container provides everything needed to build and test Angular applications:

  • node 10.9.0
  • npm 6.2.0
  • yarn 1.9.2
  • Java 8 (for Closure Compiler and Bazel)
  • Bazel build tool v0.18.0 - http://bazel.build
  • Google Chrome 69.0.3497.81
  • Mozilla Firefox 47.0.1
  • xvfb (virtual framebuffer) for headless testing
  • Brotli compression utility, making smaller files than gzip

By using this, you avoid installation steps in your CI scripts and get a more consistent dev environment.

Example

See https://github.com/angular/closure-demo/blob/master/.circleci/config.yml where this container is used in CircleCI.

To run locally:

$ docker run -it --rm angular/ngcontainer

Running tests

Any program that needs to talk to a browser (eg. protractor) should be run under xvfb when executing on a headless machine like on CI. The nice way to factor this is to have your top-level test command which you run locally:

$ yarn test

Then in your CI configuration, you'd run

$ xvfb-run -a yarn test

For Developers

Install Docker on your machine in order to build/pull/push this image.

Get the teamangular password from http://valentine and log in:

$ docker login

Publish a new version:

$ tools/ngcontainer/publish.sh [tag eg. 0.2.3]