hytos / ID2_html.template @ 5183a15f
이력 | 보기 | 이력해설 | 다운로드 (7.69 KB)
1 |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
---|---|
2 |
<html> |
3 |
<head> |
4 |
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
5 |
<STYLE type="text/css"> |
6 |
BODY, TABLE, TD, TH, P { |
7 |
font-family: Calibri, Verdana, Helvetica, sans serif; |
8 |
font-size: 12px; |
9 |
color: black; |
10 |
} |
11 |
.console { |
12 |
font-family: Courier New; |
13 |
} |
14 |
.filesChanged { |
15 |
width: 10%; |
16 |
padding-left: 10px; |
17 |
} |
18 |
.section { |
19 |
width: 100%; |
20 |
border: thin black dotted; |
21 |
} |
22 |
.td-title-main { |
23 |
color: white; |
24 |
font-size: 200%; |
25 |
padding-left: 5px; |
26 |
font-weight: bold; |
27 |
} |
28 |
.td-title { |
29 |
color: white; |
30 |
font-size: 120%; |
31 |
font-weight: bold; |
32 |
padding-left: 5px; |
33 |
text-transform: uppercase; |
34 |
} |
35 |
.td-title-tests { |
36 |
font-weight: bold; |
37 |
font-size: 120%; |
38 |
} |
39 |
.td-header-maven-module { |
40 |
font-weight: bold; |
41 |
font-size: 120%; |
42 |
} |
43 |
.td-maven-artifact { |
44 |
padding-left: 5px; |
45 |
} |
46 |
.tr-title { |
47 |
background-color: <%= (build.result == null || build.result.toString() == 'SUCCESS') ? '#27AE60' : build.result.toString() == 'FAILURE' ? '#E74C3C' : '#f4e242' %>; |
48 |
} |
49 |
.test { |
50 |
padding-left: 20px; |
51 |
} |
52 |
.test-fixed { |
53 |
color: #27AE60; |
54 |
} |
55 |
.test-failed { |
56 |
color: #E74C3C; |
57 |
} |
58 |
</STYLE> |
59 |
</head> |
60 |
<BODY> |
61 |
<!-- BUILD RESULT --> |
62 |
<table width=100% style="border:1px dotted"> |
63 |
<tr bgcolor=<%= (build.result == null || build.result.toString() == 'SUCCESS') ? '#27AE60' : build.result.toString() == 'FAILURE' ? '#E74C3C' : '#f4e242' %> > |
64 |
<td style="padding-left: 5px; font-weight: bold;" colspan=2> |
65 |
<font color="white" size="5"> BUILD ${build.result ?: 'COMPLETED'} </font> |
66 |
</td> |
67 |
</tr> |
68 |
<tr> |
69 |
<td>URL:</td> |
70 |
<td><A href="${rooturl}${build.url}">${rooturl}${build.url}</A></td> |
71 |
</tr> |
72 |
<tr> |
73 |
<td>Project:</td> |
74 |
<td>${project.name}</td> |
75 |
</tr> |
76 |
<tr> |
77 |
<td>Date:</td> |
78 |
<td>${it.timestampString}</td> |
79 |
</tr> |
80 |
<tr> |
81 |
<td>Duration:</td> |
82 |
<td>${build.durationString}</td> |
83 |
</tr> |
84 |
<tr> |
85 |
<td>Cause:</td> |
86 |
<td><% build.causes.each() { cause -> %> ${cause.shortDescription} <% } %></td> |
87 |
</tr> |
88 |
</table> |
89 |
<br/> |
90 |
|
91 |
<!-- CHANGE SET --> |
92 |
<% |
93 |
def changeSets = build.changeSets |
94 |
if(changeSets != null) { |
95 |
def hadChanges = false %> |
96 |
<table width=100% style="border:1px dotted"> |
97 |
<tr bgcolor=<%= (build.result == null || build.result.toString() == 'SUCCESS') ? '#27AE60' : build.result.toString() == 'FAILURE' ? '#E74C3C' : '#f4e242' %> > |
98 |
<td style="padding-left: 5px; font-weight: bold;" colspan="2"><font color="white" size="3">CHANGES</font></td> |
99 |
</tr> |
100 |
<% changeSets.each() { |
101 |
cs_list -> cs_list.each() { |
102 |
cs -> hadChanges = true %> |
103 |
<tr> |
104 |
<td> |
105 |
Revision |
106 |
<%= cs.metaClass.hasProperty('commitId') ? cs.commitId : cs.metaClass.hasProperty('revision') ? cs.revision : cs.metaClass.hasProperty('changeNumber') ? cs.changeNumber : "" %> |
107 |
by <B><%= cs.author %></B> |
108 |
</td> |
109 |
<td>${cs.msgAnnotated}</td> |
110 |
</tr> |
111 |
<% cs.affectedFiles.each() { |
112 |
p -> %> |
113 |
<tr> |
114 |
<td class="filesChanged">${p.editType.name}</td> |
115 |
<td>${p.path}</td> |
116 |
</tr> |
117 |
<% } |
118 |
} |
119 |
} |
120 |
if ( !hadChanges ) { %> |
121 |
<tr> |
122 |
<td colspan="2">No Changes</td> |
123 |
</tr> |
124 |
<% } %> |
125 |
</table> |
126 |
<br/> |
127 |
<% } %> |
128 |
|
129 |
<!-- ARTIFACTS --> |
130 |
<% |
131 |
if ( build.result != hudson.model.Result.FAILURE ) { %> |
132 |
<table width=100% style="border:1px dotted"> |
133 |
<tr bgcolor=<%= (build.result == null || build.result.toString() == 'SUCCESS') ? '#27AE60' : build.result.toString() == 'FAILURE' ? '#E74C3C' : '#f4e242' %> > |
134 |
<td style="padding-left: 5px; font-weight: bold;"><font color="white" size="3">ARTIFACTS</font></td> |
135 |
</tr> |
136 |
<tr> |
137 |
<td>PROGRAM</th> |
138 |
</tr> |
139 |
<tr> |
140 |
<td><a href="http://www.devdoftech.co.kr:9081/artifactory/${project.name}/Setup/${project.name}-<%= build.getEnvVars()["BUILD_NAME"] %>.msi"> ID2-<%= build.getEnvVars()["BUILD_NAME"] %>.msi </a></td> |
141 |
</tr> |
142 |
</table> |
143 |
<% } %> |
144 |
|
145 |
<% |
146 |
def artifacts = build.artifacts |
147 |
if ( artifacts != null && artifacts.size() > 0 ) { %> |
148 |
<table class="section"> |
149 |
<tr class="tr-title"> |
150 |
<td class="td-title">BUILD ARTIFACTS</td> |
151 |
</tr> |
152 |
<% artifacts.each() { |
153 |
f -> %> |
154 |
<tr> |
155 |
<td> |
156 |
<a href="${rooturl}${build.url}artifact/${f}">${f}</a> |
157 |
</td> |
158 |
</tr> |
159 |
<% } %> |
160 |
</table> |
161 |
<br/> |
162 |
<% } %> |
163 |
|
164 |
<!-- MAVEN ARTIFACTS --> |
165 |
<% |
166 |
try { |
167 |
def mbuilds = build.moduleBuilds |
168 |
if ( mbuilds != null ) { %> |
169 |
<table class="section"> |
170 |
<tr class="tr-title"> |
171 |
<td class="td-title">BUILD ARTIFACTS</td> |
172 |
</tr> |
173 |
<% |
174 |
try { |
175 |
mbuilds.each() { |
176 |
m -> %> |
177 |
<tr> |
178 |
<td class="td-header-maven-module">${m.key.displayName}</td> |
179 |
</tr> |
180 |
<% |
181 |
m.value.each() { |
182 |
mvnbld -> def artifactz = mvnbld.artifacts |
183 |
if ( artifactz != null && artifactz.size() > 0) { %> |
184 |
<tr> |
185 |
<td class="td-maven-artifact"> |
186 |
<% artifactz.each() { |
187 |
f -> %> |
188 |
<a href="${rooturl}${mvnbld.url}artifact/${f}">${f}</a><br/> |
189 |
<% } %> |
190 |
</td> |
191 |
</tr> |
192 |
<% } |
193 |
} |
194 |
} |
195 |
} catch(e) { |
196 |
// we don't do anything |
197 |
} %> |
198 |
</table> |
199 |
<br/> |
200 |
<% } |
201 |
} catch(e) { |
202 |
// we don't do anything |
203 |
} %> |
204 |
|
205 |
<!-- JUnit TEMPLATE --> |
206 |
|
207 |
<% |
208 |
def junitResultList = it.JUnitTestResult |
209 |
try { |
210 |
def cucumberTestResultAction = it.getAction("org.jenkinsci.plugins.cucumber.jsontestsupport.CucumberTestResultAction") |
211 |
junitResultList.add( cucumberTestResultAction.getResult() ) |
212 |
} catch(e) { |
213 |
//cucumberTestResultAction not exist in this build |
214 |
} |
215 |
if ( junitResultList.size() > 0 ) { %> |
216 |
<table class="section"> |
217 |
<tr class="tr-title"> |
218 |
<td class="td-title" colspan="5">${junitResultList.first().displayName}</td> |
219 |
</tr> |
220 |
<tr> |
221 |
<td class="td-title-tests">Name</td> |
222 |
<td class="td-title-tests">Failed</td> |
223 |
<td class="td-title-tests">Passed</td> |
224 |
<td class="td-title-tests">Skipped</td> |
225 |
<td class="td-title-tests">Total</td> |
226 |
</tr> |
227 |
<% junitResultList.each { |
228 |
junitResult -> junitResult.getChildren().each { |
229 |
packageResult -> %> |
230 |
<tr> |
231 |
<td>${packageResult.getName()}</td> |
232 |
<td>${packageResult.getFailCount()}</td> |
233 |
<td>${packageResult.getPassCount()}</td> |
234 |
<td>${packageResult.getSkipCount()}</td> |
235 |
<td>${packageResult.getPassCount() + packageResult.getFailCount() + packageResult.getSkipCount()}</td> |
236 |
</tr> |
237 |
<% packageResult.getPassedTests().findAll({it.getStatus().toString() == "FIXED";}).each{ |
238 |
test -> %> |
239 |
<tr> |
240 |
<td class="test test-fixed" colspan="5"> |
241 |
${test.getFullName()} ${test.getStatus()} |
242 |
</td> |
243 |
</tr> |
244 |
<% } %> |
245 |
<% packageResult.getFailedTests().sort({a,b -> a.getAge() <=> b.getAge()}).each{ |
246 |
failed_test -> %> |
247 |
<tr> |
248 |
<td class="test test-failed" colspan="5"> |
249 |
${failed_test.getFullName()} (Age: ${failed_test.getAge()}) |
250 |
</td> |
251 |
</tr> |
252 |
<% } |
253 |
} |
254 |
} %> |
255 |
</table> |
256 |
<br/> |
257 |
<% } %> |
258 |
|
259 |
<!-- CONSOLE OUTPUT --> |
260 |
<% |
261 |
if ( build.result == hudson.model.Result.FAILURE ) { %> |
262 |
<table width=100% style="border:1px dotted" cellpadding="0" cellspacing="0"> |
263 |
<tr bgcolor=<%= (build.result == null || build.result.toString() == 'SUCCESS') ? '#27AE60' : build.result.toString() == 'FAILURE' ? '#E74C3C' : '#f4e242' %> > |
264 |
<td style="padding-left: 5px; font-weight: bold;"><font color="white" size="3">CONSOLE OUTPUT</font></td> |
265 |
</tr> |
266 |
<% build.getLog(100).each() { |
267 |
line -> %> |
268 |
<tr> |
269 |
<td style="font-family:Courier New">${org.apache.commons.lang.StringEscapeUtils.escapeHtml(line)}</td> |
270 |
</tr> |
271 |
<% } %> |
272 |
</table> |
273 |
<br/> |
274 |
<% } %> |
275 |
</BODY> |
276 |
</html> |