@@ -6,15 +6,27 @@ import (
66 "fmt"
77 "time"
88
9- "github.com/go-gorp/gorp"
10-
119 "github.com/ovh/cds/sdk"
1210 "github.com/ovh/cds/sdk/log"
1311)
1412
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 {
1830 eventIntegrationsID [i ] = eventIntegration .ID
1931 }
2032
@@ -25,18 +37,18 @@ func publishRunWorkflow(ctx context.Context, payload interface{}, key, workflowN
2537 CDSName : cdsname ,
2638 EventType : fmt .Sprintf ("%T" , payload ),
2739 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 ,
3749 EventIntegrationsID : eventIntegrationsID ,
3850 }
39- publishEvent (ctx , event )
51+ _ = publishEvent (ctx , event )
4052}
4153
4254// PublishWorkflowRun publish event on a workflow run
@@ -51,7 +63,16 @@ func PublishWorkflowRun(ctx context.Context, wr sdk.WorkflowRun, projectKey stri
5163 LastModifiedNano : wr .LastModified .UnixNano (),
5264 Tags : wr .Tags ,
5365 }
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 )
5576}
5677
5778// PublishWorkflowNodeRun publish event on a workflow node run
@@ -157,19 +178,45 @@ func PublishWorkflowNodeRun(ctx context.Context, nr sdk.WorkflowNodeRun, w sdk.W
157178 if sdk .StatusIsTerminated (nr .Status ) {
158179 e .Done = nr .Done .Unix ()
159180 }
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 )
161194}
162195
163196// 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 ) {
165198 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 ,
169206 }
170207
171208 if sdk .StatusIsTerminated (jr .Status ) {
172209 e .Done = jr .Done .Unix ()
173210 }
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 )
175222}
0 commit comments