@@ -52,6 +52,14 @@ var_8: ©_bazel_config
5252 # Set up the CircleCI specific bazel configuration.
5353 run : sudo cp ./.circleci/bazel.rc /etc/bazel.bazelrc
5454
55+ # Sets up a different Docker image that includes a moe recent Firefox version which
56+ # is needed for headless testing.
57+ var_9 : &docker-firefox-image
58+ # TODO(devversion): Temporarily use a image that includes Firefox 62 because the
59+ # ngcontainer image does include an old Firefox version that does not support headless.
60+ # See the PR that fixes this: https://github.com/angular/angular/pull/26435
61+ - image : circleci/node:10.12-browsers
62+
5563# -----------------------------
5664# Container version of CircleCI
5765# -----------------------------
8593 # The available browsers are installed through the angular/ngcontainer Docker image.
8694 # ------------------------------------------------------------------------------------------
8795 tests_local_browsers :
88- docker :
89- # TODO(devversion): Temporarily use a image that includes Firefox 62 because the
90- # ngcontainer image does include an old Firefox version that does not support headless.
91- # See the PR that fixes this: https://github.com/angular/angular/pull/26435
92- - image : circleci/node:10.12-browsers
96+ docker : *docker-firefox-image
9397 resource_class : xlarge
9498 environment :
9599 TEST_PLATFORM : local
@@ -104,6 +108,23 @@ jobs:
104108
105109 - *save_cache
106110
111+ # ----------------------------------------------------------------
112+ # Job that runs the e2e tests with Protractor and Chrome w/ Xvfb. We cannot use
113+ # Chrome headless because our tests rely on APIs which are not testable in headless mode.
114+ # For example: the Fullscreen browser API.
115+ # ----------------------------------------------------------------
116+ e2e_tests :
117+ docker : *docker-firefox-image
118+ resource_class : xlarge
119+ steps :
120+ - *checkout_code
121+ - *restore_cache
122+ - *yarn_install
123+
124+ - run : xvfb-run -a --server-args='-screen 0, 1024x768x16' yarn gulp ci:e2e
125+
126+ - *save_cache
127+
107128 # ----------------------------------
108129 # Lint job. Runs the gulp lint task.
109130 # ----------------------------------
@@ -138,6 +159,10 @@ workflows:
138159 jobs :
139160 - tests_local_browsers
140161
162+ integration_tests :
163+ jobs :
164+ - e2e_tests
165+
141166 # Lint workflow. As we want to lint in one job, this is a workflow with just one job.
142167 lint :
143168 jobs :
0 commit comments