@@ -95,7 +95,6 @@ func RunArtifactUpload(ctx context.Context, wk workerruntime.Runtime, a sdk.Acti
95
95
// 3. CDN activated or not
96
96
if integrationName != sdk .DefaultStorageIntegrationName {
97
97
if err := uploadArtifactByApiCall (path , wk , ctx , projectKey , integrationName , jobID , tag ); err != nil {
98
- log .Warn (ctx , "queueArtifactUpload(%s, %s, %d, %s, %s) failed: %v" , projectKey , integrationName , jobID , tag .Value , path , err )
99
98
chanError <- sdk .WrapError (err , "Error while uploading artifact by api call %s" , path )
100
99
wgErrors .Add (1 )
101
100
}
@@ -107,14 +106,12 @@ func RunArtifactUpload(ctx context.Context, wk workerruntime.Runtime, a sdk.Acti
107
106
}
108
107
} else if ! cdnArtifactEnabled {
109
108
if err := uploadArtifactByApiCall (path , wk , ctx , projectKey , integrationName , jobID , tag ); err != nil {
110
- log .Warn (ctx , "queueArtifactUpload(%s, %s, %d, %s, %s) failed: %v" , projectKey , integrationName , jobID , tag .Value , path , err )
111
109
chanError <- sdk .WrapError (err , "Error while uploading artifact by api call %s" , path )
112
110
wgErrors .Add (1 )
113
111
}
114
112
return
115
113
} else {
116
114
if err := uploadArtifactIntoCDN (path , ctx , wk ); err != nil {
117
- log .Error (ctx , "unable to upload artifact into cdn %q: %v" , path , err )
118
115
chanError <- err
119
116
wgErrors .Add (1 )
120
117
}
@@ -133,7 +130,7 @@ func RunArtifactUpload(ctx context.Context, wk workerruntime.Runtime, a sdk.Acti
133
130
wgErrors .Wait ()
134
131
135
132
if ! globalError .IsEmpty () {
136
- return res , sdk . NewError ( sdk . ErrUnknownError , fmt .Errorf ("error: fail to upload artifact" ))
133
+ return res , fmt .Errorf ("%s" , globalError . Error ( ))
137
134
}
138
135
139
136
return res , nil
@@ -143,7 +140,11 @@ func uploadArtifactByIntegrationPlugin(path string, ctx context.Context, wk work
143
140
_ , fileName := filepath .Split (path )
144
141
145
142
// Check run result
146
- if err := checkArtifactUpload (ctx , wk , fileName , sdk .WorkflowRunResultTypeArtifactManager ); err != nil {
143
+ code , err := checkArtifactUpload (ctx , wk , fileName , sdk .WorkflowRunResultTypeArtifactManager )
144
+ if err != nil {
145
+ if code == 409 {
146
+ return fmt .Errorf ("unable to upload the same file twice: %s" , fileName )
147
+ }
147
148
return fmt .Errorf ("unable to check artifact upload authorization: %v" , err )
148
149
}
149
150
@@ -233,7 +234,7 @@ func uploadArtifactIntoCDN(path string, ctx context.Context, wk workerruntime.Ru
233
234
234
235
duration , err := wk .Client ().CDNItemUpload (ctx , wk .CDNHttpURL (), signature , afero .NewOsFs (), path )
235
236
if err != nil {
236
- return sdk . WrapError ( err , "Error while uploading artifact %s" , path )
237
+ return err
237
238
}
238
239
wk .SendLog (ctx , workerruntime .LevelInfo , fmt .Sprintf ("File '%s' uploaded in %.2fs to CDS CDN" , path , duration .Seconds ()))
239
240
return nil
@@ -252,7 +253,7 @@ func uploadArtifactByApiCall(path string, wk workerruntime.Runtime, ctx context.
252
253
return nil
253
254
}
254
255
255
- func checkArtifactUpload (ctx context.Context , wk workerruntime.Runtime , fileName string , runResultType sdk.WorkflowRunResultType ) error {
256
+ func checkArtifactUpload (ctx context.Context , wk workerruntime.Runtime , fileName string , runResultType sdk.WorkflowRunResultType ) ( int , error ) {
256
257
runID , runNodeID , runJobID := wk .GetJobIdentifiers ()
257
258
runResultCheck := sdk.WorkflowRunResultCheck {
258
259
RunJobID : runJobID ,
0 commit comments