[v9.5.x] Bug: Compare semver digits for frontend packages config (#71907)

Bug: Compare `semver` digits for frontend packages config (#71829)

* Compare semver digits

* Fix lint

(cherry picked from commit 5f8ace33fb)

# Conflicts:
#	pkg/build/frontend/config_test.go
This commit is contained in:
Dimitris Sotirakis
2023-07-19 10:24:33 +03:00
committed by GitHub
parent 9dc78e3db1
commit 841cd57d4e
4 changed files with 22 additions and 3 deletions
+11 -1
View File
@@ -3,6 +3,7 @@ package frontend
import (
"fmt"
"github.com/blang/semver/v4"
"github.com/grafana/grafana/pkg/build/config"
"github.com/urfave/cli/v2"
)
@@ -22,7 +23,16 @@ func GetConfig(c *cli.Context, metadata config.Metadata) (config.Config, config.
if err != nil {
return config.Config{}, "", err
}
if metadata.GrafanaVersion != packageJSONVersion {
semverGrafanaVersion, err := semver.Parse(metadata.GrafanaVersion)
if err != nil {
return config.Config{}, "", err
}
semverPackageJSONVersion, err := semver.Parse(packageJSONVersion)
if err != nil {
return config.Config{}, "", err
}
// Check if the semver digits of the tag are not equal
if semverGrafanaVersion.FinalizeVersion() != semverPackageJSONVersion.FinalizeVersion() {
return config.Config{}, "", cli.Exit(fmt.Errorf("package.json version and input tag version differ %s != %s.\nPlease update package.json", packageJSONVersion, metadata.GrafanaVersion), 1)
}
}
+7 -2
View File
@@ -3,7 +3,6 @@ package frontend
import (
"encoding/json"
"flag"
"fmt"
"os"
"testing"
@@ -39,6 +38,13 @@ func TestGetConfig(t *testing.T) {
metadata: config.Metadata{GrafanaVersion: "10.0.0", ReleaseMode: config.ReleaseMode{Mode: config.TagMode}},
wantErr: false,
},
{
ctx: cli.NewContext(app, setFlags(t, jobs, githubToken, "", flag.NewFlagSet("flagSet", flag.ContinueOnError)), nil),
name: "custom tag, package.json doesn't match",
packageJsonVersion: "10.0.0",
metadata: config.Metadata{GrafanaVersion: "10.0.0-abcd123pre", ReleaseMode: config.ReleaseMode{Mode: config.TagMode}},
wantErr: false,
},
{
ctx: cli.NewContext(app, setFlags(t, jobs, githubToken, "", flag.NewFlagSet("flagSet", flag.ContinueOnError)), nil),
name: "package.json doesn't match tag",
@@ -68,7 +74,6 @@ func TestGetConfig(t *testing.T) {
got, _, err := GetConfig(tt.ctx, tt.metadata)
if !tt.wantErr {
fmt.Println(got.PackageVersion + " : " + tt.metadata.GrafanaVersion)
require.Equal(t, got.PackageVersion, tt.metadata.GrafanaVersion)
}