@@ -14,29 +14,39 @@ import (
14
14
"github.com/PingCAP-QE/ee-apps/tibuild/internal/database/ent"
15
15
entdevbuild "github.com/PingCAP-QE/ee-apps/tibuild/internal/database/ent/devbuild"
16
16
"github.com/PingCAP-QE/ee-apps/tibuild/internal/service/gen/devbuild"
17
+ "github.com/PingCAP-QE/ee-apps/tibuild/pkg/config"
17
18
)
18
19
19
20
// devbuild service example implementation.
20
21
// The example methods log the requests and return zero values.
21
22
type devbuildsrvc struct {
22
- logger * zerolog.Logger
23
- dbClient * ent.Client
24
- productRepoMap map [string ]string
25
- ghClient * github.Client
26
- tektonClient tektonClient
27
- jenkinsClient * gojenkins.Jenkins
28
- tknListenerURL string
23
+ logger * zerolog.Logger
24
+ dbClient * ent.Client
25
+ productRepoMap map [string ]string
26
+ ghClient * github.Client
27
+ tektonCloudEventClient cloudevents.Client
28
+ jenkinsClient * gojenkins.Jenkins
29
29
}
30
30
31
- type tektonClient struct {
32
- client cloudevents.Client
33
- listenerURL string
34
- }
31
+ func NewDevbuild (logger * zerolog.Logger , cfg * config.Service ) devbuild.Service {
32
+ dbClient , err := newStoreClient (cfg .Store )
33
+ if err != nil {
34
+ logger .Err (err ).Msg ("failed to create store client" )
35
+ return nil
36
+ }
37
+
38
+ client , err := cloudevents .NewClientHTTP (cloudevents .WithTarget (cfg .Tekton .CloudeventEndpoint ))
39
+ if err != nil {
40
+ logger .Err (err ).Msg ("failed to create cloud event client" )
41
+ return nil
42
+ }
35
43
36
- func NewDevbuild (logger * zerolog.Logger , client * ent.Client ) devbuild.Service {
37
44
return & devbuildsrvc {
38
- logger : logger ,
39
- dbClient : client ,
45
+ logger : logger ,
46
+ dbClient : dbClient ,
47
+ productRepoMap : map [string ]string {"pd" : "tikv/pd" },
48
+ ghClient : github .NewClientWithEnvProxy ().WithAuthToken (cfg .Github .Token ),
49
+ tektonCloudEventClient : client ,
40
50
}
41
51
}
42
52
@@ -177,3 +187,17 @@ func (s *devbuildsrvc) Rerun(ctx context.Context, p *devbuild.RerunPayload) (res
177
187
178
188
return transformDevBuild (newBuild ), nil
179
189
}
190
+
191
+ func newStoreClient (cfg config.Store ) (* ent.Client , error ) {
192
+ db , err := ent .Open (cfg .Driver , cfg .DSN )
193
+ if err != nil {
194
+ return nil , err
195
+ }
196
+
197
+ // Run the auto migration tool.
198
+ if err := db .Schema .Create (context .Background ()); err != nil {
199
+ return nil , err
200
+ }
201
+
202
+ return db , nil
203
+ }
0 commit comments