@@ -6,15 +6,27 @@ import (
6
6
"fmt"
7
7
"time"
8
8
9
- "github.com/go-gorp/gorp"
10
-
11
9
"github.com/ovh/cds/sdk"
12
10
"github.com/ovh/cds/sdk/log"
13
11
)
14
12
15
- func publishRunWorkflow (ctx context.Context , payload interface {}, key , workflowName , appName , pipName , envName string , num int64 , sub int64 , status string , tags []sdk.WorkflowRunTag , eventIntegrations []sdk.ProjectIntegration ) {
16
- eventIntegrationsID := make ([]int64 , len (eventIntegrations ))
17
- for i , eventIntegration := range eventIntegrations {
13
+ type publishWorkflowRunData struct {
14
+ projectKey string
15
+ workflowName string
16
+ applicationName string
17
+ pipelineName string
18
+ environmentName string
19
+ workflowRunNum int64
20
+ workflowRunSubNum int64
21
+ status string
22
+ workflowRunTags []sdk.WorkflowRunTag
23
+ eventIntegrations []sdk.ProjectIntegration
24
+ workflowNodeRunID int64
25
+ }
26
+
27
+ func publishRunWorkflow (ctx context.Context , payload interface {}, data publishWorkflowRunData ) {
28
+ eventIntegrationsID := make ([]int64 , len (data .eventIntegrations ))
29
+ for i , eventIntegration := range data .eventIntegrations {
18
30
eventIntegrationsID [i ] = eventIntegration .ID
19
31
}
20
32
@@ -25,18 +37,18 @@ func publishRunWorkflow(ctx context.Context, payload interface{}, key, workflowN
25
37
CDSName : cdsname ,
26
38
EventType : fmt .Sprintf ("%T" , payload ),
27
39
Payload : bts ,
28
- ProjectKey : key ,
29
- ApplicationName : appName ,
30
- PipelineName : pipName ,
31
- WorkflowName : workflowName ,
32
- EnvironmentName : envName ,
33
- WorkflowRunNum : num ,
34
- WorkflowRunNumSub : sub ,
35
- Status : status ,
36
- Tags : tags ,
40
+ ProjectKey : data . projectKey ,
41
+ ApplicationName : data . applicationName ,
42
+ PipelineName : data . pipelineName ,
43
+ WorkflowName : data . workflowName ,
44
+ EnvironmentName : data . environmentName ,
45
+ WorkflowRunNum : data . workflowRunNum ,
46
+ WorkflowRunNumSub : data . workflowRunSubNum ,
47
+ Status : data . status ,
48
+ Tags : data . workflowRunTags ,
37
49
EventIntegrationsID : eventIntegrationsID ,
38
50
}
39
- publishEvent (ctx , event )
51
+ _ = publishEvent (ctx , event )
40
52
}
41
53
42
54
// PublishWorkflowRun publish event on a workflow run
@@ -51,7 +63,16 @@ func PublishWorkflowRun(ctx context.Context, wr sdk.WorkflowRun, projectKey stri
51
63
LastModifiedNano : wr .LastModified .UnixNano (),
52
64
Tags : wr .Tags ,
53
65
}
54
- publishRunWorkflow (ctx , e , projectKey , wr .Workflow .Name , "" , "" , "" , wr .Number , wr .LastSubNumber , wr .Status , wr .Tags , wr .Workflow .EventIntegrations )
66
+ data := publishWorkflowRunData {
67
+ projectKey : projectKey ,
68
+ workflowName : wr .Workflow .Name ,
69
+ workflowRunNum : wr .Number ,
70
+ workflowRunSubNum : wr .LastSubNumber ,
71
+ status : wr .Status ,
72
+ workflowRunTags : wr .Tags ,
73
+ eventIntegrations : wr .Workflow .EventIntegrations ,
74
+ }
75
+ publishRunWorkflow (ctx , e , data )
55
76
}
56
77
57
78
// PublishWorkflowNodeRun publish event on a workflow node run
@@ -157,19 +178,45 @@ func PublishWorkflowNodeRun(ctx context.Context, nr sdk.WorkflowNodeRun, w sdk.W
157
178
if sdk .StatusIsTerminated (nr .Status ) {
158
179
e .Done = nr .Done .Unix ()
159
180
}
160
- publishRunWorkflow (ctx , e , w .ProjectKey , w .Name , appName , pipName , envName , nr .Number , nr .SubNumber , nr .Status , nil , w .EventIntegrations )
181
+ data := publishWorkflowRunData {
182
+ projectKey : w .ProjectKey ,
183
+ workflowName : w .Name ,
184
+ applicationName : appName ,
185
+ pipelineName : pipName ,
186
+ environmentName : envName ,
187
+ workflowRunNum : nr .Number ,
188
+ workflowRunSubNum : nr .SubNumber ,
189
+ status : nr .Status ,
190
+ eventIntegrations : w .EventIntegrations ,
191
+ workflowNodeRunID : nr .ID ,
192
+ }
193
+ publishRunWorkflow (ctx , e , data )
161
194
}
162
195
163
196
// PublishWorkflowNodeJobRun publish a WorkflowNodeJobRun
164
- func PublishWorkflowNodeJobRun (ctx context.Context , db gorp. SqlExecutor , pkey string , wr sdk.WorkflowRun , jr sdk.WorkflowNodeJobRun ) {
197
+ func PublishWorkflowNodeJobRun (ctx context.Context , pkey string , wr sdk.WorkflowRun , jr sdk.WorkflowNodeJobRun ) {
165
198
e := sdk.EventRunWorkflowJob {
166
- ID : jr .ID ,
167
- Status : jr .Status ,
168
- Start : jr .Start .Unix (),
199
+ ID : jr .ID ,
200
+ Status : jr .Status ,
201
+ Start : jr .Start .Unix (),
202
+ Requirements : jr .Job .Action .Requirements ,
203
+ WorkerName : jr .Job .WorkerName ,
204
+ BookByName : jr .BookedBy .Name ,
205
+ Parameters : jr .Parameters ,
169
206
}
170
207
171
208
if sdk .StatusIsTerminated (jr .Status ) {
172
209
e .Done = jr .Done .Unix ()
173
210
}
174
- publishRunWorkflow (ctx , e , pkey , wr .Workflow .Name , "" , "" , "" , 0 , 0 , jr .Status , nil , wr .Workflow .EventIntegrations )
211
+ data := publishWorkflowRunData {
212
+ projectKey : pkey ,
213
+ workflowName : wr .Workflow .Name ,
214
+ workflowRunNum : wr .Number ,
215
+ workflowRunSubNum : wr .LastSubNumber ,
216
+ status : jr .Status ,
217
+ workflowRunTags : wr .Tags ,
218
+ eventIntegrations : wr .Workflow .EventIntegrations ,
219
+ workflowNodeRunID : jr .WorkflowNodeRunID ,
220
+ }
221
+ publishRunWorkflow (ctx , e , data )
175
222
}
0 commit comments