Skip to content

Commit a585c86

Browse files
committed
tests: github action assets generation
1 parent a2ef9ee commit a585c86

File tree

5 files changed

+13741
-4
lines changed

5 files changed

+13741
-4
lines changed

scripts/gen_github_action_config/go.mod

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,13 @@ go 1.21.0
44

55
require (
66
github.com/shurcooL/githubv4 v0.0.0-20240429030203-be2daab69064
7+
github.com/stretchr/testify v1.10.0
78
golang.org/x/oauth2 v0.25.0
89
)
910

10-
require github.com/shurcooL/graphql v0.0.0-20230722043721-ed46e5a46466 // indirect
11+
require (
12+
github.com/davecgh/go-spew v1.1.1 // indirect
13+
github.com/pmezard/go-difflib v1.0.0 // indirect
14+
github.com/shurcooL/graphql v0.0.0-20230722043721-ed46e5a46466 // indirect
15+
gopkg.in/yaml.v3 v3.0.1 // indirect
16+
)

scripts/gen_github_action_config/go.sum

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scripts/gen_github_action_config/main.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,9 @@ func generate(ctx context.Context) error {
8787
return fmt.Errorf("failed to fetch all releases: %w", err)
8888
}
8989

90-
cfg, err := buildConfig(allReleases)
90+
minAllowedVersion := version{major: 1, minor: 14, patch: 0}
91+
92+
cfg, err := buildConfig(allReleases, minAllowedVersion)
9193
if err != nil {
9294
return fmt.Errorf("failed to build config: %w", err)
9395
}
@@ -155,7 +157,7 @@ func fetchAllReleases(ctx context.Context) ([]release, error) {
155157
return allReleases, nil
156158
}
157159

158-
func buildConfig(releases []release) (*actionConfig, error) {
160+
func buildConfig(releases []release, minAllowedVersion version) (*actionConfig, error) {
159161
versionToRelease := map[version]release{}
160162

161163
for _, rel := range releases {
@@ -182,7 +184,6 @@ func buildConfig(releases []release) (*actionConfig, error) {
182184
}
183185

184186
minorVersionToConfig := map[string]versionConfig{}
185-
minAllowedVersion := version{major: 1, minor: 14, patch: 0}
186187

187188
latestVersion := version{}
188189
latestVersionConfig := versionConfig{}
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
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

Comments
 (0)