@@ -89,46 +89,64 @@ private async Task RunPrWorkflowAsync()
8989 Terminal . WriteLine ( "Pipeline: clean -> build -> verify-samples -> test -> check-version" ) ;
9090 Terminal . WriteLine ( "" ) ;
9191
92+ Environment . ExitCode = 0 ;
93+
9294 Terminal . WriteLine ( "===============================================================================" ) ;
9395 Terminal . WriteLine ( " Step 1/5: Clean" ) ;
9496 Terminal . WriteLine ( "===============================================================================" ) ;
9597 CleanCommand . Handler cleanHandler = new ( ) ;
9698 await cleanHandler . Handle ( new CleanCommand ( ) , CancellationToken . None ) ;
9799
100+ if ( StopOnFailure ( "Clean" ) )
101+ {
102+ return ;
103+ }
104+
98105 Terminal . WriteLine ( "" ) ;
99106 Terminal . WriteLine ( "===============================================================================" ) ;
100107 Terminal . WriteLine ( " Step 2/5: Build" ) ;
101108 Terminal . WriteLine ( "===============================================================================" ) ;
102109 BuildCommand . Handler buildHandler = new ( ) ;
103110 await buildHandler . Handle ( new BuildCommand ( ) , CancellationToken . None ) ;
104111
112+ if ( StopOnFailure ( "Build" ) )
113+ {
114+ return ;
115+ }
116+
105117 Terminal . WriteLine ( "" ) ;
106118 Terminal . WriteLine ( "===============================================================================" ) ;
107119 Terminal . WriteLine ( " Step 3/5: Verify Samples" ) ;
108120 Terminal . WriteLine ( "===============================================================================" ) ;
109121 VerifySamplesCommand . Handler verifySamplesHandler = new ( Terminal ) ;
110122 await verifySamplesHandler . Handle ( new VerifySamplesCommand ( ) , CancellationToken . None ) ;
111123
124+ if ( StopOnFailure ( "Verify Samples" ) )
125+ {
126+ return ;
127+ }
128+
112129 Terminal . WriteLine ( "" ) ;
113130 Terminal . WriteLine ( "===============================================================================" ) ;
114131 Terminal . WriteLine ( " Step 4/5: Test" ) ;
115132 Terminal . WriteLine ( "===============================================================================" ) ;
116133 TestCommand . Handler testHandler = new ( ) ;
117134 await testHandler . Handle ( new TestCommand ( ) , CancellationToken . None ) ;
118135
136+ if ( StopOnFailure ( "Test" ) )
137+ {
138+ return ;
139+ }
140+
119141 Terminal . WriteLine ( "" ) ;
120142 Terminal . WriteLine ( "===============================================================================" ) ;
121143 Terminal . WriteLine ( " Step 5/5: Check Version" ) ;
122144 Terminal . WriteLine ( "===============================================================================" ) ;
123145 CheckVersionCommand . Handler checkVersionHandler = new ( Terminal ) ;
124146 await checkVersionHandler . Handle ( new CheckVersionCommand ( ) , CancellationToken . None ) ;
125147
126- if ( Environment . ExitCode != 0 )
148+ if ( StopOnFailure ( "Check Version" ) )
127149 {
128- Terminal . WriteErrorLine ( "" ) ;
129- Terminal . WriteErrorLine ( "===============================================================================" ) ;
130- Terminal . WriteErrorLine ( " Pipeline FAILED - Version check failed" ) ;
131- Terminal . WriteErrorLine ( "===============================================================================" ) ;
132150 return ;
133151 }
134152
@@ -143,6 +161,8 @@ private async Task RunReleaseWorkflowAsync(string? apiKey)
143161 Terminal . WriteLine ( "Pipeline: clean -> build -> push" ) ;
144162 Terminal . WriteLine ( "" ) ;
145163
164+ Environment . ExitCode = 0 ;
165+
146166 string ? repoRoot = Git . FindRoot ( ) ;
147167 if ( repoRoot == null )
148168 {
@@ -157,25 +177,31 @@ private async Task RunReleaseWorkflowAsync(string? apiKey)
157177 CleanCommand . Handler cleanHandler = new ( ) ;
158178 await cleanHandler . Handle ( new CleanCommand ( ) , CancellationToken . None ) ;
159179
180+ if ( StopOnFailure ( "Clean" ) )
181+ {
182+ return ;
183+ }
184+
160185 Terminal . WriteLine ( "" ) ;
161186 Terminal . WriteLine ( "===============================================================================" ) ;
162187 Terminal . WriteLine ( " Step 2/3: Build" ) ;
163188 Terminal . WriteLine ( "===============================================================================" ) ;
164189 BuildCommand . Handler buildHandler = new ( ) ;
165190 await buildHandler . Handle ( new BuildCommand ( ) , CancellationToken . None ) ;
166191
192+ if ( StopOnFailure ( "Build" ) )
193+ {
194+ return ;
195+ }
196+
167197 Terminal . WriteLine ( "" ) ;
168198 Terminal . WriteLine ( "===============================================================================" ) ;
169199 Terminal . WriteLine ( " Step 3/3: Push to NuGet" ) ;
170200 Terminal . WriteLine ( "===============================================================================" ) ;
171201 await PushPackageAsync ( repoRoot , apiKey ) ;
172202
173- if ( Environment . ExitCode != 0 )
203+ if ( StopOnFailure ( "Push to NuGet" ) )
174204 {
175- Terminal . WriteErrorLine ( "" ) ;
176- Terminal . WriteErrorLine ( "===============================================================================" ) ;
177- Terminal . WriteErrorLine ( " Pipeline FAILED - Package push failed" ) ;
178- Terminal . WriteErrorLine ( "===============================================================================" ) ;
179205 return ;
180206 }
181207
@@ -229,6 +255,20 @@ private async Task PushPackageAsync(string repoRoot, string? apiKey)
229255
230256 Terminal . WriteLine ( "\n ✅ Package pushed successfully!" ) ;
231257 }
258+
259+ private bool StopOnFailure ( string stepName )
260+ {
261+ if ( Environment . ExitCode == 0 )
262+ {
263+ return false ;
264+ }
265+
266+ Terminal . WriteErrorLine ( "" ) ;
267+ Terminal . WriteErrorLine ( "===============================================================================" ) ;
268+ Terminal . WriteErrorLine ( $ " Pipeline FAILED - { stepName } failed") ;
269+ Terminal . WriteErrorLine ( "===============================================================================" ) ;
270+ return true ;
271+ }
232272 }
233273}
234274
0 commit comments