@@ -40,6 +40,8 @@ def build_summary
4040 msg = "Github::Build::Summary - #{ @job . inspect } , #{ current_stage . inspect } , bamboo info: #{ bamboo_info } "
4141 @pr_log . info ( msg )
4242
43+ return if current_stage . cancelled?
44+
4345 # Update current stage
4446 update_summary ( current_stage )
4547 # Check if current stage finished
@@ -71,7 +73,7 @@ def must_update_previous_stage(current_stage)
7173 end
7274
7375 def must_cancel_next_stages ( current_stage )
74- return if @job . success ? or @job . in_progress ? or @job . queued ?
76+ return unless current_stage . failure ? or current_stage . skipped ? or current_stage . cancelled ?
7577 return unless current_stage . configuration . mandatory?
7678
7779 Stage
@@ -96,7 +98,7 @@ def must_continue_next_stage(current_stage)
9698 . where ( configuration : { position : current_stage . configuration . position + 1 } )
9799 . first
98100
99- return if next_stage . nil?
101+ return if next_stage . nil? or next_stage . cancelled?
100102
101103 update_summary ( next_stage )
102104 end
@@ -110,66 +112,56 @@ def cancelling_next_stage(pending_stage)
110112 "The previous stage failed and the remaining tests will be canceled.\n Details at [#{ url } ](#{ url } )."
111113 }
112114
113- logger ( Logger ::INFO , "cancelling_next_stage - pending_stage: #{ pending_stage . inspect } \n #{ output } " )
115+ logger ( Logger ::INFO , "cancelling_next_stage - pending_stage: #{ pending_stage . inspect } " )
114116
115117 pending_stage . cancelled ( @github , output : output )
116118 pending_stage . jobs . each { |job | job . cancelled ( @github ) }
117119 end
118120
119121 def finished_summary ( stage )
120- logger ( Logger ::INFO , "Finished stage: #{ stage . inspect } , CiJob status: #{ @job . status } " )
121- logger ( Logger ::INFO , "Finished stage: #{ stage . inspect } , running? #{ stage . reload . running? } " )
122-
123122 return if @job . in_progress? or stage . running?
124123
125124 finished_stage_summary ( stage )
126125 end
127126
128127 def finished_stage_summary ( stage )
129- logger ( Logger ::INFO , "finished_stage_summary: #{ stage . inspect } . Reason Job: #{ @job . inspect } " )
130-
131128 url = "https://ci1.netdef.org/browse/#{ stage . check_suite . bamboo_ci_ref } "
132129 output = {
133130 title : "#{ stage . name } summary" ,
134131 summary : "#{ summary_basic_output ( stage ) } \n Details at [#{ url } ](#{ url } )." . force_encoding ( 'utf-8' )
135132 }
136133
137134 finished_stage_update ( stage , output )
138-
139- logger ( Logger ::INFO , "finished_stage_summary: #{ stage . inspect } #{ output . inspect } " )
140135 end
141136
142137 def finished_stage_update ( stage , output )
143138 if stage . jobs . failure . empty?
144- logger ( Logger ::WARN , "Stage: #{ stage . name } finished - failure" )
145- stage . success ( @github , output : output , agent : @agent )
146- else
147139 logger ( Logger ::WARN , "Stage: #{ stage . name } finished - success" )
148- stage . failure ( @github , output : output , agent : @agent )
140+ stage . success ( @github , output : output , agent : @agent )
141+
142+ return
149143 end
144+
145+ logger ( Logger ::WARN , "Stage: #{ stage . name } finished - failure" )
146+ stage . failure ( @github , output : output , agent : @agent )
150147 end
151148
152149 def update_summary ( stage )
153- logger ( Logger ::INFO , "Updating summary status #{ stage . inspect } -> @job.status: #{ @job . status } " )
154-
155150 url = "https://ci1.netdef.org/browse/#{ @check_suite . bamboo_ci_ref } "
156151 output = {
157152 title : "#{ stage . name } summary" ,
158153 summary : "#{ summary_basic_output ( stage ) } \n Details at [#{ url } ](#{ url } )." . force_encoding ( 'utf-8' )
159154 }
160155
161- logger ( Logger ::INFO , "update_summary: #{ stage . inspect } #{ output . inspect } " )
162-
163156 logger ( Logger ::WARN , "Updating stage: #{ stage . name } to in_progress" )
164157 stage . in_progress ( @github , output : output )
165158 stage . update_output ( @github , output : output )
166159 end
167160
168161 def summary_basic_output ( stage )
169162 jobs = stage . jobs . reload
170- in_progress = jobs . where ( status : :in_progress )
171163
172- header = ":arrow_right: Jobs in progress: #{ in_progress . size } / #{ jobs . size } \n \n "
164+ header = queued_message ( jobs )
173165 header += in_progress_message ( jobs )
174166 header += generate_success_failure_info ( stage . name , jobs )
175167
@@ -200,11 +192,25 @@ def generate_success_failure_info(name, jobs)
200192 end
201193
202194 def in_progress_message ( jobs )
203- jobs . where ( status : %i[ in_progress queued ] ) . map do |job |
195+ in_progress = jobs . where ( status : :in_progress )
196+
197+ message = "\n \n :arrow_right: Jobs in progress: #{ in_progress . size } /#{ jobs . size } \n \n "
198+
199+ message + jobs . where ( status : %i[ in_progress ] ) . map do |job |
204200 "- **#{ job . name } ** -> https://ci1.netdef.org/browse/#{ job . job_ref } \n "
205201 end . join ( "\n " )
206202 end
207203
204+ def queued_message ( jobs )
205+ queued = jobs . where ( status : :queued )
206+
207+ message = ":arrow_right: Jobs queued: #{ queued . size } /#{ jobs . size } \n \n "
208+ message +
209+ queued . map do |job |
210+ "- **#{ job . name } ** -> https://ci1.netdef.org/browse/#{ job . job_ref } \n "
211+ end . join ( "\n " )
212+ end
213+
208214 def success_message ( jobs )
209215 jobs . where ( status : :success ) . map do |job |
210216 "- **#{ job . name } ** -> https://ci1.netdef.org/browse/#{ job . job_ref } \n "
0 commit comments