ci_in_a_can 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
data/bin/ciinacan CHANGED
@@ -23,7 +23,10 @@ def web_file
23
23
  <<EOF
24
24
  require 'ci_in_a_can'
25
25
 
26
- CiInACan::App.jobs_location = File.expand_path(File.dirname(__FILE__) + '/../jobs')
26
+ this_directory = File.expand_path(File.dirname(__FILE__) + '/../')
27
+
28
+ eval("CiInACan::App.jobs_location = '\#{this_directory}' + '/jobs'")
29
+ eval("CiInACan.results_location = '\#{this_directory}' + '/results'")
27
30
 
28
31
  use CiInACan::App
29
32
  run Sinatra::Application
@@ -1,6 +1,4 @@
1
1
  require 'sinatra/base'
2
- require 'json'
3
- require 'uuid'
4
2
 
5
3
  module CiInACan
6
4
 
@@ -11,6 +9,7 @@ module CiInACan
11
9
  end
12
10
 
13
11
  get '/test_result/:id' do
12
+ CiInACan.results_location = '/Users/darrencauthon/desktop/ci_in_a_can/spec/temp'
14
13
  CiInACan::TestResult.find(params[:id]).to_json
15
14
  end
16
15
 
@@ -3,10 +3,8 @@ module CiInACan
3
3
  module Bash
4
4
 
5
5
  def self.run command
6
- result = CiInACan::BashResult.new
7
- result.output = backtick command
8
- result.exit_code = the_exit_code
9
- result
6
+ CiInACan::BashResult.new(output: backtick(command),
7
+ exit_code: the_exit_code)
10
8
  end
11
9
 
12
10
  def self.backtick command
@@ -2,6 +2,8 @@ module CiInACan
2
2
 
3
3
  class BashResult
4
4
 
5
+ params_constructor
6
+
5
7
  attr_accessor :exit_code, :output
6
8
 
7
9
  def successful
@@ -1,21 +1,13 @@
1
1
  module CiInACan
2
2
 
3
3
  class Build
4
+ params_constructor
4
5
 
5
- attr_accessor :git_ssh, :local_location, :repo, :sha
6
- attr_accessor :id
6
+ attr_accessor :id, :git_ssh, :sha,
7
+ :local_location, :repo
7
8
 
8
9
  def self.parse content
9
- data = JSON.parse content
10
- data['payload'] = JSON.parse data['payload']
11
-
12
- splat = data['payload']['compare'].split('/')
13
-
14
- build = self.new
15
- build.git_ssh = "git@github.com:#{splat[3]}/#{splat[4]}.git"
16
- build.repo = "#{splat[3]}/#{splat[4]}"
17
- build.sha = data['payload']['head_commit']['id']
18
- build
10
+ GithubBuildParser.new.parse content
19
11
  end
20
12
 
21
13
  def commands
@@ -1,7 +1,17 @@
1
1
  module CiInACan
2
+
2
3
  module Cloner
4
+
3
5
  def self.clone_a_local_copy_for build
4
- CiInACan::Bash.run "git clone #{build.git_ssh} #{build.local_location}; cd #{build.local_location}; git checkout #{build.sha}"
6
+ CiInACan::Bash.run commands_to_run_for(build).join('; ')
5
7
  end
8
+
9
+ def self.commands_to_run_for build
10
+ ["git clone #{build.git_ssh} #{build.local_location}",
11
+ "cd #{build.local_location}",
12
+ "git checkout #{build.sha}"]
13
+ end
14
+
6
15
  end
16
+
7
17
  end
@@ -1,10 +1,15 @@
1
1
  module CiInACan
2
+
2
3
  module Daemon
4
+
3
5
  def self.start options
4
6
  CiInACan.site_url = options[:site_url]
5
7
  CiInACan::Github.access_token = options[:access_token]
6
8
  CiInACan::Watcher.watch options[:watching_location], options[:working_location]
9
+
7
10
  sleep
8
11
  end
12
+
9
13
  end
14
+
10
15
  end
@@ -5,24 +5,34 @@ module CiInACan
5
5
  module Github
