ci_in_a_can 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 48ffc26c28a1496d49e1b53321dd1b661ef37c29
4
- data.tar.gz: 9eea2ff039ee39d282c2e8cd1d125dc688faa4cc
3
+ metadata.gz: b92800dac2342b781a87421b1a3aeae065283a56
4
+ data.tar.gz: 423e1a4a194de2e97328ccaadeddb3ab387773df
5
5
  SHA512:
6
- metadata.gz: 34cddb38464a8f0d8745326df3e3865020b077d4e3da7e0031fac8dc90107419b50f5726378bfedf365852387e0c6f26a89eef6529a37dddc97422faed0949c2
7
- data.tar.gz: 664698503f0eaf2929ef2d4b412f8b96a44e3725418042d5782e1999842d9bd0f614022b520f7b1b7eeff4b0d79d8b5ae9acfe6a1aecfd853cff15a04b002f57
6
+ metadata.gz: bf241c4c38390532c1dd4aaee778fe77dccc122d37d8ad22b19cca4181da1d8b7125f195837a1d64379653a487c53c3755f08045b0368fc0664e981491c1df0e
7
+ data.tar.gz: c289b390e5edc5fb0de5d9fb3605fc1a59e652ca2aa7f7f83c8b247fab0cdddc93b2603d9212d4397aa3a043790e54aad856b4b29ab2dd8d6fef80b22b773d13
data/.gitignore CHANGED
@@ -17,3 +17,5 @@ test/version_tmp
17
17
  tmp
18
18
 
19
19
  .DS_Store
20
+
21
+ spec/temp
data/bin/ciinacan CHANGED
@@ -61,7 +61,7 @@ when 'create'
61
61
 
62
62
  root = "#{Dir.pwd}/#{ARGV[1]}"
63
63
 
64
- directories_to_create = [root, "#{root}/jobs", "#{root}/repos", "#{root}/web", "#{root}/service"]
64
+ directories_to_create = [root, "#{root}/jobs", "#{root}/repos", "#{root}/web", "#{root}/service", "#{root}/results"]
65
65
 
66
66
  directories_to_create.each { |d| Dir.mkdir(d) unless File.exists?(d) }
67
67
 
data/ci_in_a_can.gemspec CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
22
  spec.add_development_dependency "mocha"
23
23
  spec.add_development_dependency "subtle"
24
+ spec.add_development_dependency "contrast"
24
25
 
25
26
  spec.add_runtime_dependency "rake"
26
27
  spec.add_runtime_dependency "sinatra"
@@ -29,4 +30,5 @@ Gem::Specification.new do |spec|
29
30
  spec.add_runtime_dependency "listen"
30
31
  spec.add_runtime_dependency "octokit"
31
32
  spec.add_runtime_dependency "daemons"
33
+ spec.add_runtime_dependency "subtle"
32
34
  end
data/lib/ci_in_a_can.rb CHANGED
@@ -1,6 +1,12 @@
1
+ require 'subtle'
2
+
1
3
  require_relative "ci_in_a_can/version"
2
4
  Dir[File.dirname(__FILE__) + '/ci_in_a_can/*.rb'].each { |file| require file }
3
5
 
4
6
  module CiInACan
5
- # Your code goes here...
7
+
8
+ def self.results_location
9
+ File.expand_path(File.dirname(__FILE__) + '/../../results')
10
+ end
11
+
6
12
  end
@@ -10,19 +10,25 @@ module CiInACan
10
10
  attr_accessor :jobs_location
11
11
  end
12
12
 
13
- get '/start' do
14
- write_a_file_with params
15
- end
16
-
17
- post '/start' do
18
- write_a_file_with params
19
- end
20
-
21
- put '/start' do
22
- write_a_file_with params
13
+ get '/' do
14
+ <<EOF
15
+ <html>
16
+ <head>
17
+ <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css">
18
+ <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap-theme.min.css">
19
+ <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.0/js/bootstrap.min.js"></script>
20
+ </head>
21
+ <body>
22
+ <table class="table table-bordered">
23
+ <tbody>
24
+ </tbody>
25
+ </table>
26
+ </body>
27
+ </html>
28
+ EOF
23
29
  end
24
30
 
25
- delete '/start' do
31
+ post '/' do
26
32
  write_a_file_with params
27
33
  end
28
34
 
