ciquantum 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +21 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +18 -0
- data/Rakefile +34 -0
- data/bin/ciquantum +50 -0
- data/ciquantum.gemspec +30 -0
- data/examples/build-failed +22 -0
- data/examples/build-worked +22 -0
- data/examples/cijoe.ru +15 -0
- data/examples/cijoed +53 -0
- data/lib/ciquantum.rb +227 -0
- data/lib/ciquantum/adapter.rb +11 -0
- data/lib/ciquantum/build.rb +67 -0
- data/lib/ciquantum/commit.rb +28 -0
- data/lib/ciquantum/config.rb +43 -0
- data/lib/ciquantum/public/favicon.ico +0 -0
- data/lib/ciquantum/public/octocat.png +0 -0
- data/lib/ciquantum/public/screen.css +213 -0
- data/lib/ciquantum/queue.rb +55 -0
- data/lib/ciquantum/server.rb +117 -0
- data/lib/ciquantum/unfuddle_adapter.rb +19 -0
- data/lib/ciquantum/version.rb +3 -0
- data/lib/ciquantum/views/json.erb +16 -0
- data/lib/ciquantum/views/template.erb +89 -0
- data/test/fixtures/payload.json +52 -0
- data/test/helper.rb +48 -0
- data/test/test_ciquantum_queue.rb +28 -0
- data/test/test_hooks.rb +81 -0
- metadata +209 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
class CIQuantum
|
2
|
+
class UnfuddleAdapter
|
3
|
+
|
4
|
+
def self.commit_url commit
|
5
|
+
"http://#{commit.user}.unfuddle.com/a#/repositories/#{commit.project}/commit?commit=#{commit.sha}"
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.git_user_and_project
|
9
|
+
["linkfeed", "17607"]
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.project_url
|
13
|
+
user, project = git_user_and_project
|
14
|
+
"https://#{user}.unfuddle.com/a#/repositories/#{project}/browse"
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
{ "jobs": [
|
2
|
+
<% if quantum.last_build %>
|
3
|
+
{"name":"<%= quantum.projectname || quantum.project %>",
|
4
|
+
"url":"<%= quantum.url %>",
|
5
|
+
"color":"<%= quantum.last_build.status.to_s == "failed" ? 'red' : 'blue' %>",
|
6
|
+
"status":"<%= quantum.last_build.status %>",
|
7
|
+
"started_at":"<%= pretty_time(quantum.last_build.started_at) %>",
|
8
|
+
"finished_at":"<%= pretty_time(quantum.last_build.finished_at) %>",
|
9
|
+
"duration":"<%= quantum.last_build.duration if quantum.last_build.duration %>",
|
10
|
+
"sha":"<%= quantum.last_build.sha %>",
|
11
|
+
"short_sha":"<%= quantum.last_build.short_sha %>",
|
12
|
+
"commit_url":"<%= quantum.last_build.commit.url if quantum.last_build.commit %>",
|
13
|
+
"branch":"<%= quantum.last_build.branch %>"
|
14
|
+
}
|
15
|
+
<% end %>
|
16
|
+
]}
|
@@ -0,0 +1,89 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<link href="<%= ciquantum_root %>/screen.css" media="screen" rel="stylesheet" type="text/css" />
|
5
|
+
<link rel="shortcut icon" href="<%= ciquantum_root %>/favicon.ico" type="image/x-icon" />
|
6
|
+
<title><%= h(quantum.projectname) %>: CI Quantum</title>
|
7
|
+
</head>
|
8
|
+
<body>
|
9
|
+
<div class="site">
|
10
|
+
<div class="title">
|
11
|
+
<a href="<%= ciquantum_root %>/">CI Quantum</a>
|
12
|
+
<span class="extra">because knowing is half the battle</span>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<div id="home">
|
16
|
+
<h1><a href="<%= quantum.url %>"><%= quantum.projectname %></a></h1>
|
17
|
+
<ul class="posts">
|
18
|
+
<% if quantum.current_build %>
|
19
|
+
<li>
|
20
|
+
<span class="date"><%= pretty_time(quantum.current_build.started_at) if quantum.current_build %></span> »
|
21
|
+
<% if quantum.current_build.sha %>
|
22
|
+
Building <%= quantum.current_build.branch %> at <a href="<%= quantum.current_build.commit.url %>"><%= quantum.current_build.short_sha %></a> <small>(pid: <%= quantum.pid %>)</small>
|
23
|
+
<% else %>
|
24
|
+
Build starting...
|
25
|
+
<% end %>
|
26
|
+
</li>
|
27
|
+
<% else %>
|
28
|
+
<li>
|
29
|
+
<form method="POST">
|
30
|
+
<input type="hidden", name="rebuild" value="true">
|
31
|
+
<select name="branch">
|
32
|
+
<% for @branch in quantum.git_branches %>
|
33
|
+
<option value="<%= @branch %>" <%= "selected=\"selected\"" if (@branch == quantum.git_branch) %> >"<%= @branch %>"</option>
|
34
|
+
<% end %>
|
35
|
+
</select>
|
36
|
+
<input type="submit" value="Build"/>
|
37
|
+
</form>
|
38
|
+
</li>
|
39
|
+
<% end %>
|
40
|
+
|
41
|
+
<% if quantum.last_build %>
|
42
|
+
<li>
|
43
|
+
<span class="date"><%= pretty_time(quantum.last_build.finished_at) %></span> »
|
44
|
+
<% if quantum.last_build.sha %>
|
45
|
+
Built <%= quantum.last_build.branch %> at <a href="<%= quantum.last_build.commit.url %>"><%= quantum.last_build.short_sha %></a>
|
46
|
+
<% end %>
|
47
|
+
<span class="<%= quantum.last_build.status %>">(<%= quantum.last_build.status %>)</span>
|
48
|
+
|
49
|
+
<% if quantum.last_build.duration %>
|
50
|
+
in <span class="duration"><%= quantum.last_build.duration %></span> seconds.
|
51
|
+
<% end %>
|
52
|
+
|
53
|
+
<% if !quantum.coverage_path.empty? || true %>
|
54
|
+
<span class="coverage"><a href="coverage">Code coverage</a>
|
55
|
+
<% end %>
|
56
|
+
</li>
|
57
|
+
<% if quantum.last_build.failed? %>
|
58
|
+
<li><pre class="terminal"><code><%=ansi_color_codes h(quantum.last_build.output) %></code></pre></li>
|
59
|
+
<% end %>
|
60
|
+
<% end %>
|
61
|
+
</ul>
|
62
|
+
</div>
|
63
|
+
|
64
|
+
<div class="footer">
|
65
|
+
<div class="contact">
|
66
|
+
<p>
|
67
|
+
<a href="https://github.com/meredian/ciquantum#readme">Documentation</a><br/>
|
68
|
+
<a href="https://github.com/meredian/ciquantum">Source</a><br/>
|
69
|
+
<a href="https://github.com/meredian/ciquantum/issues">Issues</a><br/>
|
70
|
+
<a href="https://github.com/meredian/ciquantum/tree/v<%= CIQuantum::VERSION %>">v<%= CIQuantum::VERSION %></a>
|
71
|
+
</p>
|
72
|
+
</div>
|
73
|
+
<div class="contact">
|
74
|
+
<p>
|
75
|
+
Designed by <a href="http://tom.preston-werner.com/">Tom Preston-Werner</a><br/>
|
76
|
+
Influenced by <a href="http://integrityapp.com/">Integrity</a><br/>
|
77
|
+
Built with <a href="http://sinatrarb.com/">Sinatra</a><br/>
|
78
|
+
Keep it simple, Sam.
|
79
|
+
</p>
|
80
|
+
</div>
|
81
|
+
<div class="rss">
|
82
|
+
<a href="http://github.com/meredian/ciquantum">
|
83
|
+
<img src="<%= ciquantum_root %>/octocat.png" alt="Octocat!" />
|
84
|
+
</a>
|
85
|
+
</div>
|
86
|
+
</div>
|
87
|
+
</div>
|
88
|
+
</body>
|
89
|
+
</html>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
{
|
2
|
+
"after": "416cb2f7105e7f989bc223d1a975b93a6491b276",
|
3
|
+
"before": "0ae4da1eea2d191b33ebfbd5db48e3c1f91953ad",
|
4
|
+
"commits": [
|
5
|
+
{
|
6
|
+
"added": [
|
7
|
+
|
8
|
+
],
|
9
|
+
"author": {
|
10
|
+
"email": "joshua.owens@gmail.com",
|
11
|
+
"name": "Josh Owens",
|
12
|
+
"username": "queso"
|
13
|
+
},
|
14
|
+
"id": "09293a1703b3bdb36aba70d38abd5e44396c50a5",
|
15
|
+
"message": "Update README",
|
16
|
+
"modified": [
|
17
|
+
"README.textile"
|
18
|
+
],
|
19
|
+
"removed": [
|
20
|
+
|
21
|
+
],
|
22
|
+
"timestamp": "2011-02-07T15:27:35-08:00",
|
23
|
+
"url": "https:\/\/github.com\/fourbeansoup\/broth\/commit\/09293a1703b3bdb36aba70d38abd5e44396c50a5"
|
24
|
+
}
|
25
|
+
],
|
26
|
+
"compare": "https:\/\/github.com\/fourbeansoup\/broth\/compare\/0ae4da1...416cb2f",
|
27
|
+
"forced": false,
|
28
|
+
"ref": "refs\/heads\/master",
|
29
|
+
"repository": {
|
30
|
+
"created_at": "2009\/12\/05 10:44:57 -0800",
|
31
|
+
"description": "FourBeanSoup's Broth Application, a tasty starting point for every app",
|
32
|
+
"fork": true,
|
33
|
+
"forks": 4,
|
34
|
+
"has_downloads": true,
|
35
|
+
"has_issues": true,
|
36
|
+
"has_wiki": true,
|
37
|
+
"homepage": "",
|
38
|
+
"language": "JavaScript",
|
39
|
+
"name": "broth",
|
40
|
+
"open_issues": 2,
|
41
|
+
"organization": "fourbeansoup",
|
42
|
+
"owner": {
|
43
|
+
"email": "josh+scm@fourbeansoup.com",
|
44
|
+
"name": "fourbeansoup"
|
45
|
+
},
|
46
|
+
"private": false,
|
47
|
+
"pushed_at": "2011\/02\/07 17:17:00 -0800",
|
48
|
+
"size": 604,
|
49
|
+
"url": "https:\/\/github.com\/fourbeansoup\/broth",
|
50
|
+
"watchers": 10
|
51
|
+
}
|
52
|
+
}
|
data/test/helper.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'test/unit'
|
3
|
+
require 'mocha'
|
4
|
+
|
5
|
+
ENV['RACK_ENV'] = 'test'
|
6
|
+
|
7
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
8
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
9
|
+
|
10
|
+
require 'ciquantum'
|
11
|
+
|
12
|
+
CIQuantum::Server.set :project_path, "."
|
13
|
+
CIQuantum::Server.set :environment, "test"
|
14
|
+
|
15
|
+
TMP_DIR = '/tmp/ciquantum_test'
|
16
|
+
|
17
|
+
def tmp_dir
|
18
|
+
TMP_DIR
|
19
|
+
end
|
20
|
+
|
21
|
+
def setup_git_info(options = {})
|
22
|
+
@tmp_dirs ||= []
|
23
|
+
@tmp_dirs += [options[:tmp_dir]]
|
24
|
+
create_tmpdir!(options[:tmp_dir])
|
25
|
+
dir = options[:tmp_dir] || tmp_dir
|
26
|
+
`cd #{dir} && git init`
|
27
|
+
options[:config].each do |key, value|
|
28
|
+
`cd #{dir} && git config --add #{key} "#{value}"`
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
def teardown_git_info
|
33
|
+
remove_tmpdir!
|
34
|
+
@tmp_dirs.each do |dir|
|
35
|
+
remove_tmpdir!(dir)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def remove_tmpdir!(passed_dir = nil)
|
40
|
+
FileUtils.rm_rf(passed_dir || tmp_dir)
|
41
|
+
end
|
42
|
+
|
43
|
+
def create_tmpdir!(passed_dir = nil)
|
44
|
+
FileUtils.mkdir_p(passed_dir || tmp_dir)
|
45
|
+
end
|
46
|
+
|
47
|
+
class Test::Unit::TestCase
|
48
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestCIQuantumQueue < Test::Unit::TestCase
|
4
|
+
def test_a_disabled_queue
|
5
|
+
subject = CIQuantum::Queue.new(false)
|
6
|
+
subject.append_unless_already_exists("test")
|
7
|
+
assert_equal false, subject.waiting?
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_adding_two_items_to_a_queue
|
11
|
+
subject = CIQuantum::Queue.new(true)
|
12
|
+
subject.append_unless_already_exists("test")
|
13
|
+
subject.append_unless_already_exists(nil)
|
14
|
+
assert_equal true, subject.waiting?
|
15
|
+
assert_equal "test", subject.next_branch_to_build
|
16
|
+
assert_equal nil, subject.next_branch_to_build
|
17
|
+
assert_equal false, subject.waiting?
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_adding_two_duplicate_items_to_a_queue
|
21
|
+
subject = CIQuantum::Queue.new(true)
|
22
|
+
subject.append_unless_already_exists("test")
|
23
|
+
subject.append_unless_already_exists("test")
|
24
|
+
assert_equal true, subject.waiting?
|
25
|
+
assert_equal "test", subject.next_branch_to_build
|
26
|
+
assert_equal false, subject.waiting?
|
27
|
+
end
|
28
|
+
end
|
data/test/test_hooks.rb
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
# mock files to true
|
4
|
+
class File
|
5
|
+
class << self
|
6
|
+
alias orig_exists? exists?
|
7
|
+
alias orig_executable? executable?
|
8
|
+
|
9
|
+
def exists?(f)
|
10
|
+
return true if $hook_override
|
11
|
+
orig_exists? f
|
12
|
+
end
|
13
|
+
def executable?(f)
|
14
|
+
return true if $hook_override
|
15
|
+
orig_executable? f
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# #mock file to be the file I want
|
21
|
+
class CIQuantum
|
22
|
+
attr_writer :last_build
|
23
|
+
alias orig_path_in_project path_in_project
|
24
|
+
alias orig_git_user_and_project git_user_and_project
|
25
|
+
|
26
|
+
def path_in_project(f)
|
27
|
+
return '/tmp/test' if $hook_override
|
28
|
+
orig_path_in_project
|
29
|
+
end
|
30
|
+
|
31
|
+
def git_user_and_project
|
32
|
+
return ['mine','yours'] if $hook_override
|
33
|
+
orig_git_user_and_project
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
class CIQuantum::Commit
|
38
|
+
attr_writer :raw_commit
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
class TestHooks < Test::Unit::TestCase
|
44
|
+
def teardown
|
45
|
+
$hook_override = nil
|
46
|
+
end
|
47
|
+
|
48
|
+
def setup
|
49
|
+
$hook_override = true
|
50
|
+
open("/tmp/test",'w') do |file|
|
51
|
+
file.write "echo $test\n"
|
52
|
+
file.write "echo $AUTHOR\n"
|
53
|
+
file.write "export test=foo\n"
|
54
|
+
end
|
55
|
+
File.chmod(0777,'/tmp/test')
|
56
|
+
|
57
|
+
@ciquantum = CIQuantum.new('/tmp')
|
58
|
+
@ciquantum.last_build = CIQuantum::Build.new "path", "user", "project", Time.now, Time.now,
|
59
|
+
"deadbeef", :failed, "output", nil
|
60
|
+
@ciquantum.last_build.commit.raw_commit = "Author: commit author\nDate: now"
|
61
|
+
end
|
62
|
+
|
63
|
+
def test_leave_env_intact
|
64
|
+
ENV['AUTHOR'] = 'foo'
|
65
|
+
@ciquantum.run_hook("/tmp/test")
|
66
|
+
assert ENV.size != 0, 'ENV is empty but should not be'
|
67
|
+
assert ENV['AUTHOR'] == 'foo', 'ENV munged a value'
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_empty_hook_env
|
71
|
+
ENV["test"] = 'should not be shown'
|
72
|
+
output = @ciquantum.run_hook("/tmp/test")
|
73
|
+
assert_equal "\ncommit author\n", output
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_hook_munge_env
|
77
|
+
ENV['test'] = 'bar'
|
78
|
+
output = @ciquantum.run_hook("/tmp/test")
|
79
|
+
assert ENV['test'] == 'bar'
|
80
|
+
end
|
81
|
+
end
|
metadata
ADDED
@@ -0,0 +1,209 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ciquantum
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Anton Sidelnikov
|
9
|
+
- Chris Wanstrath
|
10
|
+
- Josh Owens
|
11
|
+
autorequire:
|
12
|
+
bindir: bin
|
13
|
+
cert_chain: []
|
14
|
+
date: 2012-04-23 00:00:00.000000000 Z
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: bundler
|
18
|
+
requirement: !ruby/object:Gem::Requirement
|
19
|
+
none: false
|
20
|
+
requirements:
|
21
|
+
- - ! '>='
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: '0'
|
24
|
+
type: :runtime
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ! '>='
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
version: '0'
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: rake
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
35
|
+
none: false
|
36
|
+
requirements:
|
37
|
+
- - ! '>='
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
type: :runtime
|
41
|
+
prerelease: false
|
42
|
+
version_requirements: !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: json
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
type: :runtime
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
none: false
|
60
|
+
requirements:
|
61
|
+
- - ! '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
- !ruby/object:Gem::Dependency
|
65
|
+
name: tinder
|
66
|
+
requirement: !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ! '>='
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: 1.4.0
|
72
|
+
type: :runtime
|
73
|
+
prerelease: false
|
74
|
+
version_requirements: !ruby/object:Gem::Requirement
|
75
|
+
none: false
|
76
|
+
requirements:
|
77
|
+
- - ! '>='
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: 1.4.0
|
80
|
+
- !ruby/object:Gem::Dependency
|
81
|
+
name: sinatra
|
82
|
+
requirement: !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
type: :runtime
|
89
|
+
prerelease: false
|
90
|
+
version_requirements: !ruby/object:Gem::Requirement
|
91
|
+
none: false
|
92
|
+
requirements:
|
93
|
+
- - ! '>='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
- !ruby/object:Gem::Dependency
|
97
|
+
name: choice
|
98
|
+
requirement: !ruby/object:Gem::Requirement
|
99
|
+
none: false
|
100
|
+
requirements:
|
101
|
+
- - ! '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - ! '>='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: rack-test
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
none: false
|
116
|
+
requirements:
|
117
|
+
- - ! '>='
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '0'
|
120
|
+
type: :development
|
121
|
+
prerelease: false
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
none: false
|
124
|
+
requirements:
|
125
|
+
- - ! '>='
|
126
|
+
- !ruby/object:Gem::Version
|
127
|
+
version: '0'
|
128
|
+
- !ruby/object:Gem::Dependency
|
129
|
+
name: mocha
|
130
|
+
requirement: !ruby/object:Gem::Requirement
|
131
|
+
none: false
|
132
|
+
requirements:
|
133
|
+
- - ! '>='
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0'
|
136
|
+
type: :development
|
137
|
+
prerelease: false
|
138
|
+
version_requirements: !ruby/object:Gem::Requirement
|
139
|
+
none: false
|
140
|
+
requirements:
|
141
|
+
- - ! '>='
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
version: '0'
|
144
|
+
description: Ciquantum is a sinatra-based continuous integration server, based on
|
145
|
+
cijoe gem
|
146
|
+
email: ndmeredian@gmail.com
|
147
|
+
executables:
|
148
|
+
- ciquantum
|
149
|
+
extensions: []
|
150
|
+
extra_rdoc_files: []
|
151
|
+
files:
|
152
|
+
- .gitignore
|
153
|
+
- Gemfile
|
154
|
+
- LICENSE
|
155
|
+
- README.md
|
156
|
+
- Rakefile
|
157
|
+
- bin/ciquantum
|
158
|
+
- ciquantum.gemspec
|
159
|
+
- examples/build-failed
|
160
|
+
- examples/build-worked
|
161
|
+
- examples/cijoe.ru
|
162
|
+
- examples/cijoed
|
163
|
+
- lib/ciquantum.rb
|
164
|
+
- lib/ciquantum/adapter.rb
|
165
|
+
- lib/ciquantum/build.rb
|
166
|
+
- lib/ciquantum/commit.rb
|
167
|
+
- lib/ciquantum/config.rb
|
168
|
+
- lib/ciquantum/public/favicon.ico
|
169
|
+
- lib/ciquantum/public/octocat.png
|
170
|
+
- lib/ciquantum/public/screen.css
|
171
|
+
- lib/ciquantum/queue.rb
|
172
|
+
- lib/ciquantum/server.rb
|
173
|
+
- lib/ciquantum/unfuddle_adapter.rb
|
174
|
+
- lib/ciquantum/version.rb
|
175
|
+
- lib/ciquantum/views/json.erb
|
176
|
+
- lib/ciquantum/views/template.erb
|
177
|
+
- test/fixtures/payload.json
|
178
|
+
- test/helper.rb
|
179
|
+
- test/test_ciquantum_queue.rb
|
180
|
+
- test/test_hooks.rb
|
181
|
+
homepage: https://github.com/meredian/ciquantum
|
182
|
+
licenses: []
|
183
|
+
post_install_message:
|
184
|
+
rdoc_options: []
|
185
|
+
require_paths:
|
186
|
+
- lib
|
187
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
188
|
+
none: false
|
189
|
+
requirements:
|
190
|
+
- - ! '>='
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '0'
|
193
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
194
|
+
none: false
|
195
|
+
requirements:
|
196
|
+
- - ! '>='
|
197
|
+
- !ruby/object:Gem::Version
|
198
|
+
version: '0'
|
199
|
+
requirements: []
|
200
|
+
rubyforge_project:
|
201
|
+
rubygems_version: 1.8.21
|
202
|
+
signing_key:
|
203
|
+
specification_version: 3
|
204
|
+
summary: Continius Integration server for internal usage at Social Quantum
|
205
|
+
test_files:
|
206
|
+
- test/fixtures/payload.json
|
207
|
+
- test/helper.rb
|
208
|
+
- test/test_ciquantum_queue.rb
|
209
|
+
- test/test_hooks.rb
|