mirror of
https://github.com/helm/helm.git
synced 2026-05-28 04:35:48 -04:00
Merge pull request #8932 from wawa0210/fix-8924
helm search supports semver pre version numbers starting with 0
This commit is contained in:
commit
5436aeb0e5
5 changed files with 56 additions and 4 deletions
|
|
@ -154,16 +154,26 @@ func (o *searchRepoOptions) applyConstraint(res []*search.Result) ([]*search.Res
|
|||
|
||||
data := res[:0]
|
||||
foundNames := map[string]bool{}
|
||||
appendSearchResults := func(res *search.Result) {
|
||||
data = append(data, res)
|
||||
if !o.versions {
|
||||
foundNames[res.Name] = true // If user hasn't requested all versions, only show the latest that matches
|
||||
}
|
||||
}
|
||||
for _, r := range res {
|
||||
if _, found := foundNames[r.Name]; found {
|
||||
continue
|
||||
}
|
||||
v, err := semver.NewVersion(r.Chart.Version)
|
||||
if err != nil || constraint.Check(v) {
|
||||
data = append(data, r)
|
||||
if !o.versions {
|
||||
foundNames[r.Name] = true // If user hasn't requested all versions, only show the latest that matches
|
||||
|
||||
if err != nil {
|
||||
// If the current version number check appears ErrSegmentStartsZero or ErrInvalidPrerelease error and not devel mode, ingore
|
||||
if (err == semver.ErrSegmentStartsZero || err == semver.ErrInvalidPrerelease) && !o.devel {
|
||||
continue
|
||||
}
|
||||
appendSearchResults(r)
|
||||
} else if constraint.Check(v) {
|
||||
appendSearchResults(r)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -68,6 +68,14 @@ func TestSearchRepositoriesCmd(t *testing.T) {
|
|||
name: "search for 'maria', expect valid json output",
|
||||
cmd: "search repo maria --output json",
|
||||
golden: "output/search-output-json.txt",
|
||||
}, {
|
||||
name: "search for 'maria', expect one match with semver begin with zero development version",
|
||||
cmd: "search repo maria --devel",
|
||||
golden: "output/search-semver-pre-zero-devel-release.txt",
|
||||
}, {
|
||||
name: "search for 'nginx-ingress', expect one match with invalid development pre version",
|
||||
cmd: "search repo nginx-ingress --devel",
|
||||
golden: "output/search-semver-pre-invalid-release.txt",
|
||||
}, {
|
||||
name: "search for 'alpine', expect valid yaml output",
|
||||
cmd: "search repo alpine --output yaml",
|
||||
|
|
|
|||
|
|
@ -55,3 +55,33 @@ entries:
|
|||
- name: Bitnami
|
||||
email: containers@bitnami.com
|
||||
icon: ""
|
||||
- name: mariadb
|
||||
url: https://charts.helm.sh/stable/mariadb-0.3.0-0565674.tgz
|
||||
checksum: 65229f6de44a2be9f215d11dbff311673fc8ba56
|
||||
home: https://mariadb.org
|
||||
sources:
|
||||
- https://github.com/bitnami/bitnami-docker-mariadb
|
||||
version: 0.3.0-0565674
|
||||
description: Chart for MariaDB
|
||||
keywords:
|
||||
- mariadb
|
||||
- mysql
|
||||
- database
|
||||
- sql
|
||||
maintainers:
|
||||
- name: Bitnami
|
||||
email: containers@bitnami.com
|
||||
icon: ""
|
||||
nginx-ingress:
|
||||
- name: nginx-ingress
|
||||
url: https://github.com/kubernetes/ingress-nginx/ingress-a.b.c.sdfsdf.tgz
|
||||
checksum: 25229f6de44a2be9f215d11dbff31167ddc8ba56
|
||||
home: https://github.com/kubernetes/ingress-nginx
|
||||
sources:
|
||||
- https://github.com/kubernetes/ingress-nginx
|
||||
version: a.b.c.sdfsdf
|
||||
description: Chart for nginx-ingress
|
||||
keywords:
|
||||
- ingress
|
||||
- nginx
|
||||
icon: ""
|
||||
|
|
|
|||
2
cmd/helm/testdata/output/search-semver-pre-invalid-release.txt
vendored
Normal file
2
cmd/helm/testdata/output/search-semver-pre-invalid-release.txt
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
NAME CHART VERSION APP VERSION DESCRIPTION
|
||||
testing/nginx-ingress a.b.c.sdfsdf Chart for nginx-ingress
|
||||
2
cmd/helm/testdata/output/search-semver-pre-zero-devel-release.txt
vendored
Normal file
2
cmd/helm/testdata/output/search-semver-pre-zero-devel-release.txt
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
NAME CHART VERSION APP VERSION DESCRIPTION
|
||||
testing/mariadb 0.3.0-0565674 Chart for MariaDB
|
||||
Loading…
Reference in a new issue