@@ -307,10 +307,13 @@ var stackUpdateCmd = &cobra.Command{
307
307
308
308
// Step 5b. Communicate with server to share progress of ...
309
309
if isNonInteractive () {
310
+ providerErrorDetected := false
311
+
310
312
fmt .Printf ("Deploying %s stack with provider %s\n " , stackConfig .Name , stackConfig .Provider )
311
313
go func () {
312
314
for update := range errorChan {
313
315
fmt .Printf ("Error: %s\n " , update )
316
+ providerErrorDetected = true
314
317
}
315
318
}()
316
319
@@ -348,6 +351,11 @@ var stackUpdateCmd = &cobra.Command{
348
351
fmt .Printf ("\n Result: %s\n " , content .Result .GetText ())
349
352
}
350
353
}
354
+
355
+ // ensure the process exits with a non-zero status code after all messages are processed
356
+ if providerErrorDetected {
357
+ os .Exit (1 )
358
+ }
351
359
} else {
352
360
// interactive environment
353
361
// Step 5c. Start the stack up view
@@ -491,10 +499,13 @@ nitric stack down -s aws -y`,
491
499
})
492
500
493
501
if isNonInteractive () {
502
+ providerErrorDetected := false
503
+
494
504
fmt .Printf ("Deploying %s stack with provider %s\n " , stackConfig .Name , stackConfig .Provider )
495
505
go func () {
496
506
for update := range errorChan {
497
507
fmt .Printf ("Error: %s\n " , update )
508
+ providerErrorDetected = true
498
509
}
499
510
}()
500
511
@@ -532,6 +543,11 @@ nitric stack down -s aws -y`,
532
543
fmt .Println ("\n Stack down complete" )
533
544
}
534
545
}
546
+
547
+ // ensure the process exits with a non-zero status code after all messages are processed
548
+ if providerErrorDetected {
549
+ os .Exit (1 )
550
+ }
535
551
} else {
536
552
stackDown := stack_down .New (stackConfig .Provider , stackConfig .Name , eventChannel , providerStdout , errorChan )
537
553
0 commit comments