@@ -3,9 +3,18 @@ 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
10
+ end
6
11
 
7
- system command
12
+ def self.backtick command
13
+ `#{command}`
14
+ end
8
15
 
16
+ def self.the_exit_code
17
+ $?.to_i
9
18
  end
10
19
 
11
20
  end
@@ -0,0 +1,13 @@
1
+ module CiInACan
2
+
3
+ class BashResult
4
+
5
+ attr_accessor :exit_code, :output
6
+
7
+ def successful
8
+ exit_code == 0
9
+ end
10
+
11
+ end
12
+
13
+ end
@@ -4,6 +4,7 @@ module CiInACan
4
4
 
5
5
  attr_accessor :git_ssh, :local_location, :repo, :sha
6
6
  attr_accessor :pre_test_commands
7
+ attr_accessor :id
7
8
 
8
9
  def initialize
9
10
  self.pre_test_commands = []
@@ -9,9 +9,20 @@ module CiInACan
9
9
  attr_accessor :access_token
10
10
 
11
11
  def client
12
+ return nil if access_token.to_s == ''
12
13
  Octokit::Client.new access_token: access_token
13
14
  end
14
15
 
16
+ def report_pending_status_for build
17
+ return nil unless client
18
+ client.create_status build.repo, build.sha, 'pending'
19
+ end
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')
24
+ end
25
+
15
26
  end
16
27
 
17
28
  end
@@ -0,0 +1,25 @@
1
+ require 'yaml/store'
2
+
3
+ module CiInACan
4
+
5
+ module Persistence
6
+
7
+ def self.save type, id, value
8
+ store = store_for(type)
9
+ store.transaction { store[id] = value }
10
+ end
11
+
12
+ def self.find type, id
13
+ store = store_for(type)
14
+ store.transaction(true) { store[id] }
15
+ end
16
+
17
+ private
18
+
19
+ def self.store_for type
20
+ YAML::Store.new("#{CiInACan.results_location}/#{type}.yml")
21
+ end
22
+
23
+ end
24
+
25
+ end
@@ -3,7 +3,7 @@ module CiInACan
3
3
  module Runner
4
4
 
5
5
  def self.run build
6
- CiInACan::Github.client.create_status(build.repo, build.sha, 'pending')
6
+ CiInACan::Github.report_pending_status_for build
7
7
  CiInACan::Cloner.clone_a_local_copy_for build
8
8
  test_results = CiInACan::TestRunner.run_tests_for build
9
9
  CiInACan::TestResultNotifier.send_for build, test_results
@@ -1,5 +1,20 @@
1
+ require 'subtle'
2
+
1
3
  module CiInACan
2
4
  class TestResult
3
- attr_accessor :passed
5
+ params_constructor
6
+ attr_accessor :id
7
+ attr_accessor :passed, :output
8
+
9
+ 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
13
+ test_result
14
+ end
15
+
16
+ def self.find id
17
+ CiInACan::Persistence.find "test_result", id
18
+ end
4
19
  end
5
20
  end
@@ -1,7 +1,7 @@
1
1
  module CiInACan
2
2
  module TestResultNotifier
3
3
  def self.send_for build, test_result
4
- CiInACan::Github.client.create_status(build.repo, build.sha, test_result.passed ? "success" : "failure")
4
+ CiInACan::Github.report_complete_status_for build, test_result
5
5
  end
6
6
  end
7
7
  end
@@ -1,12 +1,14 @@
1
1
  module CiInACan
2
2
  module TestRunner
3
3
  def self.run_tests_for build
4
- test_result = CiInACan::TestResult.new
5
4
  commands = ["cd #{build.local_location}", "bundle install"]
6
5
  build.pre_test_commands.each { |c| commands << c }
7
6
  commands << "bundle exec rake"
8
- test_result.passed = CiInACan::Bash.run commands.join('; ')
9
- test_result
7
+
8
+ bash_result = CiInACan::Bash.run commands.join('; ')
9
+
10
+ CiInACan::TestResult.create( { passed: bash_result.successful,
11
+ output: bash_result.output } )
10
12
  end
11
13
  end
12
14
  end
@@ -1,3 +1,3 @@
1
1
  module CiInACan
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -23,7 +23,8 @@ module CiInACan
23
23
  next unless added.count > 0
24
24
 
25
25
  build = CiInACan::Build.parse File.read(added.first)
