|
| 1 | +package main |
| 2 | + |
| 3 | +import ( |
| 4 | + "encoding/json" |
| 5 | + "os" |
| 6 | + "path/filepath" |
| 7 | + "testing" |
| 8 | + |
| 9 | + "github.com/stretchr/testify/assert" |
| 10 | + "github.com/stretchr/testify/require" |
| 11 | +) |
| 12 | + |
| 13 | +func Test_buildConfig(t *testing.T) { |
| 14 | + file, err := os.Open(filepath.Join("testdata", "all-releases.json")) |
| 15 | + require.NoError(t, err) |
| 16 | + |
| 17 | + defer file.Close() |
| 18 | + |
| 19 | + var allReleases []release |
| 20 | + err = json.NewDecoder(file).Decode(&allReleases) |
| 21 | + require.NoError(t, err) |
| 22 | + |
| 23 | + minAllowedVersion := version{major: 1, minor: 51, patch: 0} |
| 24 | + |
| 25 | + config, err := buildConfig(allReleases, minAllowedVersion) |
| 26 | + require.NoError(t, err) |
| 27 | + |
| 28 | + expected := &actionConfig{MinorVersionToConfig: map[string]versionConfig{ |
| 29 | + "latest": {Error: "", TargetVersion: "v1.63.4", AssetURL: "https://github.com/golangci/golangci-lint/releases/download/v1.63.4/golangci-lint-1.63.4-linux-amd64.tar.gz"}, |
| 30 | + "v1.3": {Error: "golangci-lint version 'v1.3' isn't supported: we support only v1.51.0 and later versions"}, |
| 31 | + "v1.4": {Error: "golangci-lint version 'v1.4' isn't supported: we support only v1.51.0 and later versions"}, |
| 32 | + "v1.5": {Error: "golangci-lint version 'v1.5' isn't supported: we support only v1.51.0 and later versions"}, |
| 33 | + "v1.6": {Error: "golangci-lint version 'v1.6' isn't supported: we support only v1.51.0 and later versions"}, |
| 34 | + "v1.7": {Error: "golangci-lint version 'v1.7' isn't supported: we support only v1.51.0 and later versions"}, |
| 35 | + "v1.8": {Error: "golangci-lint version 'v1.8' isn't supported: we support only v1.51.0 and later versions"}, |
| 36 | + "v1.9": {Error: "golangci-lint version 'v1.9' isn't supported: we support only v1.51.0 and later versions"}, |
| 37 | + "v1.10": {Error: "golangci-lint version 'v1.10' isn't supported: we support only v1.51.0 and later versions"}, |
| 38 | + "v1.11": {Error: "golangci-lint version 'v1.11' isn't supported: we support only v1.51.0 and later versions"}, |
| 39 | + "v1.12": {Error: "golangci-lint version 'v1.12' isn't supported: we support only v1.51.0 and later versions"}, |
| 40 | + "v1.13": {Error: "golangci-lint version 'v1.13' isn't supported: we support only v1.51.0 and later versions"}, |
| 41 | + "v1.14": {Error: "golangci-lint version 'v1.14' isn't supported: we support only v1.51.0 and later versions"}, |
| 42 | + "v1.15": {Error: "golangci-lint version 'v1.15' isn't supported: we support only v1.51.0 and later versions"}, |
| 43 | + "v1.16": {Error: "golangci-lint version 'v1.16' isn't supported: we support only v1.51.0 and later versions"}, |
| 44 | + "v1.17": {Error: "golangci-lint version 'v1.17' isn't supported: we support only v1.51.0 and later versions"}, |
| 45 | + "v1.18": {Error: "golangci-lint version 'v1.18' isn't supported: we support only v1.51.0 and later versions"}, |
| 46 | + "v1.19": {Error: "golangci-lint version 'v1.19' isn't supported: we support only v1.51.0 and later versions"}, |
| 47 | + "v1.20": {Error: "golangci-lint version 'v1.20' isn't supported: we support only v1.51.0 and later versions"}, |
| 48 | + "v1.21": {Error: "golangci-lint version 'v1.21' isn't supported: we support only v1.51.0 and later versions"}, |
| 49 | + "v1.22": {Error: "golangci-lint version 'v1.22' isn't supported: we support only v1.51.0 and later versions"}, |
| 50 | + "v1.23": {Error: "golangci-lint version 'v1.23' isn't supported: we support only v1.51.0 and later versions"}, |
| 51 | + "v1.24": {Error: "golangci-lint version 'v1.24' isn't supported: we support only v1.51.0 and later versions"}, |
| 52 | + "v1.25": {Error: "golangci-lint version 'v1.25' isn't supported: we support only v1.51.0 and later versions"}, |
| 53 | + "v1.26": {Error: "golangci-lint version 'v1.26' isn't supported: we support only v1.51.0 and later versions"}, |
| 54 | + "v1.27": {Error: "golangci-lint version 'v1.27' isn't supported: we support only v1.51.0 and later versions"}, |
| 55 | + "v1.28": {Error: "golangci-lint version 'v1.28' isn't supported: we support only v1.51.0 and later versions"}, |
| 56 | + "v1.29": {Error: "golangci-lint version 'v1.29' isn't supported: we support only v1.51.0 and later versions"}, |
| 57 | + "v1.30": {Error: "golangci-lint version 'v1.30' isn't supported: we support only v1.51.0 and later versions"}, |
| 58 | + "v1.31": {Error: "golangci-lint version 'v1.31' isn't supported: we support only v1.51.0 and later versions"}, |
| 59 | + "v1.32": {Error: "golangci-lint version 'v1.32' isn't supported: we support only v1.51.0 and later versions"}, |
| 60 | + "v1.33": {Error: "golangci-lint version 'v1.33' isn't supported: we support only v1.51.0 and later versions"}, |
| 61 | + "v1.34": {Error: "golangci-lint version 'v1.34' isn't supported: we support only v1.51.0 and later versions"}, |
| 62 | + "v1.35": {Error: "golangci-lint version 'v1.35' isn't supported: we support only v1.51.0 and later versions"}, |
| 63 | + "v1.36": {Error: "golangci-lint version 'v1.36' isn't supported: we support only v1.51.0 and later versions"}, |
| 64 | + "v1.37": {Error: "golangci-lint version 'v1.37' isn't supported: we support only v1.51.0 and later versions"}, |
| 65 | + "v1.38": {Error: "golangci-lint version 'v1.38' isn't supported: we support only v1.51.0 and later versions"}, |
| 66 | + "v1.39": {Error: "golangci-lint version 'v1.39' isn't supported: we support only v1.51.0 and later versions"}, |
| 67 | + "v1.40": {Error: "golangci-lint version 'v1.40' isn't supported: we support only v1.51.0 and later versions"}, |
| 68 | + "v1.41": {Error: "golangci-lint version 'v1.41' isn't supported: we support only v1.51.0 and later versions"}, |
| 69 | + "v1.42": {Error: "golangci-lint version 'v1.42' isn't supported: we support only v1.51.0 and later versions"}, |
| 70 | + "v1.43": {Error: "golangci-lint version 'v1.43' isn't supported: we support only v1.51.0 and later versions"}, |
| 71 | + "v1.44": {Error: "golangci-lint version 'v1.44' isn't supported: we support only v1.51.0 and later versions"}, |
| 72 | + "v1.45": {Error: "golangci-lint version 'v1.45' isn't supported: we support only v1.51.0 and later versions"}, |
| 73 | + "v1.46": {Error: "golangci-lint version 'v1.46' isn't supported: we support only v1.51.0 and later versions"}, |
| 74 | + "v1.47": {Error: "golangci-lint version 'v1.47' isn't supported: we support only v1.51.0 and later versions"}, |
| 75 | + "v1.48": {Error: "golangci-lint version 'v1.48' isn't supported: we support only v1.51.0 and later versions"}, |
| 76 | + "v1.49": {Error: "golangci-lint version 'v1.49' isn't supported: we support only v1.51.0 and later versions"}, |
| 77 | + "v1.50": {Error: "golangci-lint version 'v1.50' isn't supported: we support only v1.51.0 and later versions"}, |
| 78 | + "v1.51": {Error: "", TargetVersion: "v1.51.2", AssetURL: "https://github.com/golangci/golangci-lint/releases/download/v1.51.2/golangci-lint-1.51.2-linux-amd64.tar.gz"}, |
| 79 | + "v1.52": {Error: "", TargetVersion: "v1.52.2", AssetURL: "https://github.com/golangci/golangci-lint/releases/download/v1.52.2/golangci-lint-1.52.2-linux-amd64.tar.gz"}, |
| 80 | + "v1.53": {Error: "", TargetVersion: "v1.53.3", AssetURL: "https://github.com/golangci/golangci-lint/releases/download/v1.53.3/golangci-lint-1.53.3-linux-amd64.tar.gz"}, |
| 81 | + "v1.54": {Error: "", TargetVersion: "v1.54.2", AssetURL: "https://github.com/golangci/golangci-lint/releases/download/v1.54.2/golangci-lint-1.54.2-linux-amd64.tar.gz"}, |
| 82 | + "v1.55": {Error: "", TargetVersion: "v1.55.2", AssetURL: "https://github.com/golangci/golangci-lint/releases/download/v1.55.2/golangci-lint-1.55.2-linux-amd64.tar.gz"}, |
| 83 | + "v1.56": {Error: "", TargetVersion: "v1.56.2", AssetURL: "https://github.com/golangci/golangci-lint/releases/download/v1.56.2/golangci-lint-1.56.2-linux-amd64.tar.gz"}, |
| 84 | + "v1.57": {Error: "", TargetVersion: "v1.57.2", AssetURL: "https://github.com/golangci/golangci-lint/releases/download/v1.57.2/golangci-lint-1.57.2-linux-amd64.tar.gz"}, |
| 85 | + "v1.58": {Error: "", TargetVersion: "v1.58.2", AssetURL: "https://github.com/golangci/golangci-lint/releases/download/v1.58.2/golangci-lint-1.58.2-linux-amd64.tar.gz"}, |
| 86 | + "v1.59": {Error: "", TargetVersion: "v1.59.1", AssetURL: "https://github.com/golangci/golangci-lint/releases/download/v1.59.1/golangci-lint-1.59.1-linux-amd64.tar.gz"}, |
| 87 | + "v1.60": {Error: "", TargetVersion: "v1.60.3", AssetURL: "https://github.com/golangci/golangci-lint/releases/download/v1.60.3/golangci-lint-1.60.3-linux-amd64.tar.gz"}, |
| 88 | + "v1.61": {Error: "", TargetVersion: "v1.61.0", AssetURL: "https://github.com/golangci/golangci-lint/releases/download/v1.61.0/golangci-lint-1.61.0-linux-amd64.tar.gz"}, |
| 89 | + "v1.62": {Error: "", TargetVersion: "v1.62.2", AssetURL: "https://github.com/golangci/golangci-lint/releases/download/v1.62.2/golangci-lint-1.62.2-linux-amd64.tar.gz"}, |
| 90 | + "v1.63": {Error: "", TargetVersion: "v1.63.4", AssetURL: "https://github.com/golangci/golangci-lint/releases/download/v1.63.4/golangci-lint-1.63.4-linux-amd64.tar.gz"}, |
| 91 | + }} |
| 92 | + |
| 93 | + assert.Equal(t, expected, config) |
| 94 | +} |
0 commit comments