@@ -302,55 +302,56 @@ func (bc *BuildPodController) HandlePod(pod *kapi.Pod) error {
302
302
nextStatus := build .Status .Phase
303
303
currentReason := build .Status .Reason
304
304
305
- switch pod .Status .Phase {
306
- case kapi .PodRunning :
307
- // The pod's still running
308
- build .Status .Reason = ""
309
- build .Status .Message = ""
310
- nextStatus = buildapi .BuildPhaseRunning
311
-
312
- case kapi .PodPending :
313
- build .Status .Reason = ""
314
- build .Status .Message = ""
315
- nextStatus = buildapi .BuildPhasePending
316
- if secret := build .Spec .Output .PushSecret ; secret != nil && currentReason != buildapi .StatusReasonMissingPushSecret {
317
- if _ , err := bc .SecretClient .Secrets (build .Namespace ).Get (secret .Name ); err != nil && errors .IsNotFound (err ) {
318
- build .Status .Reason = buildapi .StatusReasonMissingPushSecret
319
- build .Status .Message = buildapi .StatusMessageMissingPushSecret
320
- glog .V (4 ).Infof ("Setting reason for pending build to %q due to missing secret %s/%s" , build .Status .Reason , build .Namespace , secret .Name )
305
+ if build .Status .Phase != buildapi .BuildPhaseFailed {
306
+ switch pod .Status .Phase {
307
+ case kapi .PodRunning :
308
+ // The pod's still running
309
+ build .Status .Reason = ""
310
+ build .Status .Message = ""
311
+ nextStatus = buildapi .BuildPhaseRunning
312
+
313
+ case kapi .PodPending :
314
+ build .Status .Reason = ""
315
+ build .Status .Message = ""
316
+ nextStatus = buildapi .BuildPhasePending
317
+ if secret := build .Spec .Output .PushSecret ; secret != nil && currentReason != buildapi .StatusReasonMissingPushSecret {
318
+ if _ , err := bc .SecretClient .Secrets (build .Namespace ).Get (secret .Name ); err != nil && errors .IsNotFound (err ) {
319
+ build .Status .Reason = buildapi .StatusReasonMissingPushSecret
320
+ build .Status .Message = buildapi .StatusMessageMissingPushSecret
321
+ glog .V (4 ).Infof ("Setting reason for pending build to %q due to missing secret %s/%s" , build .Status .Reason , build .Namespace , secret .Name )
322
+ }
321
323
}
322
- }
323
324
324
- case kapi .PodSucceeded :
325
- build .Status .Reason = ""
326
- build .Status .Message = ""
327
- // Check the exit codes of all the containers in the pod
328
- nextStatus = buildapi .BuildPhaseComplete
329
- if len (pod .Status .ContainerStatuses ) == 0 {
330
- // no containers in the pod means something went badly wrong, so the build
331
- // should be failed.
332
- glog .V (2 ).Infof ("Failing build %s/%s because the pod has no containers" , build .Namespace , build .Name )
333
- nextStatus = buildapi .BuildPhaseFailed
334
- } else {
335
- for _ , info := range pod .Status .ContainerStatuses {
336
- if info .State .Terminated != nil && info .State .Terminated .ExitCode != 0 {
337
- nextStatus = buildapi .BuildPhaseFailed
338
- break
325
+ case kapi .PodSucceeded :
326
+ build .Status .Reason = ""
327
+ build .Status .Message = ""
328
+ // Check the exit codes of all the containers in the pod
329
+ nextStatus = buildapi .BuildPhaseComplete
330
+ if len (pod .Status .ContainerStatuses ) == 0 {
331
+ // no containers in the pod means something went badly wrong, so the build
332
+ // should be failed.
333
+ glog .V (2 ).Infof ("Failing build %s/%s because the pod has no containers" , build .Namespace , build .Name )
334
+ nextStatus = buildapi .BuildPhaseFailed
335
+ } else {
336
+ for _ , info := range pod .Status .ContainerStatuses {
337
+ if info .State .Terminated != nil && info .State .Terminated .ExitCode != 0 {
338
+ nextStatus = buildapi .BuildPhaseFailed
339
+ break
340
+ }
339
341
}
340
342
}
341
- }
342
343
343
- case kapi .PodFailed :
344
- nextStatus = buildapi .BuildPhaseFailed
344
+ case kapi .PodFailed :
345
+ nextStatus = buildapi .BuildPhaseFailed
345
346
346
- default :
347
- build .Status .Reason = ""
348
- build .Status .Message = ""
347
+ default :
348
+ build .Status .Reason = ""
349
+ build .Status .Message = ""
350
+ }
349
351
}
350
-
351
352
// Update the build object when it progress to a next state or the reason for
352
353
// the current state changed.
353
- if (! hasBuildPodNameAnnotation (build ) || build .Status .Phase != nextStatus ) && ! buildutil .IsBuildComplete (build ) {
354
+ if (! hasBuildPodNameAnnotation (build ) || build .Status .Phase != nextStatus || build . Status . Phase == buildapi . BuildPhaseFailed ) && ! buildutil .IsBuildComplete (build ) {
354
355
setBuildPodNameAnnotation (build , pod .Name )
355
356
reason := ""
356
357
if len (build .Status .Reason ) > 0 {
0 commit comments