26
- build.local_location = "#{working_location}/#{UUID.new.generate}"
26
+ build.id = UUID.new.generate
27
+ build.local_location = "#{working_location}/#{build.id}"
27
28
 
28
29
  Runner.run build
29
30
  end
@@ -0,0 +1,21 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe CiInACan::BashResult do
4
+
5
+ describe "successful" do
6
+
7
+ let(:bash_result) { CiInACan::BashResult.new }
8
+
9
+ it "should return true if the exit code is 0" do
10
+ bash_result.exit_code = 0
11
+ bash_result.successful.must_equal true
12
+ end
13
+
14
+ it "should return false if the exit code is not 0" do
15
+ bash_result.exit_code = 1
16
+ bash_result.successful.must_equal false
17
+ end
18
+
19
+ end
20
+
21
+ end
@@ -4,17 +4,31 @@ describe CiInACan::Bash do
4
4
 
5
5
  describe "run" do
6
6
 
7
- it "should run the command with system and return the result" do
8
-
9
- expected_result = Object.new
10
- command = Object.new
7
+ let(:command) { Object.new }
8
+ let(:output) { Object.new }
9
+ let(:exit_code) { Object.new }
11
10
 
12
- CiInACan::Bash.stubs(:system).with(command).returns expected_result
11
+ before do
12
+ CiInACan::Bash.stubs(:backtick).with(command).returns output
13
+ CiInACan::Bash.stubs(:the_exit_code).returns exit_code
14
+ end
13
15
 
14
- CiInACan::Bash.run(command).must_be_same_as expected_result
16
+ it "should return a BashResult" do
17
+ result = CiInACan::Bash.run command
18
+ result.is_a?(CiInACan::BashResult).must_equal true
19
+ end
15
20
 
21
+ it "should return the output" do
22
+ result = CiInACan::Bash.run command
23
+ result.output.must_be_same_as output
16
24
  end
17
25
 
26
+ it "should return the exit code" do
27
+ result = CiInACan::Bash.run command
28
+ result.exit_code.must_be_same_as exit_code
29
+ end
30
+
31
+
18
32
  end
19
33
 
20
34
  end
@@ -4,15 +4,114 @@ describe CiInACan::Github do
4
4
 
5
5
  describe "client" do
6
6
 
7
- it "should create an Octokit client with the access token" do
8
- access_token = Object.new
9
- client = Object.new
7
+ describe "when an access token was provided" do
10
8
 
11
- CiInACan::Github.access_token = access_token
9
+ let(:access_token) { Object.new }
12
10
 
13
- Octokit::Client.expects(:new).with(access_token: access_token).returns client
11
+ it "should create an Octokit client with the access token" do
12
+ client = Object.new
14
13
 
15
- CiInACan::Github.client.must_be_same_as client
14
+ CiInACan::Github.access_token = access_token
15
+
16
+ Octokit::Client.expects(:new).with(access_token: access_token).returns client
17
+
18
+ CiInACan::Github.client.must_be_same_as client
19
+ end
20
+
21
+ end
22
+
23
+ [nil, ''].each do |access_token|
24
+
25
+ describe "when an access token was not provided" do
26
+
27
+ it "should return nothing" do
28
+ CiInACan::Github.access_token = access_token
29
+
30
+ Octokit::Client.expects(:new).never
31
+
32
+ CiInACan::Github.client.nil?.must_equal true
33
+ end
34
+
35
+ end
36
+
37
+ end
38
+
39
+ end
40
+
41
+ describe "report_pending_status" do
42
+
43
+ it "should report a pending status to the github client" do
44
+
45
+ build = CiInACan::Build.new
46
+ build.sha = Object.new
47
+ build.repo = Object.new
48
+
49
+ client = Object.new
50
+ CiInACan::Github.stubs(:client).returns client
51
+
52
+ client.expects(:create_status).with build.repo, build.sha, 'pending'
53
+
54
+ CiInACan::Github.report_pending_status_for build
55
+ end
56
+
57
+ it "should not fail if there is no github client" do
58
+ CiInACan::Github.stubs(:client).returns nil
59
+ CiInACan::Github.report_pending_status_for CiInACan::Build.new
60
+ end
61
+
62
+ end
63
+
64
+ describe "report_complete_status" do
65
+
66
+ describe "a successful test result" do
67
+
68
+ let(:test_result) do
69
+ test_result = Object.new
70
+ test_result.stubs(:passed).returns true
71
+ test_result
72
+ end
73
+
74
+ it "should report a success status to the github client" do
75
+ build = CiInACan::Build.new
76
+ build.sha = Object.new
77
+ build.repo = Object.new
78
+
79
+ client = Object.new
80
+ CiInACan::Github.stubs(:client).returns client
81
+
82
+ client.expects(:create_status).with build.repo, build.sha, 'success'
83
+
84
+ CiInACan::Github.report_complete_status_for build, test_result
85
+ end
86
+
87
+ end
88
+
89
+ describe "a failed test result" do
90
+
91
+ let(:test_result) do
92
+ test_result = Object.new
93
+ test_result.stubs(:passed).returns false
94
+ test_result
95
+ end
96
+
97
+ it "should report a success status to the github client" do
98
+ build = CiInACan::Build.new
99
+ build.sha = Object.new
100
+ build.repo = Object.new
101
+
102
+ client = Object.new
103
+ CiInACan::Github.stubs(:client).returns client
104
+
105
+ client.expects(:create_status).with build.repo, build.sha, 'failure'
106
+
107
+ CiInACan::Github.report_complete_status_for build, test_result
108
+ end
109
+
110
+ end
111
+
112
+ it "should not fail if there is no github client" do
113
+ CiInACan::Github.stubs(:client).returns nil
114
+ CiInACan::Github.report_complete_status_for CiInACan::Build.new, Object.new
16
115
  end
