Skip to content

Commit dde2164

Browse files
authored
fix: fix non helmified projects (#27)
* fix: fix non helmified projects * refactor: apply PR's comments
1 parent a750c7a commit dde2164

File tree

4 files changed

+33
-10
lines changed

4 files changed

+33
-10
lines changed

internal/models/base/base_analyzer.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,13 @@ func (a *BaseAnalyzer) GetExtraArgumentDefinitions() []models.ArgumentDefinition
2929
return []models.ArgumentDefinition{}
3030
}
3131

32-
// CompareVersions Returns 0 if the two version are equal, negative if left < right, and positive if left > right.
33-
func (a *BaseAnalyzer) CompareVersions(left string, right string) int {
34-
if len(left) > 0 && left[0] != 'v' {
35-
left = "v" + left
32+
// CompareVersions Returns 0 if the two version are equal, negative if oldVersion < newVersion, and positive if oldVersion > newVersion.
33+
func (a *BaseAnalyzer) CompareVersions(oldVersion string, newVersion string) int {
34+
if len(oldVersion) > 0 && oldVersion[0] != 'v' {
35+
oldVersion = "v" + oldVersion
3636
}
37-
if len(right) > 0 && right[0] != 'v' {
38-
right = "v" + right
37+
if len(newVersion) > 0 && newVersion[0] != 'v' {
38+
newVersion = "v" + newVersion
3939
}
40-
return semver.Compare(left, right)
40+
return semver.Compare(oldVersion, newVersion)
4141
}

internal/models/version_analyzer.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ type VersionAnalyzer interface {
55
ChangeNeedsVersionUpdate(changedFilePaths []string, extraArgs *ArgumentValues) bool
66
ReadVersion(projectRootPath string, extraArgs *ArgumentValues) (string, error)
77
GetExtraArgumentDefinitions() []ArgumentDefinition
8-
CompareVersions(left string, right string) int
8+
CompareVersions(oldVersion string, newVersion string) int
99
}

internal/models/versionanalyzers/helm_version_analyzer.go

+13
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package versionanalyzers
22

33
import (
4+
"github.com/pkg/errors"
5+
"github.com/sirupsen/logrus"
46
"gopkg.in/yaml.v3"
57
"os"
68
"path/filepath"
@@ -57,6 +59,9 @@ type helmChart struct {
5759

5860
func (a *HelmVersionAnalyzer) ReadVersion(projectRootDir string, extraArgs *models.ArgumentValues) (string, error) {
5961
rootDir := filepath.Join(projectRootDir, *(*extraArgs)[HelmArgumentKeyRootDir])
62+
if _, err := os.Stat(filepath.Join(rootDir, "Chart.yaml")); errors.Is(err, os.ErrNotExist) {
63+
return "", nil
64+
}
6065
chartFileContent, err := os.ReadFile(filepath.Join(rootDir, "Chart.yaml"))
6166
if err != nil {
6267
return "", err
@@ -72,3 +77,11 @@ func (a *HelmVersionAnalyzer) ReadVersion(projectRootDir string, extraArgs *mode
7277
func (a *HelmVersionAnalyzer) GetName() string {
7378
return versionAnalyzerNameHelm
7479
}
80+
81+
func (a *HelmVersionAnalyzer) CompareVersions(oldVersion, newVersion string) int {
82+
if oldVersion == "" {
83+
logrus.Info("old revision has no 'Chart.yaml' file")
84+
return -1
85+
}
86+
return a.BaseAnalyzer.CompareVersions(oldVersion, newVersion)
87+
}

internal/models/versionanalyzers/helm_version_analyzer_test.go

+12-2
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,14 @@ version: 1.2.3
4545
# It is recommended to use it with quotes.
4646
appVersion: "0.1.0"
4747
`
48-
utils.PanicError(os.WriteFile("./Chart.yaml", []byte(chartContent), 0644))
48+
s.NoError(os.WriteFile("./Chart.yaml", []byte(chartContent), 0644))
49+
s.NoError(os.MkdirAll("./test-dir", os.ModePerm))
4950
s.helmVersionAnalyzer = HelmVersionAnalyzer{}
5051
}
5152

5253
func (s *HelmVersionAnalyzerTestSuite) TearDownTest() {
53-
utils.PanicError(os.Remove("./Chart.yaml"))
54+
s.NoError(os.Remove("./Chart.yaml"))
55+
s.NoError(os.RemoveAll("./test-dir"))
5456
}
5557

5658
func (s *HelmVersionAnalyzerTestSuite) TestRepositoryContainsHelmVersionAnalyzer() {
@@ -116,3 +118,11 @@ func (s *HelmVersionAnalyzerTestSuite) TestVersionUpdateIsNeededWhenSomeChangesA
116118
})
117119
s.True(needsVersionUpdate)
118120
}
121+
122+
func (s *HelmVersionAnalyzerTestSuite) TestNonHelmifiedRevision() {
123+
helmRootDir := "./test-dir"
124+
version := utils.GetResultOrPanic(s.helmVersionAnalyzer.ReadVersion(".", &models.ArgumentValues{
125+
HelmArgumentKeyRootDir: &helmRootDir,
126+
}))
127+
s.Equal("", version)
128+
}

0 commit comments

Comments
 (0)