heidi 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/bin/heidi +25 -9
- data/heidi.gemspec +6 -6
- data/lib/heidi/git.rb +14 -0
- data/lib/heidi/project.rb +30 -3
- data/lib/heidi/web/public/css/screen.css +9 -0
- data/lib/heidi/web/views/build.erb +8 -4
- data/lib/heidi/web/views/commit.erb +10 -0
- data/lib/heidi/web/views/config.erb +21 -0
- data/lib/heidi/web/views/home.erb +4 -1
- data/lib/heidi/web/views/project.erb +22 -14
- data/lib/heidi/web.rb +37 -3
- metadata +80 -77
- data/bin/heidi_console +0 -3
- data/bin/heidi_cron +0 -8
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/bin/heidi
CHANGED
@@ -7,6 +7,10 @@ cmd = ARGV.shift
|
|
7
7
|
for_a = ARGV.shift
|
8
8
|
|
9
9
|
ENV['PATH'] = "/bin:/usr/bin:/usr/local/bin"
|
10
|
+
if ENV['HEIDI_PATH']
|
11
|
+
ENV['PATH'] += ":#{ENV['HEIDI_PATH']}"
|
12
|
+
ENV['HEIDI_PATH'] = nil
|
13
|
+
end
|
10
14
|
|
11
15
|
shell = SimpleShell.new
|
12
16
|
|
@@ -19,10 +23,9 @@ end
|
|
19
23
|
|
20
24
|
case cmd
|
21
25
|
when "new"
|
22
|
-
puts "creating #{for_a}"
|
26
|
+
puts "creating #{for_a}/"
|
23
27
|
puts "creating #{for_a}/projects"
|
24
28
|
shell.mkdir %W(-p #{for_a}/projects)
|
25
|
-
puts "creating #{for_a}/bin"
|
26
29
|
shell.mkdir %W(-p #{for_a}/bin)
|
27
30
|
puts "creating #{for_a}/Gemfile"
|
28
31
|
File.open("#{for_a}/Gemfile", File::CREAT|File::WRONLY) do |f|
|
@@ -30,14 +33,27 @@ when "new"
|
|
30
33
|
f.puts 'gem "heidi"'
|
31
34
|
end
|
32
35
|
|
33
|
-
puts "
|
34
|
-
|
35
|
-
|
36
|
-
|
36
|
+
puts "\nIf you like you can run: bundle install --binstubs"
|
37
|
+
puts "this will tie heidi and heidi_web to this location"
|
38
|
+
puts "\nFor even more tying down, run: bundle install --deployment"
|
39
|
+
puts "after running bundle install --binstubs"
|
40
|
+
|
37
41
|
|
38
42
|
when "project"
|
43
|
+
repo = ARGV.shift
|
44
|
+
|
45
|
+
if repo.nil?
|
46
|
+
$stderr.puts "You must specify a repository"
|
47
|
+
exit 1
|
48
|
+
end
|
49
|
+
|
39
50
|
check_heidi_root
|
40
51
|
|
52
|
+
if File.exists? "projects/#{for_a}"
|
53
|
+
$stderr.puts "projects/#{for_a} is in the way. Please remove it"
|
54
|
+
exit 1
|
55
|
+
end
|
56
|
+
|
41
57
|
# create a logs dir
|
42
58
|
puts "creating projects/#{for_a}"
|
43
59
|
puts "creating projects/#{for_a}/logs"
|
@@ -51,7 +67,7 @@ when "project"
|
|
51
67
|
# make a clone
|
52
68
|
shell.in("projects/#{for_a}") do |sh|
|
53
69
|
puts "filling #{for_a} cache"
|
54
|
-
|
70
|
+
|
55
71
|
puts "git clone #{repo}"
|
56
72
|
sh.git %W(clone #{repo} cached)
|
57
73
|
|
@@ -60,7 +76,7 @@ when "project"
|
|
60
76
|
cached.git %W(config heidi.name #{for_a})
|
61
77
|
end
|
62
78
|
end
|
63
|
-
puts "Creating default test hook: projects/#{for_a}/hooks/
|
79
|
+
puts "Creating default test hook: projects/#{for_a}/hooks/tests/01_rspec"
|
64
80
|
File.open("projects/#{for_a}/hooks/tests/01_rspec", File::CREAT|File::WRONLY) do |f|
|
65
81
|
f.puts %q(#!/bin/sh
|
66
82
|
|
@@ -68,7 +84,7 @@ when "project"
|
|
68
84
|
bundle exec rake spec
|
69
85
|
)
|
70
86
|
end
|
71
|
-
shell.chmod %W(+x projects/#{for_a}/hooks/
|
87
|
+
shell.chmod %W(+x projects/#{for_a}/hooks/tests/01_rspec)
|
72
88
|
puts "\n"
|
73
89
|
puts "Now edit or add some hooks and run: heidi integrate #{for_a}"
|
74
90
|
|
data/heidi.gemspec
CHANGED
@@ -5,14 +5,14 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "heidi"
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Hartog C. de Mik"]
|
12
|
-
s.date = "2012-02-
|
12
|
+
s.date = "2012-02-14"
|
13
13
|
s.description = "CI-Joe alike CI system called Heidi."
|
14
14
|
s.email = "hartog@organisedminds.com"
|
15
|
-
s.executables = ["heidi", "
|
15
|
+
s.executables = ["heidi", "heidi_web"]
|
16
16
|
s.extra_rdoc_files = [
|
17
17
|
"LICENSE.txt",
|
18
18
|
"README.rdoc"
|
@@ -27,8 +27,6 @@ Gem::Specification.new do |s|
|
|
27
27
|
"Rakefile",
|
28
28
|
"VERSION",
|
29
29
|
"bin/heidi",
|
30
|
-
"bin/heidi_console",
|
31
|
-
"bin/heidi_cron",
|
32
30
|
"bin/heidi_web",
|
33
31
|
"heidi.gemspec",
|
34
32
|
"lib/heidi.rb",
|
@@ -46,6 +44,8 @@ Gem::Specification.new do |s|
|
|
46
44
|
"lib/heidi/web/public/images/OrganisedMinds.png",
|
47
45
|
"lib/heidi/web/public/images/heidi.jpeg",
|
48
46
|
"lib/heidi/web/views/build.erb",
|
47
|
+
"lib/heidi/web/views/commit.erb",
|
48
|
+
"lib/heidi/web/views/config.erb",
|
49
49
|
"lib/heidi/web/views/home.erb",
|
50
50
|
"lib/heidi/web/views/layout.erb",
|
51
51
|
"lib/heidi/web/views/project.erb",
|
@@ -63,7 +63,7 @@ Gem::Specification.new do |s|
|
|
63
63
|
s.homepage = "http://github.com/coffeeaddict/heid"
|
64
64
|
s.licenses = ["MIT"]
|
65
65
|
s.require_paths = ["lib"]
|
66
|
-
s.rubygems_version = "1.8.
|
66
|
+
s.rubygems_version = "1.8.16"
|
67
67
|
s.summary = "A naive CI system"
|
68
68
|
|
69
69
|
if s.respond_to? :specification_version then
|
data/lib/heidi/git.rb
CHANGED
@@ -37,6 +37,12 @@ class Heidi
|
|
37
37
|
res.out.split("\n").collect{ |b| b.gsub(/^[\s*]+/, '') }
|
38
38
|
end
|
39
39
|
|
40
|
+
def remote_branches
|
41
|
+
res = @shell.git(%W(branch --no-color -r))
|
42
|
+
branches = res.out.split("\n").collect{ |b| b.gsub(/^[\s*]+/, '') }
|
43
|
+
branches.select { |b| b !~ /HEAD/ }
|
44
|
+
end
|
45
|
+
|
40
46
|
# git checkout $name
|
41
47
|
def switch(name)
|
42
48
|
return nil unless branches.include?(name)
|
@@ -118,6 +124,14 @@ class Heidi
|
|
118
124
|
@shell.git %W(log -n#{amount} --color --graph --pretty=oneline --abbrev-commit)
|
119
125
|
end
|
120
126
|
|
127
|
+
def stat(commit)
|
128
|
+
@shell.git(%W(log -n1 --color --stat #{commit})).out
|
129
|
+
end
|
130
|
+
|
131
|
+
def diff(commit)
|
132
|
+
@shell.git(%W(diff --color #{commit}^ #{commit})).out
|
133
|
+
end
|
134
|
+
|
121
135
|
# git config $key $value
|
122
136
|
def []=(key, value)
|
123
137
|
@shell.system("git", "config", "heidi.#{key}", value)
|
data/lib/heidi/project.rb
CHANGED
@@ -46,6 +46,10 @@ class Heidi
|
|
46
46
|
@name ||= @git[:name]
|
47
47
|
end
|
48
48
|
|
49
|
+
def basename
|
50
|
+
File.basename(@root)
|
51
|
+
end
|
52
|
+
|
49
53
|
def commit
|
50
54
|
@git.commit[0..8]
|
51
55
|
end
|
@@ -90,6 +94,14 @@ class Heidi
|
|
90
94
|
name = @git["build.branch"]
|
91
95
|
name == "" ? nil : name
|
92
96
|
end
|
97
|
+
def integration_branch=(name)
|
98
|
+
name = name.split('/').last if name =~ /\//
|
99
|
+
@git["build.branch"] = name
|
100
|
+
end
|
101
|
+
|
102
|
+
def integration_branches
|
103
|
+
@git.remote_branches
|
104
|
+
end
|
93
105
|
|
94
106
|
def integrate(forced=false)
|
95
107
|
return true if !forced && self.current_build == self.commit
|
@@ -148,14 +160,29 @@ class Heidi
|
|
148
160
|
|
149
161
|
lines = []
|
150
162
|
log.out.lines.each do |line|
|
151
|
-
color_less = line.gsub(/\e\[[^m]
|
152
|
-
commit = color_less.scan(/^[
|
153
|
-
|
163
|
+
color_less = line.gsub(/\e\[[^m]*m?/, '')
|
164
|
+
commit = color_less.scan(/^[^a-z0-9]+([a-z0-9]+)/).flatten.first
|
165
|
+
(graph, message) = line.chomp.split(commit)
|
166
|
+
lines << {
|
167
|
+
:line => line,
|
168
|
+
:commit => commit,
|
169
|
+
:build => builds.find(commit),
|
170
|
+
:graph => graph,
|
171
|
+
:message => message,
|
172
|
+
}
|
154
173
|
end
|
155
174
|
|
156
175
|
return lines
|
157
176
|
end
|
158
177
|
|
178
|
+
def stat(commit)
|
179
|
+
@git.stat(commit)
|
180
|
+
end
|
181
|
+
|
182
|
+
def diff(commit)
|
183
|
+
@git.diff(commit)
|
184
|
+
end
|
185
|
+
|
159
186
|
def unlock
|
160
187
|
File.unlink lock_file
|
161
188
|
end
|
@@ -148,6 +148,9 @@ pre.terminal {
|
|
148
148
|
.terminal a {
|
149
149
|
color: inherit;
|
150
150
|
text-decoration: none;
|
151
|
+
}
|
152
|
+
|
153
|
+
.terminal a.build {
|
151
154
|
font-weight: bold;
|
152
155
|
border-bottom: dashed #ccc 1px;
|
153
156
|
margin: 4px 0;
|
@@ -191,3 +194,9 @@ ul.projects {
|
|
191
194
|
width: 75%;
|
192
195
|
overflow: hidden;
|
193
196
|
}
|
197
|
+
|
198
|
+
label {
|
199
|
+
display: inline-block;
|
200
|
+
min-width: 120px;
|
201
|
+
font-weight: bold;
|
202
|
+
}
|
@@ -1,18 +1,22 @@
|
|
1
1
|
<h1><%= project.name %></h1>
|
2
2
|
|
3
|
-
<a href="/projects/<%= project.
|
3
|
+
<a href="/projects/<%= project.basename %>"><< back</a>
|
4
4
|
<br /><br />
|
5
5
|
|
6
6
|
<h2 class="<%= build.status %>"><%= build.commit %></h2>
|
7
|
-
|
7
|
+
<div class="column">
|
8
8
|
<% if build.status == "passed" %>
|
9
|
-
<a href='/projects/<%= project.
|
9
|
+
<a href='/projects/<%= project.basename %>/build/<%= build.commit %>/tar_ball'>download</a>
|
10
10
|
<br /><br />
|
11
11
|
<% end %>
|
12
12
|
|
13
13
|
| <% build.logs.each do |log| %>
|
14
14
|
<a href="#<%= log.file_name %>"><%= log.file_name %></a> |
|
15
15
|
<% end %>
|
16
|
+
</div>
|
17
|
+
<div class="column">
|
18
|
+
<a href="/projects/<%= project.basename %>/commit/<%= build.commit %>">Want to see the commit?</a>
|
19
|
+
</div>
|
16
20
|
<br class="clear" />
|
17
21
|
<br />
|
18
22
|
<br />
|
@@ -20,6 +24,6 @@
|
|
20
24
|
<% build.logs.each do |log| %>
|
21
25
|
<h3 class="log"><%= log.file_name %></h3>
|
22
26
|
<a name="<%= log.file_name %>" href="#top" class="top">top</a>
|
23
|
-
<pre class="terminal"><%= ansi_color_codes(log.contents) %></pre>
|
27
|
+
<pre class="terminal"><%= ansi_color_codes(h(log.contents)) %></pre>
|
24
28
|
<% end %>
|
25
29
|
<br /><br />
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<h1>Configure <%= project.name %></h1>
|
2
|
+
|
3
|
+
<form method="POST" action="/projects/<%= project.basename %>">
|
4
|
+
<label for="name">Name</label>
|
5
|
+
<input type="text" name="name" value="<%= project.name %>" />
|
6
|
+
<br />
|
7
|
+
<br />
|
8
|
+
|
9
|
+
<label for="branch">Integration branch</label>
|
10
|
+
<select name="branch">
|
11
|
+
<option value="">...</option>
|
12
|
+
<% project.integration_branches.each do |branch| %>
|
13
|
+
<% branch_name = branch.split("/").last %>
|
14
|
+
<option value="<%= branch_name %>" <%= "selected" if branch_name == project.integration_branch %>><%= branch %></option>
|
15
|
+
<% end %>
|
16
|
+
</select>
|
17
|
+
|
18
|
+
<br />
|
19
|
+
<br />
|
20
|
+
<input type="submit" />
|
21
|
+
</form>
|
@@ -2,7 +2,10 @@
|
|
2
2
|
<h1>Projects</h1>
|
3
3
|
<ul class="projects">
|
4
4
|
<% projects.each do |project| %>
|
5
|
-
<li class="<%= project.build_status %>"
|
5
|
+
<li class="<%= project.build_status %>">
|
6
|
+
<a href="/projects/<%= project.basename %>"><%= project.name %></a>
|
7
|
+
- <%= project.build_status %>
|
8
|
+
</li>
|
6
9
|
<% end %>
|
7
10
|
</ul>
|
8
11
|
</div>
|
@@ -9,21 +9,29 @@
|
|
9
9
|
latest = builds.select { |b| b.commit == project.latest_build }.first
|
10
10
|
%>
|
11
11
|
|
12
|
-
<
|
13
|
-
<
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
<
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
12
|
+
<div class="column">
|
13
|
+
<h2>Overview</h2>
|
14
|
+
<strong class="label">Current</strong> :
|
15
|
+
<% unless current.nil? %>
|
16
|
+
<a class="<%= current.status %>" href="/projects/<%= project.basename %>/build/<%= current.commit %>"><%= current.commit %></a>
|
17
|
+
<% end %>
|
18
|
+
<br />
|
19
|
+
<strong class="label">Latest successful</strong> :
|
20
|
+
<% unless latest.nil? %>
|
21
|
+
<a class="<%= latest.status %>" href="/projects/<%= project.basename %>/build/<%= latest.commit %>"><%= latest == current ? "current" : latest.commit %></a>
|
22
|
+
<% end %>
|
23
|
+
<br />
|
24
|
+
<strong class="label">Integration branch</strong> :
|
25
|
+
<%= project.integration_branch %>
|
26
|
+
<br />
|
27
|
+
</div>
|
28
|
+
<div class="column">
|
29
|
+
<a href="/projects/<%= project.basename %>/configure">Configure <%= project.name %></a>
|
30
|
+
</div>
|
31
|
+
<br class="clear"/>
|
23
32
|
<br />
|
24
33
|
<br />
|
25
34
|
|
26
35
|
<h2>Build history</h2>
|
27
|
-
<pre class="history terminal"><% project.log.each do |line| %><% build = nil
|
28
|
-
<%
|
29
|
-
<% end %><% end %></pre>
|
36
|
+
<pre class="history terminal"><% project.log.each do |line| %><% build = nil %><%= ansi_color_codes line[:graph] %><a href="/projects/<%= project.basename %>/commit/<%= line[:commit] %>"><%= line[:commit] %></a><% if (build = line[:build]) %><a class="build" href="/projects/<%= project.basename %>/build/<%= build.commit %>"><%= ansi_color_codes(line[:message]) %></a> <span class="status">[<span class="<%= build.status %>"><%= build.status %></span>] (<%= build.date %>, <%= build.author.gsub '<', '<' %>)</span><% else %><%= ansi_color_codes line[:message] %><% end %>
|
37
|
+
<% end %></pre>
|
data/lib/heidi/web.rb
CHANGED
@@ -84,18 +84,52 @@ class Heidi
|
|
84
84
|
|
85
85
|
end
|
86
86
|
|
87
|
-
|
88
|
-
project =
|
87
|
+
get '/projects/:name/commit/:commit' do
|
88
|
+
project = @heidi[params[:name]]
|
89
89
|
if project.nil?
|
90
90
|
return "no project by that name: #{params[:name]}"
|
91
91
|
end
|
92
92
|
|
93
|
-
|
93
|
+
commit = params[:commit]
|
94
|
+
|
95
|
+
erb(:commit, { :locals => {
|
96
|
+
:commit => commit,
|
97
|
+
:project => project,
|
98
|
+
:stat => project.stat(commit),
|
99
|
+
:diff => project.diff(commit),
|
100
|
+
}})
|
94
101
|
end
|
95
102
|
|
103
|
+
get '/projects/:name/configure' do
|
104
|
+
project = @heidi[params[:name]]
|
105
|
+
if project.nil?
|
106
|
+
return "no project by that name: #{params[:name]}"
|
107
|
+
end
|
108
|
+
|
109
|
+
erb(:config, { :locals => { :project => project } } )
|
110
|
+
end
|
111
|
+
|
112
|
+
post '/projects/:project_name' do
|
113
|
+
# update project
|
114
|
+
project = @heidi[params[:project_name]]
|
115
|
+
if project.nil?
|
116
|
+
return "no project by that name: #{params[:project_name]}"
|
117
|
+
end
|
118
|
+
|
119
|
+
project.name = params[:name]
|
120
|
+
project.integration_branch = params[:branch]
|
121
|
+
|
122
|
+
|
123
|
+
redirect "/projects/#{project.basename}", 302
|
124
|
+
end
|
96
125
|
|
97
126
|
helpers do
|
127
|
+
include Rack::Utils
|
128
|
+
alias_method :h, :escape_html
|
129
|
+
|
98
130
|
def ansi_color_codes(string)
|
131
|
+
return "" if string.nil?
|
132
|
+
|
99
133
|
string.gsub(/\e\[0?m/, '</span>').
|
100
134
|
gsub /\e\[[^m]+m/ do |codes|
|
101
135
|
colors = codes.gsub(/[\e\[m]+/, '')
|
metadata
CHANGED
@@ -1,116 +1,116 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: heidi
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.1
|
3
|
+
version: !ruby/object:Gem::Version
|
5
4
|
prerelease:
|
5
|
+
version: 0.3.0
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Hartog C. de Mik
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
|
13
|
+
date: 2012-02-14 00:00:00 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
15
16
|
name: thin
|
16
|
-
requirement: &
|
17
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
17
18
|
none: false
|
18
|
-
requirements:
|
19
|
-
- -
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
requirements:
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: "0"
|
22
23
|
type: :runtime
|
23
24
|
prerelease: false
|
24
|
-
version_requirements: *
|
25
|
-
- !ruby/object:Gem::Dependency
|
25
|
+
version_requirements: *id001
|
26
|
+
- !ruby/object:Gem::Dependency
|
26
27
|
name: sinatra
|
27
|
-
requirement: &
|
28
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
28
29
|
none: false
|
29
|
-
requirements:
|
30
|
-
- -
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version:
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements: *
|
36
|
-
- !ruby/object:Gem::Dependency
|
36
|
+
version_requirements: *id002
|
37
|
+
- !ruby/object:Gem::Dependency
|
37
38
|
name: simple_shell
|
38
|
-
requirement: &
|
39
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
39
40
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
version:
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: "0"
|
44
45
|
type: :runtime
|
45
46
|
prerelease: false
|
46
|
-
version_requirements: *
|
47
|
-
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: *id003
|
48
|
+
- !ruby/object:Gem::Dependency
|
48
49
|
name: rspec
|
49
|
-
requirement: &
|
50
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
50
51
|
none: false
|
51
|
-
requirements:
|
52
|
+
requirements:
|
52
53
|
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
+
- !ruby/object:Gem::Version
|
54
55
|
version: 2.8.0
|
55
56
|
type: :development
|
56
57
|
prerelease: false
|
57
|
-
version_requirements: *
|
58
|
-
- !ruby/object:Gem::Dependency
|
58
|
+
version_requirements: *id004
|
59
|
+
- !ruby/object:Gem::Dependency
|
59
60
|
name: rdoc
|
60
|
-
requirement: &
|
61
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
61
62
|
none: false
|
62
|
-
requirements:
|
63
|
+
requirements:
|
63
64
|
- - ~>
|
64
|
-
- !ruby/object:Gem::Version
|
65
|
-
version:
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: "3.12"
|
66
67
|
type: :development
|
67
68
|
prerelease: false
|
68
|
-
version_requirements: *
|
69
|
-
- !ruby/object:Gem::Dependency
|
69
|
+
version_requirements: *id005
|
70
|
+
- !ruby/object:Gem::Dependency
|
70
71
|
name: bundler
|
71
|
-
requirement: &
|
72
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
72
73
|
none: false
|
73
|
-
requirements:
|
74
|
+
requirements:
|
74
75
|
- - ~>
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
+
- !ruby/object:Gem::Version
|
76
77
|
version: 1.0.0
|
77
78
|
type: :development
|
78
79
|
prerelease: false
|
79
|
-
version_requirements: *
|
80
|
-
- !ruby/object:Gem::Dependency
|
80
|
+
version_requirements: *id006
|
81
|
+
- !ruby/object:Gem::Dependency
|
81
82
|
name: jeweler
|
82
|
-
requirement: &
|
83
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
83
84
|
none: false
|
84
|
-
requirements:
|
85
|
+
requirements:
|
85
86
|
- - ~>
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
+
- !ruby/object:Gem::Version
|
87
88
|
version: 1.8.3
|
88
89
|
type: :development
|
89
90
|
prerelease: false
|
90
|
-
version_requirements: *
|
91
|
-
- !ruby/object:Gem::Dependency
|
91
|
+
version_requirements: *id007
|
92
|
+
- !ruby/object:Gem::Dependency
|
92
93
|
name: rcov
|
93
|
-
requirement: &
|
94
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
94
95
|
none: false
|
95
|
-
requirements:
|
96
|
-
- -
|
97
|
-
- !ruby/object:Gem::Version
|
98
|
-
version:
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: "0"
|
99
100
|
type: :development
|
100
101
|
prerelease: false
|
101
|
-
version_requirements: *
|
102
|
+
version_requirements: *id008
|
102
103
|
description: CI-Joe alike CI system called Heidi.
|
103
104
|
email: hartog@organisedminds.com
|
104
|
-
executables:
|
105
|
+
executables:
|
105
106
|
- heidi
|
106
|
-
- heidi_console
|
107
|
-
- heidi_cron
|
108
107
|
- heidi_web
|
109
108
|
extensions: []
|
110
|
-
|
109
|
+
|
110
|
+
extra_rdoc_files:
|
111
111
|
- LICENSE.txt
|
112
112
|
- README.rdoc
|
113
|
-
files:
|
113
|
+
files:
|
114
114
|
- .document
|
115
115
|
- .rspec
|
116
116
|
- Gemfile
|
@@ -120,8 +120,6 @@ files:
|
|
120
120
|
- Rakefile
|
121
121
|
- VERSION
|
122
122
|
- bin/heidi
|
123
|
-
- bin/heidi_console
|
124
|
-
- bin/heidi_cron
|
125
123
|
- bin/heidi_web
|
126
124
|
- heidi.gemspec
|
127
125
|
- lib/heidi.rb
|
@@ -139,6 +137,8 @@ files:
|
|
139
137
|
- lib/heidi/web/public/images/OrganisedMinds.png
|
140
138
|
- lib/heidi/web/public/images/heidi.jpeg
|
141
139
|
- lib/heidi/web/views/build.erb
|
140
|
+
- lib/heidi/web/views/commit.erb
|
141
|
+
- lib/heidi/web/views/config.erb
|
142
142
|
- lib/heidi/web/views/home.erb
|
143
143
|
- lib/heidi/web/views/layout.erb
|
144
144
|
- lib/heidi/web/views/project.erb
|
@@ -153,31 +153,34 @@ files:
|
|
153
153
|
- spec/heidi_spec.rb
|
154
154
|
- spec/spec_helper.rb
|
155
155
|
homepage: http://github.com/coffeeaddict/heid
|
156
|
-
licenses:
|
156
|
+
licenses:
|
157
157
|
- MIT
|
158
158
|
post_install_message:
|
159
159
|
rdoc_options: []
|
160
|
-
|
160
|
+
|
161
|
+
require_paths:
|
161
162
|
- lib
|
162
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
163
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
163
164
|
none: false
|
164
|
-
requirements:
|
165
|
-
- -
|
166
|
-
- !ruby/object:Gem::Version
|
167
|
-
|
168
|
-
segments:
|
165
|
+
requirements:
|
166
|
+
- - ">="
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
hash: 2807118662915516022
|
169
|
+
segments:
|
169
170
|
- 0
|
170
|
-
|
171
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
|
+
version: "0"
|
172
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
172
173
|
none: false
|
173
|
-
requirements:
|
174
|
-
- -
|
175
|
-
- !ruby/object:Gem::Version
|
176
|
-
version:
|
174
|
+
requirements:
|
175
|
+
- - ">="
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: "0"
|
177
178
|
requirements: []
|
179
|
+
|
178
180
|
rubyforge_project:
|
179
|
-
rubygems_version: 1.8.
|
181
|
+
rubygems_version: 1.8.16
|
180
182
|
signing_key:
|
181
183
|
specification_version: 3
|
182
184
|
summary: A naive CI system
|
183
185
|
test_files: []
|
186
|
+
|
data/bin/heidi_console
DELETED