17
116
 
18
117
  end
@@ -5,11 +5,9 @@ describe CiInACan::Runner do
5
5
  describe "run" do
6
6
 
7
7
  let(:build) { CiInACan::Build.new }
8
- let(:client) { Object.new }
9
8
 
10
9
  before do
11
- client.stubs(:create_status)
12
- CiInACan::Github.stubs(:client).returns client
10
+ CiInACan::Github.stubs(:report_pending_status_for)
13
11
  CiInACan::Cloner.stubs(:clone_a_local_copy_for)
14
12
  CiInACan::TestRunner.stubs(:run_tests_for)
15
13
  CiInACan::TestResultNotifier.stubs(:send_for)
@@ -46,7 +44,7 @@ describe CiInACan::Runner do
46
44
 
47
45
  build.repo = Object.new
48
46
  build.sha = Object.new
49
- client.expects(:create_status).with build.repo, build.sha, 'pending'
47
+ CiInACan::Github.expects(:report_pending_status_for).with build
50
48
 
51
49
  CiInACan::Runner.run build
52
50
  end
@@ -7,32 +7,14 @@ describe CiInACan::TestResultNotifier do
7
7
  let(:build) { CiInACan::Build.new }
8
8
  let(:test_result) { CiInACan::TestResult.new }
9
9
 
10
- it "should mark passing tests as success in github" do
10
+ it "should mark the results in github" do
11
11
 
12
12
  test_result.passed = true
13
13
 
14
14
  build.sha = Object.new
15
15
  build.repo = Object.new
16
16
 
17
- client = Object.new
18
- CiInACan::Github.stubs(:client).returns client
19
-
20
- client.expects(:create_status).with(build.repo, build.sha, "success")
21
-
22
- CiInACan::TestResultNotifier.send_for build, test_result
23
- end
24
-
25
- it "should mark failing tests as failure in github" do
26
-
27
- test_result.passed = false
28
-
29
- build.sha = Object.new
30
- build.repo = Object.new
31
-
32
- client = Object.new
33
- CiInACan::Github.stubs(:client).returns client
34
-
35
- client.expects(:create_status).with(build.repo, build.sha, "failure")
17
+ CiInACan::Github.expects(:report_complete_status_for).with build, test_result
36
18
 
37
19
  CiInACan::TestResultNotifier.send_for build, test_result
38
20
  end
