fix: support downgrade/upgrade for unknown versions
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2021-10-15 09:57:36 +02:00
parent e820e0219d
commit 0615c3f745
2 changed files with 49 additions and 37 deletions

View File

@ -62,10 +62,6 @@ data beforehand - see "abra app backup <app>" for more.
logrus.Fatal(err)
}
if deployedVersion == "" {
logrus.Fatalf("failed to determine version of deployed '%s'", app.Name)
}
if !isDeployed {
logrus.Fatalf("'%s' is not deployed?", app.Name)
}
@ -76,22 +72,30 @@ data beforehand - see "abra app backup <app>" for more.
}
var availableDowngrades []string
for _, version := range versions {
parsedDeployedVersion, err := tagcmp.Parse(deployedVersion)
if err != nil {
logrus.Fatal(err)
}
parsedVersion, err := tagcmp.Parse(version)
if err != nil {
logrus.Fatal(err)
}
if parsedVersion != parsedDeployedVersion && parsedVersion.IsLessThan(parsedDeployedVersion) {
availableDowngrades = append(availableDowngrades, version)
}
if deployedVersion == "" {
deployedVersion = "unknown"
availableDowngrades = versions
logrus.Warnf("failed to determine version of deployed '%s'", app.Name)
}
if len(availableDowngrades) == 0 {
logrus.Fatal("no available downgrades, you're on latest")
if deployedVersion != "unknown" {
for _, version := range versions {
parsedDeployedVersion, err := tagcmp.Parse(deployedVersion)
if err != nil {
logrus.Fatal(err)
}
parsedVersion, err := tagcmp.Parse(version)
if err != nil {
logrus.Fatal(err)
}
if parsedVersion != parsedDeployedVersion && parsedVersion.IsLessThan(parsedDeployedVersion) {
availableDowngrades = append(availableDowngrades, version)
}
}
if len(availableDowngrades) == 0 {
logrus.Fatal("no available downgrades, you're on latest")
}
}
// FIXME: jeezus golang why do you not have a list reverse function