ci_in_a_can 0.0.8 → 0.0.9

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/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