@@ -0,0 +1,65 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe CiInACan::TestRunner do
4
+
5
+ describe "create" do
6
+ it "should set a unique id" do
7
+ id = Object.new
8
+ uuid = Object.new
9
+
10
+ UUID.stubs(:new).returns uuid
11
+ uuid.expects(:generate).returns id
12
+
13
+ test_result = CiInACan::TestResult.create({})
14
+
15
+ test_result.id.must_be_same_as id
16
+ end
17
+ end
18
+
19
+ describe "create and find" do
20
+
21
+ describe "a simple example" do
22
+
23
+ it "should be able to store and retrieve a result" do
24
+
25
+ original_test_result = CiInACan::TestResult.create({})
26
+ retrieved_test_result = CiInACan::TestResult.find original_test_result.id
27
+
28
+ original_test_result.id.must_equal retrieved_test_result.id
29
+
30
+ end
31
+
32
+ it "should be persist values" do
33
+
34
+ values = { passed: true, output: 'some output' }
35
+ original_test_result = CiInACan::TestResult.create(values)
36
+ retrieved_test_result = CiInACan::TestResult.find original_test_result.id
37
+
38
+ retrieved_test_result.contrast_with! values
39
+
40
+ end
41
+
42
+ end
43
+
44
+ describe "a more complicated example" do
45
+
46
+ it "should be able to store and retrieve a result" do
47
+
48
+ # save more records
49
+ CiInACan::TestResult.create({})
50
+ CiInACan::TestResult.create({})
51
+ original_test_result = CiInACan::TestResult.create({})
52
+ CiInACan::TestResult.create({})
53
+ CiInACan::TestResult.create({})
54
+
55
+ retrieved_test_result = CiInACan::TestResult.find original_test_result.id
56
+
57
+ original_test_result.id.must_equal retrieved_test_result.id
58
+
59
+ end
60
+
61
+ end
62
+
63
+ end
64
+
65
+ end
@@ -11,8 +11,10 @@ describe CiInACan::TestRunner do
11
11
 
12
12
  let(:build) { CiInACan::Build.new }
13
13
 
14
+ let(:bash_result) { CiInACan::BashResult.new }
15
+
14
16
  before do
15
- CiInACan::Bash.stubs(:run)
17
+ CiInACan::Bash.stubs(:run).returns bash_result
16
18
  end
17
19
 
18
20
  describe "when no special commands exist" do
@@ -20,7 +22,7 @@ describe CiInACan::TestRunner do
20
22
  it "should cd into the local directory and run the default rake task" do
21
23
  build.local_location = test.local_location
22
24
 
23
- CiInACan::Bash.expects(:run).with("cd #{test.local_location}; bundle install; bundle exec rake")
25
+ CiInACan::Bash.expects(:run).with("cd #{test.local_location}; bundle install; bundle exec rake").returns bash_result
24
26
 
25
27
  CiInACan::TestRunner.run_tests_for build
26
28
  end
@@ -30,14 +32,28 @@ describe CiInACan::TestRunner do
30
32
  result.is_a?(CiInACan::TestResult).must_equal true
31
33
  end
32
34
 
35
+ it "should use the create method to create the TestResult" do
36
+
37
+ CiInACan::TestResult.expects(:new).never
38
+ CiInACan::TestResult.expects(:create).with { |v| true }.once
39
+ CiInACan::TestRunner.run_tests_for build
40
+ end
41
+
42
+ it "should pass the output value from the bash result" do
43
+ output = Object.new
44
+ bash_result.stubs(:output).returns output
45
+ result = CiInACan::TestRunner.run_tests_for build
46
+ result.output.must_be_same_as output
47
+ end
48
+
33
49
  it "should return a passed test result if the command returns true" do
34
- CiInACan::Bash.stubs(:run).returns true
50
+ bash_result.stubs(:successful).returns true
35
51
  result = CiInACan::TestRunner.run_tests_for build
36
52
  result.passed.must_equal true
37
53
  end
38
54
 
39
55
  it "should return a failed test result if the command returns true" do
40
- CiInACan::Bash.stubs(:run).returns false
56
+ bash_result.stubs(:successful).returns false
41
57
  result = CiInACan::TestRunner.run_tests_for build
42
58
  result.passed.must_equal false
43
59
  end
@@ -51,7 +67,7 @@ describe CiInACan::TestRunner do
51
67
 
52
68
  build.pre_test_commands = ["1", "2"]
53
69
 
54
- CiInACan::Bash.expects(:run).with("cd #{test.local_location}; bundle install; 1; 2; bundle exec rake")
70
+ CiInACan::Bash.expects(:run).with("cd #{test.local_location}; bundle install; 1; 2; bundle exec rake").returns bash_result
55
71
 
56
72
  CiInACan::TestRunner.run_tests_for build
57
73
  end
