summaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
author LaMont Jones <lamontjones@google.com> 2024-10-02 08:18:52 -0700
committer LaMont Jones <lamontjones@google.com> 2024-10-02 20:08:03 +0000
commit639423daacc146457f10cf3d060bc2932dc903eb (patch)
treea65ef7a4c90f41b11c542eee55b01a891d2858dc /cmd
parent46694ccbbd2207e3346b2580206862640ca11734 (diff)
Enforce exclusive release config component directories
Enforce this requirement for delivery to aosp: - "A release config shall exist in at most one of build/release and vendor/google_shared/build/release". Bug: 349843674 Bug: 370829778 Bug: 371026851 Test: manual, TH Change-Id: Ie4bc8137f2bd10f3b90efcffe8d2c8e317dcc2fc
Diffstat (limited to 'cmd')
-rw-r--r--cmd/release_config/release_config_lib/release_config.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/cmd/release_config/release_config_lib/release_config.go b/cmd/release_config/release_config_lib/release_config.go
index adf0e62da..ee71336c5 100644
--- a/cmd/release_config/release_config_lib/release_config.go
+++ b/cmd/release_config/release_config_lib/release_config.go
@@ -280,11 +280,28 @@ func (config *ReleaseConfig) GenerateReleaseConfig(configs *ReleaseConfigs) erro
directories := []string{}
valueDirectories := []string{}
+ // These path prefixes are exclusive for a release config.
+ // "A release config shall exist in at most one of these."
+ // If we find a benefit to generalizing this, we can do so at that time.
+ exclusiveDirPrefixes := []string{
+ "build/release",
+ "vendor/google_shared/build/release",
+ }
+ var exclusiveDir string
for idx, confDir := range configs.configDirs {
if _, ok := myDirsMap[idx]; ok {
directories = append(directories, confDir)
}
if _, ok := myValueDirsMap[idx]; ok {
+ for _, dir := range exclusiveDirPrefixes {
+ if strings.HasPrefix(confDir, dir) {
+ if exclusiveDir != "" && !strings.HasPrefix(exclusiveDir, dir) {
+ return fmt.Errorf("%s is declared in both %s and %s",
+ config.Name, exclusiveDir, confDir)
+ }
+ exclusiveDir = confDir
+ }
+ }
valueDirectories = append(valueDirectories, confDir)
}
}