1- using System ;
1+ using System ;
22using System . Collections . Generic ;
33using System . Linq ;
44using Cake . Common . Build ;
@@ -24,17 +24,54 @@ public sealed class AzurePipelinesEngine : CakeEngineBase
2424 public AzurePipelinesEngine ( ICakeDataService dataService , ICakeLog log )
2525 : base ( new CakeEngine ( dataService , log ) )
2626 {
27- _engine . BeforeSetup += BuildSetup ;
28- _engine . BeforeTaskSetup += OnTaskSetup ;
29- _engine . BeforeTaskTeardown += OnTaskTeardown ;
30- _engine . BeforeTeardown += OnBuildTeardown ;
27+ _log = log ;
28+ _engine . BeforeSetup += OnBeforeSetup ;
29+ _engine . AfterSetup += OnAfterSetup ;
30+
31+ _engine . BeforeTaskSetup += OnBeforeTaskSetup ;
32+
33+ _engine . BeforeTaskTeardown += OnBeforeTaskTeardown ;
34+
35+ _engine . AfterTaskTeardown += OnAfterTaskTeardown ;
36+
37+ _engine . BeforeTeardown += OnBeforeTeardown ;
38+ _engine . AfterTeardown += OnAfterTeardown ;
39+ }
40+
41+ private void OnAfterTaskTeardown ( object sender , AfterTaskTeardownEventArgs e )
42+ {
43+ var b = e . TaskTeardownContext . BuildSystem ( ) ;
44+ if ( b . IsRunningOnPipelines ( ) )
45+ {
46+ WriteGroupEndCommand ( ) ;
47+ }
48+ }
49+
50+ private void OnAfterTeardown ( object sender , AfterTeardownEventArgs e )
51+ {
52+ var b = e . TeardownContext . BuildSystem ( ) ;
53+ if ( b . IsRunningOnPipelines ( ) )
54+ {
55+ WriteGroupEndCommand ( ) ;
56+ }
3157 }
3258
33- private void OnBuildTeardown ( object sender , BeforeTeardownEventArgs e )
59+ private void OnAfterSetup ( object sender , AfterSetupEventArgs e )
60+ {
61+ var b = e . Context . BuildSystem ( ) ;
62+ if ( b . IsRunningOnPipelines ( ) )
63+ {
64+ WriteGroupEndCommand ( ) ;
65+ }
66+ }
67+
68+ private void OnBeforeTeardown ( object sender , BeforeTeardownEventArgs e )
3469 {
3570 var b = e . TeardownContext . BuildSystem ( ) ;
3671 if ( b . IsRunningOnPipelines ( ) )
3772 {
73+ WriteGroupCommand ( "Teardown" ) ;
74+
3875 b . AzurePipelines . Commands . UpdateRecord ( _parentRecord , new AzurePipelinesRecordData
3976 {
4077 FinishTime = DateTime . Now ,
@@ -45,7 +82,7 @@ private void OnBuildTeardown(object sender, BeforeTeardownEventArgs e)
4582 }
4683 }
4784
48- private void OnTaskTeardown ( object sender , BeforeTaskTeardownEventArgs e )
85+ private void OnBeforeTaskTeardown ( object sender , BeforeTaskTeardownEventArgs e )
4986 {
5087 var b = e . TaskTeardownContext . BuildSystem ( ) ;
5188 if ( b . IsRunningOnPipelines ( ) )
@@ -74,11 +111,13 @@ private void OnTaskTeardown(object sender, BeforeTaskTeardownEventArgs e)
74111 return AzurePipelinesTaskResult . Succeeded ;
75112 }
76113
77- private void OnTaskSetup ( object sender , BeforeTaskSetupEventArgs e )
114+ private void OnBeforeTaskSetup ( object sender , BeforeTaskSetupEventArgs e )
78115 {
79116 var b = e . TaskSetupContext . BuildSystem ( ) ;
80117 if ( b . IsRunningOnPipelines ( ) )
81118 {
119+ WriteGroupCommand ( e . TaskSetupContext . Task . Name ) ;
120+
82121 var currentTask =
83122 _engine . Tasks . First ( t => t . Name == e . TaskSetupContext . Task . Name ) ;
84123 var currentIndex = _engine . Tasks . ToList ( ) . IndexOf ( currentTask ) ;
@@ -97,19 +136,33 @@ private int GetProgress(int currentTask, int count)
97136 return Convert . ToInt32 ( Math . Truncate ( f ) ) ;
98137 }
99138
100- private void BuildSetup ( object sender , BeforeSetupEventArgs e )
139+ private void OnBeforeSetup ( object sender , BeforeSetupEventArgs e )
101140 {
102141 var b = e . Context . BuildSystem ( ) ;
103142 if ( b . IsRunningOnPipelines ( ) )
104143 {
144+ WriteGroupCommand ( "Setup" ) ;
145+
105146 e . Context . AzurePipelines ( ) . Commands . SetProgress ( 0 , string . Empty ) ;
106147 var g = e . Context . AzurePipelines ( )
107148 . Commands . CreateNewRecord ( "Cake Build" , "build" , 0 , new AzurePipelinesRecordData { StartTime = DateTime . Now } ) ;
108149 _parentRecord = g ;
109150 }
110151 }
111152
153+ private void WriteGroupCommand ( string groupName )
154+ {
155+ _log . Verbose ( string . Empty ) ;
156+ _log . Information ( "##[group]{0}" , groupName ) ;
157+ }
158+
159+ private void WriteGroupEndCommand ( )
160+ {
161+ _log . Information ( "##[endgroup]" ) ;
162+ }
163+
112164 private Guid _parentRecord ;
165+ private ICakeLog _log ;
113166
114167 private Dictionary < string , Guid > TaskRecords { get ; } = new Dictionary < string , Guid > ( ) ;
115168 }
0 commit comments