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",
}
// Bazel prod-mode allowlist. Modules in this list are built by Bazel
// in either prod mode or staging mode.
ProdMixedBuildsEnabledList = []string{}
// Staging builds should be entirely prod, plus some near-ready ones. Add the
// new ones to the first argument as needed.
StagingMixedBuildsEnabledList = append([]string{}, ProdMixedBuildsEnabledList...)
// Staging-mode allowlist. Modules in this list are only built
// by Bazel with --bazel-mode-staging. This list should contain modules
// 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:
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 {
enabledModules[enabledStagingMode] = true
}
case BazelDevMode:
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
// analysis is handled by Bazel.
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() {