ssp-cijoe 0.4.1 → 0.4.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/cijoe/build.rb +10 -2
- data/lib/cijoe/public/screen.css +74 -8
- data/lib/cijoe/server.rb +4 -0
- data/lib/cijoe/version.rb +1 -1
- data/lib/cijoe/views/_build.erb +4 -7
- data/lib/cijoe/views/template.erb +19 -21
- data/lib/cijoe.rb +15 -1
- metadata +4 -4
data/lib/cijoe/build.rb
CHANGED
@@ -41,12 +41,20 @@ class CIJoe
|
|
41
41
|
"#{short_sha}.#{finished_at.to_i.to_s}"
|
42
42
|
end
|
43
43
|
|
44
|
+
def metrics_dir
|
45
|
+
"#{Config.cijoe.metricsdir}/#{project}/#{full_id}"
|
46
|
+
end
|
47
|
+
|
48
|
+
def coverage_dir
|
49
|
+
"#{Config.cijoe.coveragedir}/#{project}/#{full_id}"
|
50
|
+
end
|
51
|
+
|
44
52
|
def metrics_url
|
45
|
-
"
|
53
|
+
"http://ci.secretsaucepartners.com/metrics/#{project}/#{full_id}/index.html"
|
46
54
|
end
|
47
55
|
|
48
56
|
def coverage_url
|
49
|
-
"
|
57
|
+
"http://ci.secretsaucepartners.com/coverage/#{project}/#{full_id}/index.html"
|
50
58
|
end
|
51
59
|
|
52
60
|
def clean_output
|
data/lib/cijoe/public/screen.css
CHANGED
@@ -16,7 +16,7 @@ html, body {
|
|
16
16
|
}
|
17
17
|
|
18
18
|
body {
|
19
|
-
background-color:
|
19
|
+
background-color: #f0f0f0;
|
20
20
|
font: 13.34px helvetica, arial, clean, sans-serif;
|
21
21
|
*font-size: small;
|
22
22
|
text-align: center;
|
@@ -26,25 +26,72 @@ h1, h2, h3, h4, h5, h6 {
|
|
26
26
|
font-size: 100%;
|
27
27
|
}
|
28
28
|
|
29
|
-
h1 {
|
29
|
+
h1, h2 {
|
30
30
|
margin-bottom: 1em;
|
31
|
+
height: 34px;
|
31
32
|
}
|
32
33
|
|
33
|
-
h1 a {
|
34
|
+
h1 a, h2 a {
|
35
|
+
font-size: 24px;
|
36
|
+
background: white;
|
37
|
+
padding: 6px 10px;
|
34
38
|
text-decoration: none;
|
35
|
-
color: #
|
39
|
+
color: #e61e4e;
|
40
|
+
display: block;
|
41
|
+
float: left;
|
42
|
+
}
|
43
|
+
|
44
|
+
h2 a {
|
45
|
+
margin-right: 10px;
|
46
|
+
}
|
47
|
+
|
48
|
+
h1 span.build form {
|
49
|
+
display: inline;
|
50
|
+
}
|
51
|
+
|
52
|
+
h2 span {
|
53
|
+
display: block;
|
54
|
+
line-height: 30px;
|
55
|
+
color: #999;
|
56
|
+
padding: 6px 0 0 10px;
|
57
|
+
}
|
58
|
+
|
59
|
+
h1 span.build form input {
|
60
|
+
font-size: 24px;
|
61
|
+
background: #aab2ac;
|
62
|
+
height: 34px;
|
63
|
+
padding: 0 10px;
|
64
|
+
color: white;
|
65
|
+
border: 1px solid #8c938e;
|
66
|
+
margin-left: 10px;
|
67
|
+
}
|
68
|
+
|
69
|
+
h1 span.build form input:hover {
|
70
|
+
background: #8c938e;
|
71
|
+
}
|
72
|
+
|
73
|
+
.current {
|
74
|
+
clear: both;
|
75
|
+
margin: 18px 0;
|
76
|
+
}
|
77
|
+
|
78
|
+
.failed, .worked, .errored {
|
79
|
+
color: white !important;
|
80
|
+
font-size: 11px;
|
81
|
+
padding: 2px 5px;
|
82
|
+
font-weight: bold;
|
36
83
|
}
|
37
84
|
|
38
85
|
.failed, .color31 {
|
39
|
-
|
86
|
+
background: red;
|
40
87
|
}
|
41
88
|
|
42
89
|
.worked, .color32 {
|
43
|
-
|
90
|
+
background: green;
|
44
91
|
}
|
45
92
|
|
46
93
|
.errored, .color33 {
|
47
|
-
|
94
|
+
background: yellow;
|
48
95
|
}
|
49
96
|
|
50
97
|
p {
|
@@ -77,18 +124,37 @@ table {
|
|
77
124
|
ul.posts {
|
78
125
|
list-style-type: none;
|
79
126
|
margin-bottom: 2em;
|
127
|
+
clear: both;
|
80
128
|
}
|
81
129
|
|
82
130
|
ul.posts li {
|
83
131
|
line-height: 1.75em;
|
132
|
+
margin-bottom: 18px;
|
84
133
|
}
|
85
|
-
|
134
|
+
|
86
135
|
ul.posts .date,
|
87
136
|
ul.posts .duration {
|
88
137
|
color: #aaa;
|
89
138
|
font-family: Monaco, "Courier New", monospace;
|
90
139
|
font-size: 80%;
|
91
140
|
}
|
141
|
+
|
142
|
+
ul.posts span.metrics {
|
143
|
+
margin-left: 20px;
|
144
|
+
line-height: 18px;
|
145
|
+
font-size: 11px;
|
146
|
+
}
|
147
|
+
|
148
|
+
ul.posts span.metrics a {
|
149
|
+
color: #e61e4e;
|
150
|
+
background: #fff;
|
151
|
+
padding: 2px 5px;
|
152
|
+
}
|
153
|
+
|
154
|
+
ul.posts span.metrics a:hover {
|
155
|
+
background: #e61e4e;
|
156
|
+
color: #fff;
|
157
|
+
}
|
92
158
|
|
93
159
|
/*****************************************************************************/
|
94
160
|
/*
|
data/lib/cijoe/server.rb
CHANGED
data/lib/cijoe/version.rb
CHANGED
data/lib/cijoe/views/_build.erb
CHANGED
@@ -1,12 +1,9 @@
|
|
1
1
|
<li>
|
2
|
-
<span class="date"><%= pretty_time(build.finished_at) %></span> »
|
3
|
-
<span class="metrics">
|
4
|
-
[ <a href="<%= build.metrics_url %>">Metrics</a> ]
|
5
|
-
</span>
|
6
|
-
<span class="coverage">
|
7
|
-
[ <a href="<%= build.coverage_url %>">Coverage</a> ]
|
8
|
-
</span>
|
2
|
+
<span class="date"><%= pretty_time(build.finished_at) %></span> » <span class="<%= build.status %>"><%= build.status %></span> » Built <a href="<%= build.commit.url %>"><%= build.short_sha %></a>
|
9
3
|
<% if build.duration %>
|
10
4
|
in <span class="duration"><%= build.duration %></span> seconds.
|
11
5
|
<% end %>
|
6
|
+
<span class="metrics">
|
7
|
+
<a class="metrics" href="<%= build.metrics_url %>">Metrics</a> <a class="coverage" href="<%= build.coverage_url %>">Coverage</a>
|
8
|
+
</span>
|
12
9
|
</li>
|
@@ -3,31 +3,29 @@
|
|
3
3
|
<head>
|
4
4
|
<link href="<%= cijoe_root %>/screen.css" media="screen" rel="stylesheet" type="text/css" />
|
5
5
|
<link rel="shortcut icon" href="<%= cijoe_root %>/favicon.ico" type="image/x-icon" />
|
6
|
-
<title><%= h(joe.project) %>:
|
6
|
+
<title><%= h(joe.project) %>: SSP Joe</title>
|
7
7
|
</head>
|
8
8
|
<body>
|
9
9
|
<div class="site">
|
10
|
-
<div class="title">
|
11
|
-
<a href="<%= cijoe_root %>/">CI Joe</a>
|
12
|
-
<span class="extra">because knowing is half the battle</span>
|
13
|
-
</div>
|
14
|
-
|
15
10
|
<div id="home">
|
16
|
-
<h1
|
11
|
+
<h1>
|
12
|
+
<a href="<%= joe.url %>"><%= joe.project %></a>
|
13
|
+
<span class="build">
|
14
|
+
<% unless joe.current_build %>
|
15
|
+
<form method="POST"><input type="submit" value="» Build"/></form>
|
16
|
+
<% end %>
|
17
|
+
</span>
|
18
|
+
</h1>
|
19
|
+
<% if joe.current_build %>
|
20
|
+
<div class="current">
|
21
|
+
<% if joe.current_build.sha %>
|
22
|
+
Building <a href="<%= joe.current_build.commit.url %>"><%= joe.current_build.short_sha %></a> <small>(pid: <%= joe.pid %>)</small>
|
23
|
+
<% else %>
|
24
|
+
Build starting...
|
25
|
+
<% end %>
|
26
|
+
</div>
|
27
|
+
<% end %>
|
17
28
|
<ul class="posts">
|
18
|
-
<% if joe.current_build %>
|
19
|
-
<li>
|
20
|
-
<span class="date"><%= pretty_time(joe.current_build.started_at) if joe.current_build %></span> »
|
21
|
-
<% if joe.current_build.sha %>
|
22
|
-
Building <a href="<%= joe.current_build.commit.url %>"><%= joe.current_build.short_sha %></a> <small>(pid: <%= joe.pid %>)</small>
|
23
|
-
<% else %>
|
24
|
-
Build starting...
|
25
|
-
<% end %>
|
26
|
-
</li>
|
27
|
-
<% else %>
|
28
|
-
<li><form method="POST"><input type="submit" value="Build"/></form></li>
|
29
|
-
<% end %>
|
30
|
-
|
31
29
|
<% if joe.last_build %>
|
32
30
|
<%= partial :build, :locals => {:build => joe.last_build} %>
|
33
31
|
<% if joe.last_build.failed? %>
|
@@ -37,7 +35,7 @@
|
|
37
35
|
</ul>
|
38
36
|
|
39
37
|
<% unless joe.build_history.empty? %>
|
40
|
-
<
|
38
|
+
<h2><a href="<%= joe.url %>"><%= joe.project %></a> <span style="color: #999;">build history</span></h2>
|
41
39
|
<ul class="posts">
|
42
40
|
<% joe.build_history.each do |current_build| %>
|
43
41
|
<%= partial :build, :locals => {:build => current_build} %>
|
data/lib/cijoe.rb
CHANGED
@@ -19,6 +19,7 @@ require 'cijoe/commit'
|
|
19
19
|
require 'cijoe/build'
|
20
20
|
require 'cijoe/campfire'
|
21
21
|
require 'cijoe/server'
|
22
|
+
require 'fileutils'
|
22
23
|
|
23
24
|
class CIJoe
|
24
25
|
|
@@ -149,6 +150,19 @@ class CIJoe
|
|
149
150
|
rescue Object => e
|
150
151
|
puts "Exception building: #{e.message} (#{e.class})"
|
151
152
|
build_failed('', e.to_s)
|
153
|
+
else
|
154
|
+
publish_metrics_and_coverage(build)
|
155
|
+
end
|
156
|
+
|
157
|
+
def publish_metrics_and_coverage(build)
|
158
|
+
puts "Creating metrics dir ..."
|
159
|
+
`mkdir #{build.metrics_dir}`
|
160
|
+
puts "Creating coverage dir ..."
|
161
|
+
`mkdir #{build.coverage_dir}`
|
162
|
+
puts "Publishing coverage ..."
|
163
|
+
`cp -r coverage/* #{build.coverage_dir}`
|
164
|
+
puts "Publishing metrics ..."
|
165
|
+
`cp -r tmp/metric_fu/output/* #{build.metrics_dir}`
|
152
166
|
end
|
153
167
|
|
154
168
|
# shellin' out
|
@@ -232,6 +246,6 @@ class CIJoe
|
|
232
246
|
history = build_entries.inject([]) do |builds, entry|
|
233
247
|
builds << read_build(entry)
|
234
248
|
end
|
235
|
-
history
|
249
|
+
history.sort { |b,a| a.finished_at <=> b.finished_at }
|
236
250
|
end
|
237
251
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ssp-cijoe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 9
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 0.4.
|
9
|
+
- 3
|
10
|
+
version: 0.4.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Chris Wanstrath
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2010-06-
|
20
|
+
date: 2010-06-10 00:00:00 +02:00
|
21
21
|
default_executable: cijoe
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|