[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:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user