build(bazel): upgrade benchmarks to protractor_web_test_suite for CI without local chrome (#26908)
PR Close #26908
This commit is contained in:
		
							parent
							
								
									3567e81175
								
							
						
					
					
						commit
						15e671ec5a
					
				| @ -1,7 +1,7 @@ | ||||
| package(default_visibility = ["//visibility:public"]) | ||||
| 
 | ||||
| load("//tools:defaults.bzl", "ng_module", "ng_rollup_bundle") | ||||
| load("//packages/bazel:index.bzl", "protractor_web_test") | ||||
| load("//packages/bazel:index.bzl", "protractor_web_test_suite") | ||||
| load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver") | ||||
| 
 | ||||
| ng_module( | ||||
| @ -50,7 +50,7 @@ ts_devserver( | ||||
|     tags = ["ivy-only"], | ||||
| ) | ||||
| 
 | ||||
| protractor_web_test( | ||||
| protractor_web_test_suite( | ||||
|     name = "perf", | ||||
|     configuration = "//:protractor-perf.conf.js", | ||||
|     data = [ | ||||
| @ -64,8 +64,6 @@ protractor_web_test( | ||||
|     on_prepare = ":protractor.on_prepare.js", | ||||
|     server = ":devserver", | ||||
|     tags = [ | ||||
|         "fixme-ivy-aot", | ||||
|         "fixme-ivy-jit", | ||||
|         "ivy-only", | ||||
|     ], | ||||
|     deps = [ | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| package(default_visibility = ["//visibility:public"]) | ||||
| 
 | ||||
| load("//tools:defaults.bzl", "ng_module", "ng_rollup_bundle") | ||||
| load("//packages/bazel:index.bzl", "protractor_web_test") | ||||
| load("//packages/bazel:index.bzl", "protractor_web_test_suite") | ||||
| load("@build_bazel_rules_typescript//:defs.bzl", "ts_devserver") | ||||
| 
 | ||||
| ng_module( | ||||
| @ -48,7 +48,7 @@ ts_devserver( | ||||
|     tags = ["ivy-only"], | ||||
| ) | ||||
| 
 | ||||
| protractor_web_test( | ||||
| protractor_web_test_suite( | ||||
|     name = "perf", | ||||
|     configuration = "//:protractor-perf.conf.js", | ||||
|     data = [ | ||||
| @ -58,8 +58,6 @@ protractor_web_test( | ||||
|     on_prepare = ":protractor.on_prepare.js", | ||||
|     server = ":devserver", | ||||
|     tags = [ | ||||
|         "fixme-ivy-aot", | ||||
|         "fixme-ivy-jit", | ||||
|         "ivy-only", | ||||
|     ], | ||||
|     deps = [ | ||||
|  | ||||
| @ -5,9 +5,6 @@ | ||||
|  * Use of this source code is governed by an MIT-style license that can be | ||||
|  * found in the LICENSE file at https://angular.io/license
 | ||||
|  */ | ||||
| 
 | ||||
| const path = require('path'); | ||||
| 
 | ||||
| const DEBUG = false; | ||||
| 
 | ||||
| const configPath = 'TMPL_config'; | ||||
| @ -32,15 +29,44 @@ function setConf(conf, name, value, msg) { | ||||
|   conf[name] = value; | ||||
| } | ||||
| 
 | ||||
| function mergeCapabilities(conf, capabilities) { | ||||
|   if (conf.capabilities) { | ||||
|     if (conf.capabilities.browserName === capabilities.browserName) { | ||||
|       // there are capabilities to merge
 | ||||
|       if (capabilities.browserName === 'chrome') { | ||||
|         conf.capabilities.chromeOptions = conf.capabilities.chromeOptions || {}; | ||||
|         conf.capabilities.chromeOptions.binary = capabilities.chromeOptions.binary; | ||||
|         conf.capabilities.chromeOptions.args = conf.capabilities.chromeOptions.args || []; | ||||
|         conf.capabilities.chromeOptions.args.push(...capabilities.chromeOptions.args); | ||||
|         console.warn( | ||||
|             `Your protractor configuration specifies capabilities for browser '${conf.capabilities.browserName}'
 | ||||
| which will be merged with capabilities provided by Bazel resulting in:`,
 | ||||
|             JSON.stringify(conf.capabilities, null, 2)); | ||||
|       } else { | ||||
|         // TODO(gmagolan): implement firefox support for protractor
 | ||||
|         throw new Error( | ||||
|             `Unexpected browserName ${capabilities.browserName} for capabilities merging`); | ||||
|       } | ||||
|     } else { | ||||
|       console.warn( | ||||
|           `Your protractor configuration specifies capabilities for browser '${conf.capabilities.browserName}' which will be overwritten by Bazel`); | ||||
|       conf.capabilities = capabilities; | ||||
|     } | ||||
|   } else { | ||||
|     conf.capabilities = capabilities; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| let conf = {}; | ||||
| 
 | ||||
| // Import the user's base protractor configuration if specified
 | ||||
| if (configPath) { | ||||
|   const baseConf = require(configPath); | ||||
|   if (!baseConf.config) { | ||||
|     throw new Error('Invalid base protractor configration. Expected config to be exported.'); | ||||
|     throw new Error('Invalid base protractor configuration. Expected config to be exported.'); | ||||
|   } | ||||
|   conf = baseConf.config; | ||||
|   if (DEBUG) console.info(`Base protractor configuration: ${JSON.stringify(conf, null, 2)}`); | ||||
| } | ||||
| 
 | ||||
| // Import the user's on prepare function if specified
 | ||||
| @ -109,8 +135,8 @@ if (process.env['WEB_TEST_METADATA']) { | ||||
|       } | ||||
|       setConf(conf, 'directConnect', true, 'is set to true for chrome'); | ||||
|       setConf(conf, 'chromeDriver', chromeDriver, 'is determined by the browsers attribute'); | ||||
|       setConf( | ||||
|           conf, 'capabilities', { | ||||
|       mergeCapabilities( | ||||
|           conf, { | ||||
|             browserName: 'chrome', | ||||
|             chromeOptions: { | ||||
|               binary: chromeBin, | ||||
| @ -131,7 +157,7 @@ if (process.env['WEB_TEST_METADATA']) { | ||||
|       // }
 | ||||
|       // setConf(conf, 'seleniumAddress', process.env.WEB_TEST_HTTP_SERVER.trim() + "/wd/hub", 'is
 | ||||
|       // configured by Bazel for firefox browser')
 | ||||
|       // setConf(conf, 'capabilities', {
 | ||||
|       // mergeCapabilities(conf, {
 | ||||
|       //   browserName: "firefox",
 | ||||
|       //   'moz:firefoxOptions': {
 | ||||
|       //     binary: firefoxBin,
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user