Make skip-cloning blueprint option public

This allows non-test integrations to set this mode.

Test: Treehugger
Change-Id: I4c69be30bd9ac917113ee8e4d0425dd40753f66f
This commit is contained in:
Chris Parsons 2023-06-13 01:12:12 +00:00
parent 6f42cdc60f
commit 1b5e9aba43
2 changed files with 10 additions and 4 deletions

View file

@ -137,8 +137,12 @@ type Context struct {
// True for any mutators that have already run over all modules
finishedMutators map[*mutatorInfo]bool
// Can be set by tests to avoid invalidating Module values after mutators.
skipCloneModulesAfterMutators bool
// If true, RunBlueprint will skip cloning modules at the end of RunBlueprint.
// Cloning modules intentionally invalidates some Module values after
// mutators run (to ensure that mutators don't set such Module values in a way
// which ruins the integrity of the graph). However, keeping Module values
// changed by mutators may be a desirable outcome (such as for tooling or tests).
SkipCloneModulesAfterMutators bool
// String values that can be used to gate build graph traversal
includeTags *IncludeTags
@ -1983,9 +1987,11 @@ func (c *Context) resolveDependencies(ctx context.Context, config interface{}) (
}
deps = append(deps, mutatorDeps...)
if !c.skipCloneModulesAfterMutators {
c.BeginEvent("clone_modules")
if !c.SkipCloneModulesAfterMutators {
c.cloneModules()
}
defer c.EndEvent("clone_modules")
c.dependenciesReady = true
})

View file

@ -283,7 +283,7 @@ func TestInvalidProvidersUsage(t *testing.T) {
ctx.RegisterTopDownMutator("parent", invalidProviderUsageParentMutator)
// Don't invalidate the parent pointer and before GenerateBuildActions.
ctx.skipCloneModulesAfterMutators = true
ctx.SkipCloneModulesAfterMutators = true
var parentBP, moduleUnderTestBP, childBP string