sort release configs when creating artifacts
Bug: 328495189 Test: manual Change-Id: I0b579c6fdbee5bb09826854dadb9f89955980ca8
This commit is contained in:
@@ -92,10 +92,10 @@ func main() {
|
|||||||
}
|
}
|
||||||
if allMake {
|
if allMake {
|
||||||
// Write one makefile per release config, using the canonical release name.
|
// Write one makefile per release config, using the canonical release name.
|
||||||
for k, _ := range configs.ReleaseConfigs {
|
for _, c := range configs.GetSortedReleaseConfigs() {
|
||||||
if k != targetRelease {
|
if c.Name != targetRelease {
|
||||||
makefilePath = filepath.Join(outputDir, fmt.Sprintf("release_config-%s-%s.mk", product, k))
|
makefilePath = filepath.Join(outputDir, fmt.Sprintf("release_config-%s-%s.mk", product, c.Name))
|
||||||
err = configs.WriteMakefile(makefilePath, k)
|
err = configs.WriteMakefile(makefilePath, c.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
@@ -120,6 +120,16 @@ func ReleaseConfigsFactory() (c *ReleaseConfigs) {
|
|||||||
return &configs
|
return &configs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (configs *ReleaseConfigs) GetSortedReleaseConfigs() (ret []*ReleaseConfig) {
|
||||||
|
for _, config := range configs.ReleaseConfigs {
|
||||||
|
ret = append(ret, config)
|
||||||
|
}
|
||||||
|
slices.SortFunc(ret, func(a, b *ReleaseConfig) int {
|
||||||
|
return cmp.Compare(a.Name, b.Name)
|
||||||
|
})
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
func ReleaseConfigMapFactory(protoPath string) (m *ReleaseConfigMap) {
|
func ReleaseConfigMapFactory(protoPath string) (m *ReleaseConfigMap) {
|
||||||
m = &ReleaseConfigMap{
|
m = &ReleaseConfigMap{
|
||||||
path: protoPath,
|
path: protoPath,
|
||||||
@@ -283,9 +293,7 @@ func (configs *ReleaseConfigs) GetReleaseConfig(name string) (*ReleaseConfig, er
|
|||||||
return nil, fmt.Errorf("Missing config %s. Trace=%v", name, trace)
|
return nil, fmt.Errorf("Missing config %s. Trace=%v", name, trace)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write the makefile for this targetRelease.
|
func (configs *ReleaseConfigs) GetAllReleaseNames() []string {
|
||||||
func (configs *ReleaseConfigs) WriteMakefile(outFile, targetRelease string) error {
|
|
||||||
makeVars := make(map[string]string)
|
|
||||||
var allReleaseNames []string
|
var allReleaseNames []string
|
||||||
for _, v := range configs.ReleaseConfigs {
|
for _, v := range configs.ReleaseConfigs {
|
||||||
allReleaseNames = append(allReleaseNames, v.Name)
|
allReleaseNames = append(allReleaseNames, v.Name)
|
||||||
@@ -294,6 +302,12 @@ func (configs *ReleaseConfigs) WriteMakefile(outFile, targetRelease string) erro
|
|||||||
slices.SortFunc(allReleaseNames, func(a, b string) int {
|
slices.SortFunc(allReleaseNames, func(a, b string) int {
|
||||||
return cmp.Compare(a, b)
|
return cmp.Compare(a, b)
|
||||||
})
|
})
|
||||||
|
return allReleaseNames
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write the makefile for this targetRelease.
|
||||||
|
func (configs *ReleaseConfigs) WriteMakefile(outFile, targetRelease string) error {
|
||||||
|
makeVars := make(map[string]string)
|
||||||
config, err := configs.GetReleaseConfig(targetRelease)
|
config, err := configs.GetReleaseConfig(targetRelease)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -356,7 +370,7 @@ func (configs *ReleaseConfigs) WriteMakefile(outFile, targetRelease string) erro
|
|||||||
data += fmt.Sprintf("# User specified TARGET_RELEASE=%s\n", targetRelease)
|
data += fmt.Sprintf("# User specified TARGET_RELEASE=%s\n", targetRelease)
|
||||||
}
|
}
|
||||||
// The variable _all_release_configs will get deleted during processing, so do not mark it read-only.
|
// The variable _all_release_configs will get deleted during processing, so do not mark it read-only.
|
||||||
data += fmt.Sprintf("_all_release_configs := %s\n", strings.Join(allReleaseNames, " "))
|
data += fmt.Sprintf("_all_release_configs := %s\n", strings.Join(configs.GetAllReleaseNames(), " "))
|
||||||
data += fmt.Sprintf("_ALL_RELEASE_FLAGS :=$= %s\n", strings.Join(names, " "))
|
data += fmt.Sprintf("_ALL_RELEASE_FLAGS :=$= %s\n", strings.Join(names, " "))
|
||||||
for _, pName := range pNames {
|
for _, pName := range pNames {
|
||||||
data += fmt.Sprintf("_ALL_RELEASE_FLAGS.PARTITIONS.%s :=$= %s\n", pName, strings.Join(partitions[pName], " "))
|
data += fmt.Sprintf("_ALL_RELEASE_FLAGS.PARTITIONS.%s :=$= %s\n", pName, strings.Join(partitions[pName], " "))
|
||||||
@@ -388,8 +402,9 @@ func (configs *ReleaseConfigs) GenerateReleaseConfigs(targetRelease string) erro
|
|||||||
configs.ReleaseConfigs[name].OtherNames = aliases
|
configs.ReleaseConfigs[name].OtherNames = aliases
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, config := range configs.ReleaseConfigs {
|
sortedReleaseConfigs := configs.GetSortedReleaseConfigs()
|
||||||
err := config.GenerateReleaseConfig(configs)
|
for _, c := range sortedReleaseConfigs {
|
||||||
|
err := c.GenerateReleaseConfig(configs)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -399,17 +414,16 @@ func (configs *ReleaseConfigs) GenerateReleaseConfigs(targetRelease string) erro
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
orc := []*rc_proto.ReleaseConfigArtifact{}
|
||||||
|
for _, c := range sortedReleaseConfigs {
|
||||||
|
if c.Name != releaseConfig.Name {
|
||||||
|
orc = append(orc, c.ReleaseConfigArtifact)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
configs.Artifact = rc_proto.ReleaseConfigsArtifact{
|
configs.Artifact = rc_proto.ReleaseConfigsArtifact{
|
||||||
ReleaseConfig: releaseConfig.ReleaseConfigArtifact,
|
ReleaseConfig: releaseConfig.ReleaseConfigArtifact,
|
||||||
OtherReleaseConfigs: func() []*rc_proto.ReleaseConfigArtifact {
|
OtherReleaseConfigs: orc,
|
||||||
orc := []*rc_proto.ReleaseConfigArtifact{}
|
|
||||||
for name, config := range configs.ReleaseConfigs {
|
|
||||||
if name != releaseConfig.Name {
|
|
||||||
orc = append(orc, config.ReleaseConfigArtifact)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return orc
|
|
||||||
}(),
|
|
||||||
ReleaseConfigMapsMap: func() map[string]*rc_proto.ReleaseConfigMap {
|
ReleaseConfigMapsMap: func() map[string]*rc_proto.ReleaseConfigMap {
|
||||||
ret := make(map[string]*rc_proto.ReleaseConfigMap)
|
ret := make(map[string]*rc_proto.ReleaseConfigMap)
|
||||||
for k, v := range configs.releaseConfigMapsMap {
|
for k, v := range configs.releaseConfigMapsMap {
|
||||||
|
Reference in New Issue
Block a user