@@ -86,7 +86,7 @@ describe CiInACan::Watcher do
86
86
 
87
87
  describe "setting the local location" do
88
88
 
89
- it "should assign the local location on the build" do
89
+ it "should assign the local location on the build, and the id" do
90
90
 
91
91
  CiInACan::Runner.stubs(:wl).returns test.working_location
92
92
 
@@ -96,6 +96,7 @@ describe CiInACan::Watcher do
96
96
 
97
97
  CiInACan::Runner.expects(:run).with do |b|
98
98
  b.local_location.must_equal "#{test.working_location}/#{test.random_string}"
99
+ b.id.must_equal test.random_string
99
100
  true
100
101
  end
101
102
 
data/spec/spec_helper.rb CHANGED
@@ -3,4 +3,9 @@ require 'minitest/autorun'
3
3
  require 'minitest/spec'
4
4
  require 'minitest/pride'
5
5
  require 'subtle'
6
+ require 'contrast'
6
7
  require 'mocha/setup'
8
+
9
+ def CiInACan.results_location
10
+ File.expand_path(File.dirname(__FILE__) + '/temp')
11
+ end
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ci_in_a_can
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Darren Cauthon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-09 00:00:00.000000000 Z
11
+ date: 2014-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: contrast
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rake
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -150,6 +164,20 @@ dependencies:
150
164
  - - '>='
151
165
  - !ruby/object:Gem::Version
152
166
  version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: subtle
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '>='
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
153
181
  description: Fast CI. Still a WIP.
154
182
  email:
155
183
  - darren@cauthon.com
@@ -169,10 +197,12 @@ files:
169
197
  - lib/ci_in_a_can.rb
170
198
  - lib/ci_in_a_can/app.rb
171
199
  - lib/ci_in_a_can/bash.rb
200
+ - lib/ci_in_a_can/bash_result.rb
172
201
  - lib/ci_in_a_can/build.rb
173
202
  - lib/ci_in_a_can/cloner.rb
174
203
  - lib/ci_in_a_can/daemon.rb
175
204
  - lib/ci_in_a_can/github.rb
205
+ - lib/ci_in_a_can/persistence.rb
176
206
  - lib/ci_in_a_can/runner.rb
177
207
  - lib/ci_in_a_can/test_result.rb
178
208
  - lib/ci_in_a_can/test_result_notifier.rb
@@ -180,15 +210,18 @@ files:
180
210
  - lib/ci_in_a_can/version.rb
181
211
  - lib/ci_in_a_can/watcher.rb
182
212
  - sample.json
213
+ - spec/ci_in_a_can/bash_result_spec.rb
183
214
  - spec/ci_in_a_can/bash_spec.rb
184
215
  - spec/ci_in_a_can/build_spec.rb
185
216
  - spec/ci_in_a_can/cloner_spec.rb
186
217
  - spec/ci_in_a_can/github_spec.rb
187
218
  - spec/ci_in_a_can/runner_spec.rb
188
219
  - spec/ci_in_a_can/test_result_notifier_spec.rb
220
+ - spec/ci_in_a_can/test_result_spec.rb
189
221
  - spec/ci_in_a_can/test_runner_spec.rb
190
222
  - spec/ci_in_a_can/watcher_spec.rb
191
223
  - spec/spec_helper.rb
224
+ - spec/temp/.gitkeep
192
225
  homepage: ''
193
226
  licenses:
194
227
  - MIT
@@ -214,12 +247,15 @@ signing_key:
214
247
  specification_version: 4
215
248
  summary: Fast CI. Still a WIP.
216
249
  test_files:
250
+ - spec/ci_in_a_can/bash_result_spec.rb
217
251
  - spec/ci_in_a_can/bash_spec.rb
218
252
  - spec/ci_in_a_can/build_spec.rb
219
253
  - spec/ci_in_a_can/cloner_spec.rb
220
254
  - spec/ci_in_a_can/github_spec.rb
221
255
  - spec/ci_in_a_can/runner_spec.rb
222
256
  - spec/ci_in_a_can/test_result_notifier_spec.rb
257
+ - spec/ci_in_a_can/test_result_spec.rb
223
258
  - spec/ci_in_a_can/test_runner_spec.rb
224
259
  - spec/ci_in_a_can/watcher_spec.rb
225
260
  - spec/spec_helper.rb
261
+ - spec/temp/.gitkeep