6
6
 
7
7
  class << self
8
-
9
8
  attr_accessor :access_token
9
+ end
10
10
 
11
- def client
12
- return nil if access_token.to_s == ''
13
- Octokit::Client.new access_token: access_token
14
- end
11
+ def self.client
12
+ return nil if access_token.to_s == ''
13
+ Octokit::Client.new(access_token: access_token)
14
+ end
15
15
 
16
- def report_pending_status_for build
17
- return nil unless client
18
- client.create_status build.repo, build.sha, 'pending'
19
- end
16
+ def self.report_pending_status_for build
17
+ return nil unless client
18
+ client.create_status build.repo, build.sha, 'pending'
19
+ end
20
20
 
21
- def report_complete_status_for build, test_result
22
- return nil unless client
23
- client.create_status(build.repo, build.sha, (test_result.passed ? 'success' : 'failure'), { target_url: "#{CiInACan.site_url}/test_result/#{test_result.id}" } )
24
- end
21
+ def self.report_complete_status_for build, test_result
22
+ return nil unless client
23
+ client.create_status(build.repo, build.sha,
24
+ complete_status_from(test_result),
25
+ { target_url: target_url_for(test_result) } )
26
+ end
27
+
28
+ private
29
+
30
+ def self.target_url_for test_result
31
+ "#{CiInACan.site_url}/test_result/#{test_result.id}"
32
+ end
25
33
 
34
+ def self.complete_status_from test_result
35
+ (test_result.passed ? 'success' : 'failure')
26
36
  end
27
37
 
28
38
  end
@@ -0,0 +1,36 @@
1
+ module CiInACan
2
+
3
+ class GithubBuildParser
4
+
5
+ def parse content
6
+ payload = extract_payload_from content
7
+ project = extract_repo_from payload
8
+
9
+ CiInACan::Build.new(git_ssh: "git@github.com:#{project}.git",
10
+ repo: project,
11
+ sha: extract_sha_from(payload))
12
+ end
13
+
14
+ private
15
+
16
+ def extract_repo_from payload
17
+ username, project_name = get_username_and_project_name_from payload
18
+ "#{username}/#{project_name}"
19
+ end
20
+
21
+ def extract_payload_from content
22
+ data = JSON.parse content
23
+ JSON.parse data['payload']
24
+ end
25
+
26
+ def get_username_and_project_name_from payload
27
+ splat = payload['compare'].split('/')
28
+ [splat[3], splat[4]]
29
+ end
30
+
31
+ def extract_sha_from payload
32
+ payload['head_commit']['id']
33
+ end
34
+
35
+ end
36
+ end
@@ -3,10 +3,28 @@ module CiInACan
3
3
  module Runner
4
4
 
5
5
  def self.run build
6
+ report_pending_status_for build
7
+ clone_a_local_copy_of build
8
+ test_results = run_the_tests_for build
9
+ send_notifications_for build, test_results
10
+ end
11
+
12
+ private
13
+
14
+ def self.send_notifications_for build, test_results
15
+ CiInACan::TestResultNotifier.send_for build, test_results
16
+ end
17
+
18
+ def self.run_the_tests_for build
19
+ CiInACan::TestRunner.run_tests_for build
20
+ end
21
+
22
+ def self.report_pending_status_for build
6
23
  CiInACan::Github.report_pending_status_for build
24
+ end
25
+
26
+ def self.clone_a_local_copy_of build
7
27
  CiInACan::Cloner.clone_a_local_copy_for build
8
- test_results = CiInACan::TestRunner.run_tests_for build
9
- CiInACan::TestResultNotifier.send_for build, test_results
10
28
  end
11
29
 
12
30
  end
@@ -1,20 +1,35 @@
1
- require 'subtle'
2
-
3
1
  module CiInACan
4
2
  class TestResult
3
+
4
+ PERSISTENCE_TYPE = 'test_result'
5
+
5
6
  params_constructor
7
+
6
8
  attr_accessor :id
7
9
  attr_accessor :passed, :output
8
10
 
9
11
  def self.create values
