forked from kyma-project/test-infra
-
Notifications
You must be signed in to change notification settings - Fork 0
/
components_test.go
221 lines (213 loc) · 8.21 KB
/
components_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
package kyma
import (
"path"
"testing"
"github.com/kyma-project/test-infra/development/tools/jobs/releases"
"github.com/kyma-project/test-infra/development/tools/jobs/tester"
"github.com/kyma-project/test-infra/development/tools/jobs/tester/jobsuite"
)
const (
jobBasePath = "./../../../../prow/jobs/"
)
var components = []struct {
path string
image string
suite func(config *jobsuite.Config) jobsuite.Suite
additionalOptions []jobsuite.Option
}{
{path: "apiserver-proxy", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
},
},
{path: "application-broker", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
},
},
{path: "application-connectivity-certs-setup-job", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
},
},
{path: "application-connectivity-validator", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
},
},
{path: "application-gateway", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
},
},
{path: "application-operator", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
},
},
{path: "application-registry", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
},
},
{path: "compass-runtime-agent", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
},
},
{path: "connection-token-handler", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
},
},
{path: "connector-service", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
},
},
{path: "console-backend-service", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
jobsuite.RunIfChanged("components/console-backend-service/main.go", "scripts/go-dep.mk"),
},
},
{path: "dex-static-user-configurer", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
},
},
{path: "iam-kubeconfig-service", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
},
},
{path: "istio-installer", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
},
},
{path: "kyma-operator", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
},
},
{path: "permission-controller", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
},
},
{path: "service-binding-usage-controller", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
jobsuite.AllReleases(),
},
},
{path: "xip-patch", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
jobsuite.AllReleases(),
},
},
{path: "function-controller", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
jobsuite.AllReleases(),
},
},
{path: "function-runtimes", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
jobsuite.AllReleases(),
},
},
{path: "event-service", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
jobsuite.AllReleases(),
},
},
{path: "nats-init", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
jobsuite.AllReleases(),
jobsuite.Optional(),
},
},
{path: "uaa-activator", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
jobsuite.AllReleases(),
},
},
{path: "event-sources", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
jobsuite.AllReleases(),
},
},
{path: "event-publisher-proxy", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
jobsuite.AllReleases(),
},
},
{path: "eventing-controller", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
jobsuite.AllReleases(),
},
},
{path: "nats-operator", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
jobsuite.AllReleases(),
},
},
{path: "busola-migrator", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
jobsuite.Since(releases.Release122),
jobsuite.Optional(),
},
},
{path: "central-application-gateway", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
jobsuite.Since(releases.Release123),
jobsuite.Optional(),
},
},
{path: "central-application-connectivity-validator", image: tester.ImageGolangKubebuilder2BuildpackLatest, suite: tester.NewGenericComponentSuite,
additionalOptions: []jobsuite.Option{
jobsuite.JobFileSuffix("generic"),
jobsuite.Since(releases.Release123),
jobsuite.Optional(),
},
},
}
func TestComponentJobs(t *testing.T) {
testedConfigurations := make(map[string]struct{})
repos := map[string]struct{}{}
for _, component := range components {
t.Run(component.path, func(t *testing.T) {
opts := []jobsuite.Option{
jobsuite.Component(component.path, component.image),
jobsuite.KymaRepo(),
jobsuite.AllReleases(),
}
opts = append(opts, component.additionalOptions...)
cfg := jobsuite.NewConfig(opts...)
suite := component.suite
if suite == nil {
suite = tester.NewComponentSuite
}
ts := suite(cfg)
if pathProvider, ok := ts.(jobsuite.JobConfigPathProvider); ok {
testedConfigurations[path.Clean(pathProvider.JobConfigPath())] = struct{}{}
}
repos[cfg.Repository] = struct{}{}
ts.Run(t)
})
}
t.Run("All Files covered by test", jobsuite.CheckFilesAreTested(repos, testedConfigurations, jobBasePath, []string{"components"}))
}