From e589bc6227da17bc0a6f157b2c4bb10093f3cd8f Mon Sep 17 00:00:00 2001 From: Sumit Arora Date: Thu, 24 Feb 2022 13:12:44 -0500 Subject: [PATCH] feat(devtools): added string flag for browser support (#44952) * Added `flag_browser` to toggle between different browser builds chrome and firefox * Updated build command to support new flag configuration PR Close #44952 --- devtools/projects/shell-browser/src/BUILD.bazel | 14 ++++++++++++-- package.json | 6 +++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/devtools/projects/shell-browser/src/BUILD.bazel b/devtools/projects/shell-browser/src/BUILD.bazel index 64aec49b6ad..e4087a026d7 100644 --- a/devtools/projects/shell-browser/src/BUILD.bazel +++ b/devtools/projects/shell-browser/src/BUILD.bazel @@ -4,6 +4,7 @@ load("//devtools/tools:ng_module.bzl", "ng_module") load("//devtools/tools:typescript.bzl", "ts_library") load("//tools:defaults.bzl", "esbuild") load("//devtools/tools/esbuild:index.bzl", "LINKER_PROCESSED_FW_PACKAGES") +load("@bazel_skylib//rules:common_settings.bzl", "string_flag") package(default_visibility = ["//visibility:public"]) @@ -292,14 +293,23 @@ filegroup( ], ) +string_flag( + name = "flag_browser", + build_setting_default = "chrome", + values = [ + "chrome", + "firefox", + ], +) + config_setting( name = "browser_chrome", - values = {"define": "browser=chrome"}, + flag_values = {":flag_browser": "chrome"}, ) config_setting( name = "browser_firefox", - values = {"define": "browser=firefox"}, + flag_values = {":flag_browser": "firefox"}, ) genrule( diff --git a/package.json b/package.json index eeeab14cd47..88697e04269 100644 --- a/package.json +++ b/package.json @@ -37,9 +37,9 @@ "ts-circular-deps:approve": "yarn -s ng-dev ts-circular-deps approve --config ./packages/circular-deps-test.conf.js", "check-tooling-setup": "yarn tsc --project .ng-dev/tsconfig.json", "devtools:devserver": "ibazel run //devtools/src:devserver", - "devtools:build:chrome": "bazelisk build --config snapshot //devtools/projects/shell-browser/src:prodapp --define browser=chrome", - "devtools:build:firefox": "bazelisk build --config snapshot //devtools/projects/shell-browser/src:prodapp --define browser=firefox", - "devtools:test": "bazelisk test --config snapshot //devtools/... --define browser=chrome" + "devtools:build:chrome": "bazelisk build --config snapshot --//devtools/projects/shell-browser/src:flag_browser=chrome -- devtools/projects/shell-browser/src:prodapp", + "devtools:build:firefox": "bazelisk build --config snapshot --//devtools/projects/shell-browser/src:flag_browser=firefox -- devtools/projects/shell-browser/src:prodapp", + "devtools:test": "bazelisk test --config snapshot --//devtools/projects/shell-browser/src:flag_browser=chrome -- //devtools/..." }, "// 1": "dependencies are used locally and by bazel", "dependencies": {