10
- test_result = self.new values
11
- test_result.id = UUID.new.generate
12
- CiInACan::Persistence.save "test_result", test_result.id, test_result
12
+ test_result = create_the_test_result_from values
13
+ save_this test_result
13
14
  test_result
14
15
  end
15
16
 
16
17
  def self.find id
17
- CiInACan::Persistence.find "test_result", id
18
+ CiInACan::Persistence.find PERSISTENCE_TYPE, id
19
+ end
20
+
21
+ def to_json
22
+ { id: id, passed: passed, output: output }.to_json
23
+ end
24
+
25
+ private
26
+
27
+ def self.create_the_test_result_from values
28
+ self.new values.merge(id: UUID.new.generate)
29
+ end
30
+
31
+ def self.save_this test_result
32
+ CiInACan::Persistence.save PERSISTENCE_TYPE, test_result.id, test_result
18
33
  end
19
34
  end
20
35
  end
@@ -1,7 +1,17 @@
1
1
  module CiInACan
2
+
2
3
  module TestResultNotifier
4
+
3
5
  def self.send_for build, test_result
6
+ report_results_to_github build, test_result
7
+ end
8
+
9
+ private
10
+
11
+ def self.report_results_to_github build, test_result
4
12
  CiInACan::Github.report_complete_status_for build, test_result
5
13
  end
14
+
6
15
  end
16
+
7
17
  end
@@ -1,13 +1,27 @@
1
1
  module CiInACan
2
+
2
3
  module TestRunner
4
+
3
5
  def self.run_tests_for build
4
- commands = ["cd #{build.local_location}"]
5
- build.commands.each { |c| commands << c }
6
+ bash_result = run get_commands_for(build)
7
+ build_test_result_from bash_result
8
+ end
6
9
 
7
- bash_result = CiInACan::Bash.run commands.join('; ')
10
+ private
8
11
 
12
+ def self.build_test_result_from bash_result
9
13
  CiInACan::TestResult.create( { passed: bash_result.successful,
10
- output: bash_result.output } )
14
+ output: bash_result.output } )
15
+ end
16
+
17
+ def self.run commands
18
+ CiInACan::Bash.run commands.join('; ')
11
19
  end
20
+
21
+ def self.get_commands_for build
22
+ ["cd #{build.local_location}", build.commands].flatten
23
+ end
24
+
12
25
  end
26
+
13
27
  end
@@ -1,3 +1,3 @@
1
1
  module CiInACan
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -1,5 +1,4 @@
1
1
  require 'listen'
2
- require 'json'
3
2
 
4
3
  module CiInACan
5
4
 
@@ -19,17 +18,22 @@ module CiInACan
19
18
  end
20
19
 
21
20
  def build_callback working_location
22
- Proc.new do |modified, added, removed|
23
- next unless added.count > 0
21
+ Proc.new do |_, new_files, _|
22
+ next unless new_files.count > 0
24
23
 
25
- build = CiInACan::Build.parse File.read(added.first)
26
- build.id = UUID.new.generate
27
- build.local_location = "#{working_location}/#{build.id}"
24
+ build = create_a_build_for(new_files.first, working_location)
28
25
 
29
26
  Runner.run build
30
27
  end
31
28
  end
32
29
 
30
+ def create_a_build_for file, working_location
31
+ build = CiInACan::Build.parse File.read(file)
32
+ build.id = UUID.new.generate
33
+ build.local_location = "#{working_location}/#{build.id}"
34
+ build
35
+ end
36
+
33
37
  end
34
38
 
35
39
  end
data/lib/ci_in_a_can.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require 'json'
2
+ require 'uuid'
1
3
  require 'subtle'
2
4
 
3
5
  require_relative "ci_in_a_can/version"
@@ -9,37 +9,17 @@ describe CiInACan::Build do
9
9
  result[1].must_equal 'bundle exec rake'
10
10
  end
11
11
 
