Refactor "staging dep on prod" allowlist dep

This allows branch-specific plugins to more easily add modules to
staging or prod mode allowlists (they need not separately ensure that
staging mode is a superset of prod mode)

Bug: 254447469
Test: TH
Test: Verified that adding tzdata modules via plugin (not part of
this CL) causes many outputs under bazel-out directories

Change-Id: I5d543e262a42cce324c59e3f9880b57ca209c13c
This commit is contained in:
Chris Parsons 2022-11-04 13:26:17 -04:00 committed by Jingwen Chen
parent 0c9a276ded
commit 66fc74509f
3 changed files with 11 additions and 5 deletions

View file

@ -1339,9 +1339,12 @@ var (
"prebuilt_currysrc_org.eclipse", "prebuilt_currysrc_org.eclipse",
} }
// Bazel prod-mode allowlist. Modules in this list are built by Bazel
// in either prod mode or staging mode.
ProdMixedBuildsEnabledList = []string{} ProdMixedBuildsEnabledList = []string{}
// Staging builds should be entirely prod, plus some near-ready ones. Add the // Staging-mode allowlist. Modules in this list are only built
// new ones to the first argument as needed. // by Bazel with --bazel-mode-staging. This list should contain modules
StagingMixedBuildsEnabledList = append([]string{}, ProdMixedBuildsEnabledList...) // which will soon be added to the prod allowlist.
StagingMixedBuildsEnabledList = []string{}
) )

View file

@ -389,9 +389,12 @@ func NewBazelContext(c *config) (BazelContext, error) {
} }
case BazelStagingMode: case BazelStagingMode:
modulesDefaultToBazel = false modulesDefaultToBazel = false
// Staging mode includes all prod modules plus all staging modules.
for _, enabledProdModule := range allowlists.ProdMixedBuildsEnabledList {
enabledModules[enabledProdModule] = true
}
for _, enabledStagingMode := range allowlists.StagingMixedBuildsEnabledList { for _, enabledStagingMode := range allowlists.StagingMixedBuildsEnabledList {
enabledModules[enabledStagingMode] = true enabledModules[enabledStagingMode] = true
} }
case BazelDevMode: case BazelDevMode:
modulesDefaultToBazel = true modulesDefaultToBazel = true

View file

@ -536,7 +536,7 @@ func (c *config) mockFileSystem(bp string, fs map[string][]byte) {
// Returns true if "Bazel builds" is enabled. In this mode, part of build // Returns true if "Bazel builds" is enabled. In this mode, part of build
// analysis is handled by Bazel. // analysis is handled by Bazel.
func (c *config) IsMixedBuildsEnabled() bool { func (c *config) IsMixedBuildsEnabled() bool {
return c.BuildMode == BazelProdMode || c.BuildMode == BazelDevMode return c.BuildMode == BazelProdMode || c.BuildMode == BazelDevMode || c.BuildMode == BazelStagingMode
} }
func (c *config) SetAllowMissingDependencies() { func (c *config) SetAllowMissingDependencies() {