feat: working config version comparison

This commit is contained in:
3wc
2025-09-01 16:26:00 -04:00
parent 7f9f8f9d6a
commit 719722a25b

View File

@ -211,15 +211,44 @@ checkout as-is. Recipe commit hashes are also supported as values for
secretInfo = append(secretInfo, fmt.Sprintf("%s: %s", secStat.LocalName, secStat.Version)) secretInfo = append(secretInfo, fmt.Sprintf("%s: %s", secStat.LocalName, secStat.Version))
} }
configNames, err := client.GetConfigNamesForStack(cl, context.Background(), app.StackName()) // Get current configs from existing deployment
currentConfigNames, err := client.GetConfigNamesForStack(cl, context.Background(), app.StackName())
if err != nil { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
log.Infof("Config names: %v", currentConfigNames)
// Create map of current config base names to versions
currentConfigs := make(map[string]string)
for _, configName := range currentConfigNames {
baseName, version := client.GetConfigNameAndVersion(configName, app.StackName())
currentConfigs[baseName] = version
}
log.Infof("Configs: %v", currentConfigs)
// Get new configs from the compose specification
newConfigs := compose.Configs
var configInfo []string var configInfo []string
for _, config := range configNames { for configName := range newConfigs {
name, version := client.GetConfigNameAndVersion(config, app.StackName()) log.Debugf("Searching for abra.sh version for %s", configName)
configInfo = append(configInfo, fmt.Sprintf("%s: %s", name, version)) versionKey := strings.ToUpper(configName) + "_VERSION"
newVersion, exists := abraShEnv[versionKey]
if !exists {
log.Fatalf("No version found for config %s", configName)
}
if currentVersion, exists := currentConfigs[configName]; exists {
if currentVersion == newVersion {
configInfo = append(configInfo, fmt.Sprintf("%s: %s (unchanged)", configName, newVersion))
} else {
configInfo = append(configInfo, fmt.Sprintf("%s: %s → %s", configName, currentVersion, newVersion))
}
} else {
configInfo = append(configInfo, fmt.Sprintf("%s: %s (new)", configName, newVersion))
}
} }
var imageInfo []string var imageInfo []string