12
- [:compare, :sha, :git_ssh, :repo].to_objects {[
13
- ["https://github.com/darrencauthon/ci_in_a_can/commit/b1c5f9c9588f", "qwe", "git@github.com:darrencauthon/ci_in_a_can.git", "darrencauthon/ci_in_a_can"],
14
- ["https://github.com/abc/123/commit/b1c5f9c9588f", "uio", "git@github.com:abc/123.git", "abc/123"]
15
- ]}.each do |test|
16
-
17
- describe "parse" do
18
-
19
- let(:content) do
20
- {
21
- payload: {
22
- compare: test.compare,
23
- head_commit: { id: test.sha }
24
- }.to_json
25
- }.to_json
26
- end
27
-
28
- it "should convert the http to a git ssh" do
29
- build = CiInACan::Build.parse content
30
- build.git_ssh.must_equal test.git_ssh
31
- end
32
-
33
- it "should return the repo" do
34
- build = CiInACan::Build.parse content
35
- build.repo.must_equal test.repo
36
- end
37
-
38
- it "should stamp the sha" do
39
- build = CiInACan::Build.parse content
40
- build.sha.must_equal test.sha
41
- end
12
+ describe "parse" do
42
13
 
14
+ it "should return the result of the Github parser" do
15
+ content = Object.new
16
+ parser = Object.new
17
+ build = Object.new
18
+
19
+ parser.stubs(:parse).with(content).returns build
20
+ CiInACan::GithubBuildParser.stubs(:new).returns parser
21
+
22
+ CiInACan::Build.parse(content).must_be_same_as build
43
23
  end
44
24
 
45
25
  end
@@ -0,0 +1,41 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe CiInACan::GithubBuildParser do
4
+
5
+ [:compare, :sha, :git_ssh, :repo].to_objects {[
6
+ ["https://github.com/darrencauthon/ci_in_a_can/commit/b1c5f9c9588f", "qwe", "git@github.com:darrencauthon/ci_in_a_can.git", "darrencauthon/ci_in_a_can"],
7
+ ["https://github.com/abc/123/commit/b1c5f9c9588f", "uio", "git@github.com:abc/123.git", "abc/123"]
8
+ ]}.each do |test|
9
+
10
+ describe "parse" do
11
+
12
+ let(:content) do
13
+ {
14
+ payload: {
15
+ compare: test.compare,
16
+ head_commit: { id: test.sha }
17
+ }.to_json
18
+ }.to_json
19
+ end
20
+
21
+ it "should convert the http to a git ssh" do
22
+ build = CiInACan::GithubBuildParser.new.parse content
23
+ build.git_ssh.must_equal test.git_ssh
24
+ end
25
+
26
+ it "should return the repo" do
27
+ build = CiInACan::GithubBuildParser.new.parse content
28
+ build.repo.must_equal test.repo
29
+ end
30
+
31
+ it "should stamp the sha" do
32
+ build = CiInACan::GithubBuildParser.new.parse content
33
+ build.sha.must_equal test.sha
34
+ end
35
+
36
+ end
37
+
38
+ end
39
+
40
+ end
41
+
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ci_in_a_can
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Darren Cauthon
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-02-10 00:00:00.000000000 Z
12
+ date: 2014-02-11 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - ~>
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - ~>
25
28
  - !ruby/object:Gem::Version
@@ -27,155 +30,177 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: mocha
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - '>='
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: '0'
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - '>='
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: '0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: subtle
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - '>='
51
+ - - ! '>='
46
52
  - !ruby/object:Gem::Version
47
53
  version: '0'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - '>='
59
+ - - ! '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: contrast
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - '>='
67
+ - - ! '>='
60
68
  - !ruby/object:Gem::Version
61
69
  version: '0'
62
70
  type: :development
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - '>='
75
+ - - ! '>='
67
76
  - !ruby/object:Gem::Version
68
77
  version: '0'
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: rake
71
80
  requirement: !ruby/object:Gem::Requirement
81
+ none: false
72
82
  requirements:
73
- - - '>='
83
+ - - ! '>='
74
84
  - !ruby/object:Gem::Version
75
85
  version: '0'
76
86
  type: :runtime
77
87
  prerelease: false
78
88
  version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
79
90
  requirements:
