From e3e7905f07a2c1b672f22b5f3bc1dae26f831fe5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E7=9B=B8=E8=BD=A9?= <9570112+nauxliu@users.noreply.github.com> Date: Thu, 6 Jun 2019 11:30:22 +0800 Subject: [PATCH] Sort requirements alphabetically by name. (#659) --- pkg/state/chart_dependency.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pkg/state/chart_dependency.go b/pkg/state/chart_dependency.go index f731237c..c8ceda06 100644 --- a/pkg/state/chart_dependency.go +++ b/pkg/state/chart_dependency.go @@ -9,6 +9,7 @@ import ( "io/ioutil" "os" "path/filepath" + "sort" "strings" ) @@ -49,6 +50,8 @@ type ChartRequirements struct { type ChartLockedRequirements struct { ResolvedDependencies []ResolvedChartDependency `yaml:"dependencies"` + Digest string `yaml:"digest"` + Generated string `yaml:"generated"` } func (d *UnresolvedDependencies) Add(chart, url, versionConstraint string) error { @@ -328,6 +331,22 @@ func (m *chartDependencyManager) Update(shell helmexec.DependencyUpdater, wd str return nil, err } + // Sort requirements alphabetically by name. + lockedReqs := &ChartLockedRequirements{} + if err := yaml.Unmarshal(updatedLockFileContent, lockedReqs); err != nil { + return nil, err + } + + sort.Slice(lockedReqs.ResolvedDependencies, func(i, j int) bool { + return lockedReqs.ResolvedDependencies[i].ChartName < lockedReqs.ResolvedDependencies[j].ChartName + }) + + updatedLockFileContent, err = yaml.Marshal(lockedReqs) + + if err != nil { + return nil, err + } + // Commit the lock file if and only if everything looks ok if err := m.writeBytes(lockFile, updatedLockFileContent); err != nil { return nil, err