80
- - - '>='
91
+ - - ! '>='
81
92
  - !ruby/object:Gem::Version
82
93
  version: '0'
83
94
  - !ruby/object:Gem::Dependency
84
95
  name: sinatra
85
96
  requirement: !ruby/object:Gem::Requirement
97
+ none: false
86
98
  requirements:
87
- - - '>='
99
+ - - ! '>='
88
100
  - !ruby/object:Gem::Version
89
101
  version: '0'
90
102
  type: :runtime
91
103
  prerelease: false
92
104
  version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
93
106
  requirements:
94
- - - '>='
107
+ - - ! '>='
95
108
  - !ruby/object:Gem::Version
96
109
  version: '0'
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: json
99
112
  requirement: !ruby/object:Gem::Requirement
113
+ none: false
100
114
  requirements:
101
- - - '>='
115
+ - - ! '>='
102
116
  - !ruby/object:Gem::Version
103
117
  version: '0'
104
118
  type: :runtime
105
119
  prerelease: false
106
120
  version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
107
122
  requirements:
108
- - - '>='
123
+ - - ! '>='
109
124
  - !ruby/object:Gem::Version
110
125
  version: '0'
111
126
  - !ruby/object:Gem::Dependency
112
127
  name: uuid
113
128
  requirement: !ruby/object:Gem::Requirement
129
+ none: false
114
130
  requirements:
115
- - - '>='
131
+ - - ! '>='
116
132
  - !ruby/object:Gem::Version
117
133
  version: '0'
118
134
  type: :runtime
119
135
  prerelease: false
120
136
  version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
121
138
  requirements:
122
- - - '>='
139
+ - - ! '>='
123
140
  - !ruby/object:Gem::Version
124
141
  version: '0'
125
142
  - !ruby/object:Gem::Dependency
126
143
  name: listen
127
144
  requirement: !ruby/object:Gem::Requirement
145
+ none: false
128
146
  requirements:
129
- - - '>='
147
+ - - ! '>='
130
148
  - !ruby/object:Gem::Version
131
149
  version: '0'
132
150
  type: :runtime
133
151
  prerelease: false
134
152
  version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
135
154
  requirements:
136
- - - '>='
155
+ - - ! '>='
137
156
  - !ruby/object:Gem::Version
138
157
  version: '0'
139
158
  - !ruby/object:Gem::Dependency
140
159
  name: octokit
141
160
  requirement: !ruby/object:Gem::Requirement
161
+ none: false
142
162
  requirements:
143
- - - '>='
163
+ - - ! '>='
144
164
  - !ruby/object:Gem::Version
145
165
  version: '0'
146
166
  type: :runtime
147
167
  prerelease: false
148
168
  version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
149
170
  requirements:
150
- - - '>='
171
+ - - ! '>='
151
172
  - !ruby/object:Gem::Version
152
173
  version: '0'
153
174
  - !ruby/object:Gem::Dependency
154
175
  name: daemons
155
176
  requirement: !ruby/object:Gem::Requirement
177
+ none: false
156
178
  requirements:
157
- - - '>='
179
+ - - ! '>='
158
180
  - !ruby/object:Gem::Version
159
181
  version: '0'
160
182
  type: :runtime
161
183
  prerelease: false
162
184
  version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
163
186
  requirements:
164
- - - '>='
187
+ - - ! '>='
165
188
  - !ruby/object:Gem::Version
166
189
  version: '0'
167
190
  - !ruby/object:Gem::Dependency
168
191
  name: subtle
169
192
  requirement: !ruby/object:Gem::Requirement
193
+ none: false
170
194
  requirements:
171
- - - '>='
195
+ - - ! '>='
172
196
  - !ruby/object:Gem::Version
173
197
  version: '0'
174
198
  type: :runtime
175
199
  prerelease: false
176
200
  version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
177
202
  requirements:
178
- - - '>='
203
+ - - ! '>='
179
204
  - !ruby/object:Gem::Version
180
205
  version: '0'
181
206
  description: Fast CI. Still a WIP.
@@ -193,7 +218,6 @@ files:
193
218
  - Rakefile
194
219
  - bin/ciinacan
195
220
  - ci_in_a_can.gemspec
196
- - config.ru
197
221
  - lib/ci_in_a_can.rb
198
222
  - lib/ci_in_a_can/app.rb
199
223
  - lib/ci_in_a_can/bash.rb
@@ -202,6 +226,7 @@ files:
202
226
  - lib/ci_in_a_can/cloner.rb
203
227
  - lib/ci_in_a_can/daemon.rb
204
228
  - lib/ci_in_a_can/github.rb
229
+ - lib/ci_in_a_can/github_build_parser.rb
205
230
  - lib/ci_in_a_can/persistence.rb
206
231
  - lib/ci_in_a_can/runner.rb
207
232
  - lib/ci_in_a_can/test_result.rb
@@ -214,6 +239,7 @@ files:
214
239
  - spec/ci_in_a_can/bash_spec.rb
215
240
  - spec/ci_in_a_can/build_spec.rb
216
241
  - spec/ci_in_a_can/cloner_spec.rb
242
+ - spec/ci_in_a_can/github_build_parser_spec.rb
217
243
  - spec/ci_in_a_can/github_spec.rb
218
244
  - spec/ci_in_a_can/runner_spec.rb
219
245
  - spec/ci_in_a_can/test_result_notifier_spec.rb
@@ -225,32 +251,40 @@ files:
225
251
  homepage: ''
226
252
  licenses:
227
253
  - MIT
228
- metadata: {}
229
254
  post_install_message:
230
255
  rdoc_options: []
231
256
  require_paths:
232
257
  - lib
233
258
  required_ruby_version: !ruby/object:Gem::Requirement
259
+ none: false
234
260
  requirements:
235
- - - '>='
261
+ - - ! '>='
236
262
  - !ruby/object:Gem::Version
237
263
  version: '0'
264
+ segments:
265
+ - 0
266
+ hash: -1243882280261005315
238
267
  required_rubygems_version: !ruby/object:Gem::Requirement
268
+ none: false
239
269
  requirements:
240
- - - '>='
270
+ - - ! '>='
241
271
  - !ruby/object:Gem::Version
242
272
  version: '0'
273
+ segments:
274
+ - 0
275
+ hash: -1243882280261005315
243
276
  requirements: []
244
277
  rubyforge_project:
245
- rubygems_version: 2.1.11
278
+ rubygems_version: 1.8.24
246
279
  signing_key:
247
- specification_version: 4
280
+ specification_version: 3
248
281
  summary: Fast CI. Still a WIP.
249
282
  test_files:
250
283
  - spec/ci_in_a_can/bash_result_spec.rb
251
284
  - spec/ci_in_a_can/bash_spec.rb
252
285
  - spec/ci_in_a_can/build_spec.rb
253
286
  - spec/ci_in_a_can/cloner_spec.rb
287
+ - spec/ci_in_a_can/github_build_parser_spec.rb
254
288
  - spec/ci_in_a_can/github_spec.rb
255
289
  - spec/ci_in_a_can/runner_spec.rb
256
290
  - spec/ci_in_a_can/test_result_notifier_spec.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 370913ef96b0b8ea7bad7d243a2ef57c3bc0c961
4
- data.tar.gz: da919a87438e340c1b0efe14351f7ee66bd120c0
5
- SHA512:
6
- metadata.gz: 5933778ec97dd4577df453bae506f08e08d543e579a0fc2ac09705bd04b2e9ec6bae3f8c61344844f5b6c7e76160734df50b3024d3543091b93b2327d0fea9d4
7
- data.tar.gz: 6d59e751e7e9937dc19068cba66a215086f34858897ed35edd8853576bc16490b7db05cf99d289baef4139b2f6a4d1fd27c16185f6f3464e7da608c1f2f56fde
data/config.ru DELETED
@@ -1,6 +0,0 @@
1
- require_relative 'lib/ci_in_a_can'
2
-
3
- CiInACan::App.jobs_location = "jobs"
4
-
5
- use CiInACan::App
6
- run Sinatra::Application