buildbox 0.3 → 0.3.1
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/buildbox/api.rb +1 -1
- data/lib/buildbox/build.rb +28 -3
- data/lib/buildbox/cli.rb +3 -1
- data/lib/buildbox/monitor.rb +3 -3
- data/lib/buildbox/runner.rb +64 -21
- data/lib/buildbox/version.rb +1 -1
- data/spec/fixtures/repo.git/objects/04/962eeccc7db2ca321fae49c1870e8fc4d2d66e +0 -0
- data/spec/fixtures/repo.git/objects/06/2228c22ba88855cad2d6a49548102eae064f83 +0 -0
- data/spec/fixtures/repo.git/objects/0c/0b9f8492bbf106aa0b3ab44f2b1f85201d7741 +0 -0
- data/spec/fixtures/repo.git/objects/0e/2d0627c994c622bec0e3bcc974d5e93333e16b +0 -0
- data/spec/fixtures/repo.git/objects/13/1eb1a583f8c93ae161efc6a20f039534ffd1f2 +0 -0
- data/spec/fixtures/repo.git/objects/20/962c607e5717778217d53e1486a91cf37364c3 +0 -0
- data/spec/fixtures/repo.git/objects/24/b04991020e82630ef2ee1d880a6af3cbd4c895 +0 -0
- data/spec/fixtures/repo.git/objects/26/09e034ab986b1300462e5045e528e997e92388 +0 -0
- data/spec/fixtures/repo.git/objects/2a/c2f6560213aa67b0beb5f93752ba9bc5c17408 +1 -0
- data/spec/fixtures/repo.git/objects/37/d57a5fc0e114e2ed5f93246e1faad4ffdc938f +0 -0
- data/spec/fixtures/repo.git/objects/38/393aa12f6a61fb004d97cc758d57553677ef4c +0 -0
- data/spec/fixtures/repo.git/objects/55/21b43c112e44d30c1c6e96a624ac2f7f106080 +0 -0
- data/spec/fixtures/repo.git/objects/5e/10fade9d87996aff68ab953e1b0990546f53a6 +0 -0
- data/spec/fixtures/repo.git/objects/65/70f379f41b941bb7c55bf3dfa748c38ceeac18 +0 -0
- data/spec/fixtures/repo.git/objects/67/51a12720df0cab2d2af8c5faa5d7a9de0592a2 +0 -0
- data/spec/fixtures/repo.git/objects/6d/360ec6efb36a1899d99ee6db7b5d6775f75553 +0 -0
- data/spec/fixtures/repo.git/objects/81/4d7440ff99aa974a16f62bf74a5e332848d38e +2 -0
- data/spec/fixtures/repo.git/objects/8b/8bbf08cad20dddc169e6ba18f0a57dc199d780 +0 -0
- data/spec/fixtures/repo.git/objects/8e/ef70ef24a36aa57fbacc0d759e312f51332c3d +3 -0
- data/spec/fixtures/repo.git/objects/96/05a98eaf99f9c8436fc0d63d1f9c4e7c8074a1 +0 -0
- data/spec/fixtures/repo.git/objects/96/b3b1ccedd7e3d0c3d980a3f5efbd456e910f81 +0 -0
- data/spec/fixtures/repo.git/objects/99/cc50613b66753e8baff6678287b77484f65398 +2 -0
- data/spec/fixtures/repo.git/objects/a1/fbbf2cde5a3f75c66599c176618a0503e58280 +1 -0
- data/spec/fixtures/repo.git/objects/aa/6a10fb52f6c921da60255271efc54865d83108 +0 -0
- data/spec/fixtures/repo.git/objects/b1/6359980d096f665a6bdb22331b679fd34b8aee +0 -0
- data/spec/fixtures/repo.git/objects/b3/f5006b546d890c65573bb5ceab100ce3c3b0d6 +0 -0
- data/spec/fixtures/repo.git/objects/c3/f573f9c7886117a28bb9f6f09452faec874d52 +0 -0
- data/spec/fixtures/repo.git/objects/c4/3c386d88340ba3214064669190de65e6094082 +0 -0
- data/spec/fixtures/repo.git/objects/cb/fa06c2ca5c2b91d093b89886d873815820125d +0 -0
- data/spec/fixtures/repo.git/objects/ce/460ddb64d2a317bb6f49eaf22ebe839e5d0839 +0 -0
- data/spec/fixtures/repo.git/objects/ed/8af179853d173a838535a250c4500c0ccd8199 +2 -0
- data/spec/fixtures/repo.git/objects/f2/0051c2ebf04cbf6fe28f8620b7a3c3da2f2fd4 +1 -0
- data/spec/fixtures/repo.git/objects/f3/9ab5e17f1e98465df20fdf2d8f3a29af10d804 +0 -0
- data/spec/fixtures/repo.git/objects/f8/93c7f6939fc152ce65f4f4ade3e98e9c6ae9b4 +0 -0
- data/spec/fixtures/repo.git/refs/heads/master +1 -1
- data/spec/integration/running_a_build_spec.rb +32 -74
- metadata +69 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 033c05b17212599e1e890e81b4fc2a32af110232
|
|
4
|
+
data.tar.gz: b83c38368d0f73644886f1cd85e06ba2027d5eb0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5371b0e6e4a08edae5a8491b16a2db9934fc37833005a268e76ee4cb1d6eacc54281ac38608722b946de53bd919c65e979f33cd632661478ab2882030bb24e14
|
|
7
|
+
data.tar.gz: 0c6fea3764b2fdd393854a10a4e5dccf100cfd00afee0fc542e04a297a06b04c8311d70627a1666427b6422e019cf763517441a36d0d72bd8ce5537c83c9f9f2
|
data/Gemfile.lock
CHANGED
data/lib/buildbox/api.rb
CHANGED
data/lib/buildbox/build.rb
CHANGED
|
@@ -3,16 +3,41 @@ require 'hashie/mash'
|
|
|
3
3
|
|
|
4
4
|
module Buildbox
|
|
5
5
|
class Build < Hashie::Mash
|
|
6
|
+
class State
|
|
7
|
+
STARTED = 'started'
|
|
8
|
+
FINISHED = 'finished'
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
class Part < Hashie::Mash
|
|
12
|
+
def success?
|
|
13
|
+
exit_status == 0
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
attr_reader :parts
|
|
18
|
+
|
|
19
|
+
def initialize(*args)
|
|
20
|
+
super(*args)
|
|
21
|
+
@parts = []
|
|
22
|
+
end
|
|
23
|
+
|
|
6
24
|
def success?
|
|
7
|
-
|
|
25
|
+
!@parts.empty? && @parts.last.success?
|
|
8
26
|
end
|
|
9
27
|
|
|
10
28
|
def started?
|
|
11
|
-
|
|
29
|
+
state == State::STARTED
|
|
12
30
|
end
|
|
13
31
|
|
|
14
32
|
def finished?
|
|
15
|
-
|
|
33
|
+
state == State::FINISHED
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def namespace
|
|
37
|
+
raise "Missing project id" unless project.id
|
|
38
|
+
raise "Missing team id" unless project.team.id
|
|
39
|
+
|
|
40
|
+
"#{project.team.id}/#{project.id}"
|
|
16
41
|
end
|
|
17
42
|
end
|
|
18
43
|
end
|
data/lib/buildbox/cli.rb
CHANGED
|
@@ -111,7 +111,9 @@ module Buildbox
|
|
|
111
111
|
def help
|
|
112
112
|
<<HELP
|
|
113
113
|
|
|
114
|
-
|
|
114
|
+
auth:login [api_key] # login to buildbox
|
|
115
|
+
agent:setup [access_token] # set the access token for the agent
|
|
116
|
+
agent:start # start the buildbox agent
|
|
115
117
|
version # display version
|
|
116
118
|
|
|
117
119
|
HELP
|
data/lib/buildbox/monitor.rb
CHANGED
|
@@ -14,9 +14,9 @@ module Buildbox
|
|
|
14
14
|
loop do
|
|
15
15
|
# There is an edge case where the build finishes between making the
|
|
16
16
|
# update_build http call, and breaking. So to make sure we're using the
|
|
17
|
-
# same build object throughout this call, we can just dup it.
|
|
18
|
-
build = @build
|
|
19
|
-
@api.update_build(build)
|
|
17
|
+
# same build object throughout this call, we can just deep dup it.
|
|
18
|
+
build = Marshal.load(Marshal.dump(@build))
|
|
19
|
+
@api.update_build(build)
|
|
20
20
|
|
|
21
21
|
if build.finished?
|
|
22
22
|
break
|
data/lib/buildbox/runner.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
require 'rubygems'
|
|
2
2
|
require 'celluloid'
|
|
3
3
|
require 'fileutils'
|
|
4
|
+
require 'yaml'
|
|
4
5
|
|
|
5
6
|
module Buildbox
|
|
6
7
|
class Runner
|
|
@@ -9,45 +10,87 @@ module Buildbox
|
|
|
9
10
|
|
|
10
11
|
attr_reader :build
|
|
11
12
|
|
|
13
|
+
class CommandFailedError < StandardError; end
|
|
14
|
+
|
|
12
15
|
def initialize(build)
|
|
13
16
|
@build = build
|
|
14
17
|
end
|
|
15
18
|
|
|
16
|
-
def
|
|
17
|
-
|
|
19
|
+
def run(*args)
|
|
20
|
+
# Create the build part
|
|
21
|
+
build_part = Build::Part.new(:command => args.join(' '), :output => '', :started_at => Time.now.utc)
|
|
22
|
+
@build.parts << build_part
|
|
23
|
+
|
|
24
|
+
# Run the command and capture output
|
|
25
|
+
result = Command.run(*args, :environment => @build.env, :directory => @working_directory) do |chunk|
|
|
26
|
+
build_part.output << chunk
|
|
27
|
+
end
|
|
18
28
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
29
|
+
# Set the output again because we may have missed some in the block
|
|
30
|
+
build_part.output = result.output
|
|
31
|
+
build_part.exit_status = result.exit_status
|
|
32
|
+
build_part.finished_at = Time.now.utc
|
|
22
33
|
|
|
23
|
-
|
|
34
|
+
raise CommandFailedError unless build_part.success?
|
|
35
|
+
|
|
36
|
+
build_part
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def start
|
|
40
|
+
info "Starting to build #{@build.namespace}/#{@build.id} starting..."
|
|
24
41
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
build.output << chunk
|
|
42
|
+
# Ensure we have the right env variables needed to build
|
|
43
|
+
%w(BUILDBOX_REPO BUILDBOX_COMMIT).each do |env|
|
|
44
|
+
raise "Build is missing environment variable #{env}" unless @build.env[env]
|
|
29
45
|
end
|
|
30
46
|
|
|
31
|
-
build.
|
|
32
|
-
build.exit_status = result.exit_status
|
|
47
|
+
@build.state = Build::State::STARTED
|
|
33
48
|
|
|
34
|
-
|
|
49
|
+
# Ensure we have a working directory to run the build in
|
|
50
|
+
@working_directory = @build.project.working_directory || default_working_directory
|
|
51
|
+
FileUtils.mkdir_p(@working_directory)
|
|
35
52
|
|
|
36
|
-
|
|
53
|
+
begin
|
|
54
|
+
# Bootstrap version control and checkout the right commit
|
|
55
|
+
bootstrap_version_control
|
|
56
|
+
|
|
57
|
+
# Try and find a .buildbox.yml file
|
|
58
|
+
buildbox_yml = File.join(@working_directory, '.buildbox.yml')
|
|
59
|
+
|
|
60
|
+
if File.exist?(buildbox_yml)
|
|
61
|
+
yaml = YAML.load_file(buildbox_yml)
|
|
62
|
+
commands = [ *yaml['script'] ]
|
|
63
|
+
else
|
|
64
|
+
# Maybe there is a .buildbox file that can be executed?
|
|
65
|
+
buildbox_script = File.join(@working_directory, '.buildbox')
|
|
66
|
+
commands = [ buildbox_script ] if File.exist?(buildbox_script)
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# Run the commands for the build
|
|
70
|
+
if commands && commands.any?
|
|
71
|
+
commands.each { |command| run command }
|
|
72
|
+
else
|
|
73
|
+
end
|
|
74
|
+
rescue CommandFailedError
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
@build.state = Build::State::FINISHED
|
|
37
78
|
end
|
|
38
79
|
|
|
39
80
|
private
|
|
40
81
|
|
|
41
|
-
def
|
|
42
|
-
|
|
43
|
-
|
|
82
|
+
def bootstrap_version_control
|
|
83
|
+
unless File.exist?(File.join(@working_directory, '.git'))
|
|
84
|
+
run "git", "clone", @build.env["BUILDBOX_REPO"], "."
|
|
85
|
+
end
|
|
44
86
|
|
|
45
|
-
|
|
46
|
-
|
|
87
|
+
run "git", "clean", "-fd"
|
|
88
|
+
run "git", "fetch", "-q"
|
|
89
|
+
run "git", "checkout", "-qf", @build.env["BUILDBOX_COMMIT"]
|
|
47
90
|
end
|
|
48
91
|
|
|
49
|
-
def
|
|
50
|
-
|
|
92
|
+
def default_working_directory
|
|
93
|
+
Buildbox.root_path.join(@build.namespace)
|
|
51
94
|
end
|
|
52
95
|
end
|
|
53
96
|
end
|
data/lib/buildbox/version.rb
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
x��K��0Dg�S�>ZKj!Y�&WЧ=c��i3}���+xT���&`}��Ȧ�7����\�m.�������g���_���i4��x�<f]c���hK��DT��9���M��h"p�|�=p��\�~mCHC@8iDT{������r�cjS{�@��T��X��$m������>i�Os
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
x��Kj1D��)z0���$�l|��t��x��'��|���T��m]���Ûtfd��9p-6�I9S�́J,�B��F�Uw�|H�QtNך3b�M�a*u$��N�%���l����&�?�_xt�����u7�n��j�CO��C�I��(P��,(��Mvx�$�:�.(�~RO�Q�
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
x��Aj1}�+�03�V��r�%�#i��X��g���Oȩ��j:��v��I�d�KI�ˎ֔B�Q�Z+I6e)8�<x�]�I"^6W���[����|���5|���]���{�ϟ>&�sosm�VBo��l�=���"z�;0�>~��x*��܋��'�L�
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
f20051c2ebf04cbf6fe28f8620b7a3c3da2f2fd4
|
|
@@ -3,26 +3,10 @@
|
|
|
3
3
|
require 'spec_helper'
|
|
4
4
|
|
|
5
5
|
describe 'running a build' do
|
|
6
|
-
let(:commit)
|
|
7
|
-
let(:
|
|
8
|
-
let(:
|
|
9
|
-
let(:
|
|
10
|
-
let(:runner) { Buildbox::Runner.new(build) }
|
|
11
|
-
let(:script) do
|
|
12
|
-
<<-SCRIPT
|
|
13
|
-
#/bin/bash
|
|
14
|
-
set -e
|
|
15
|
-
echo `pwd`
|
|
16
|
-
if [ ! -d ".git" ]; then
|
|
17
|
-
git clone "#{FIXTURES_PATH.join("repo.git").to_s}" ./ -q
|
|
18
|
-
fi
|
|
19
|
-
git clean -fd
|
|
20
|
-
git fetch -q
|
|
21
|
-
git checkout -qf #{commit}
|
|
22
|
-
bundle install --local
|
|
23
|
-
#{command}
|
|
24
|
-
SCRIPT
|
|
25
|
-
end
|
|
6
|
+
let(:commit) { "24b04991020e82630ef2ee1d880a6af3cbd4c895" }
|
|
7
|
+
let(:env) { { 'BUILDBOX_REPO' => FIXTURES_PATH.join("repo.git").to_s, 'BUILDBOX_COMMIT' => commit } }
|
|
8
|
+
let(:build) { Buildbox::Build.new(:project => { :id => "test", :team => { :id => "test" } }, :id => 'buildid', :env => env) }
|
|
9
|
+
let(:runner) { Buildbox::Runner.new(build) }
|
|
26
10
|
|
|
27
11
|
before do
|
|
28
12
|
Buildbox.stub(:root_path).and_return(TEMP_PATH)
|
|
@@ -37,7 +21,8 @@ SCRIPT
|
|
|
37
21
|
runner.start
|
|
38
22
|
|
|
39
23
|
build.should be_success
|
|
40
|
-
build.
|
|
24
|
+
build.should be_finished
|
|
25
|
+
build.parts.last.output.should =~ /1 example, 0 failures/
|
|
41
26
|
end
|
|
42
27
|
end
|
|
43
28
|
|
|
@@ -48,94 +33,67 @@ SCRIPT
|
|
|
48
33
|
runner.start
|
|
49
34
|
|
|
50
35
|
build.should be_success
|
|
51
|
-
build.output.should =~ /1 example, 0 failures/
|
|
36
|
+
build.parts.last.output.should =~ /1 example, 0 failures/
|
|
52
37
|
end
|
|
53
38
|
end
|
|
54
39
|
|
|
55
40
|
context 'running a failing build' do
|
|
56
|
-
let(:commit) { "
|
|
41
|
+
let(:commit) { "5e10fade9d87996aff68ab953e1b0990546f53a6" }
|
|
57
42
|
|
|
58
43
|
it "returns a unsuccessfull result" do
|
|
59
44
|
runner.start
|
|
60
45
|
|
|
61
46
|
build.should_not be_success
|
|
62
|
-
build.output.should =~ /1 example, 1 failure/
|
|
47
|
+
build.parts.last.output.should =~ /1 example, 1 failure/
|
|
63
48
|
end
|
|
64
49
|
end
|
|
65
50
|
|
|
66
51
|
context 'running a failing build that has commands after the one that failed' do
|
|
67
|
-
let(:commit) {
|
|
68
|
-
let(:command) { "rspec test_spec.rb; echo 'oh no you didnt!'" }
|
|
52
|
+
let(:commit) { '2ac2f6560213aa67b0beb5f93752ba9bc5c17408' }
|
|
69
53
|
|
|
70
54
|
it "returns a unsuccessfull result" do
|
|
71
55
|
runner.start
|
|
72
56
|
|
|
73
57
|
build.should_not be_success
|
|
74
|
-
build.output.should =~ /1 example, 1 failure/
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
context 'running a ruby script' do
|
|
79
|
-
let(:script) do
|
|
80
|
-
<<-SCRIPT
|
|
81
|
-
#!/usr/bin/env ruby
|
|
82
|
-
puts 'hello'
|
|
83
|
-
exit 123
|
|
84
|
-
SCRIPT
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
it "runs and returns the correct output" do
|
|
88
|
-
runner.start
|
|
89
|
-
|
|
90
|
-
build.output.should == 'hello'
|
|
91
|
-
build.exit_status.should == 123
|
|
58
|
+
build.parts.last.output.should =~ /1 example, 1 failure/
|
|
92
59
|
end
|
|
93
60
|
end
|
|
94
61
|
|
|
95
62
|
context 'accessing ENV variables with a ruby script' do
|
|
96
|
-
let(:
|
|
97
|
-
let(:script) do
|
|
98
|
-
<<-SCRIPT
|
|
99
|
-
#!/usr/bin/env ruby
|
|
100
|
-
puts ENV["FOO"]
|
|
101
|
-
SCRIPT
|
|
102
|
-
end
|
|
63
|
+
let(:commit) { "814d7440ff99aa974a16f62bf74a5e332848d38e" }
|
|
103
64
|
|
|
104
65
|
it "runs and returns the correct output" do
|
|
66
|
+
env['FOO'] = "great"
|
|
105
67
|
runner.start
|
|
106
68
|
|
|
107
|
-
build.output.should == '
|
|
69
|
+
build.parts[4].output.should == env['BUILDBOX_REPO']
|
|
70
|
+
build.parts.last.output.should == 'great'
|
|
108
71
|
end
|
|
109
72
|
end
|
|
110
73
|
|
|
111
|
-
context '
|
|
112
|
-
let(:
|
|
113
|
-
let(:script) do
|
|
114
|
-
<<-SCRIPT
|
|
115
|
-
echo $BAR
|
|
116
|
-
SCRIPT
|
|
117
|
-
end
|
|
74
|
+
context 'running a failing build that returns a non standard exit status' do
|
|
75
|
+
let(:commit) { "f20051c2ebf04cbf6fe28f8620b7a3c3da2f2fd4" }
|
|
118
76
|
|
|
119
|
-
it "
|
|
77
|
+
it "returns a unsuccessfull result" do
|
|
120
78
|
runner.start
|
|
121
79
|
|
|
122
|
-
build.
|
|
80
|
+
build.should_not be_success
|
|
81
|
+
build.parts.last.exit_status.should == 123
|
|
123
82
|
end
|
|
124
83
|
end
|
|
125
84
|
|
|
126
|
-
context 'running a
|
|
127
|
-
let(:
|
|
85
|
+
context 'running a build with a .buildbox file inside' do
|
|
86
|
+
let(:commit) { "96b3b1ccedd7e3d0c3d980a3f5efbd456e910f81" }
|
|
128
87
|
|
|
129
88
|
it "returns a unsuccessfull result" do
|
|
130
89
|
runner.start
|
|
131
90
|
|
|
132
|
-
build.
|
|
133
|
-
build.exit_status.should == 123
|
|
91
|
+
build.parts.last.output.should == 'Hello there!!'
|
|
134
92
|
end
|
|
135
93
|
end
|
|
136
94
|
|
|
137
95
|
context 'a build that has a command with a syntax error' do
|
|
138
|
-
let(:
|
|
96
|
+
let(:commit) { "8eef70ef24a36aa57fbacc0d759e312f51332c3d" }
|
|
139
97
|
|
|
140
98
|
it "returns a unsuccessfull result" do
|
|
141
99
|
runner.start
|
|
@@ -147,12 +105,12 @@ SCRIPT
|
|
|
147
105
|
# zsh 5.0.2 prints "parse error" which we do not handle.
|
|
148
106
|
# localized systems will print the message in not English which
|
|
149
107
|
# we do not handle either.
|
|
150
|
-
build.output.should =~ /(syntax|parse) error/i
|
|
108
|
+
build.parts.last.output.should =~ /(syntax|parse) error/i
|
|
151
109
|
end
|
|
152
110
|
end
|
|
153
111
|
|
|
154
112
|
context 'running a build with a broken command' do
|
|
155
|
-
let(:
|
|
113
|
+
let(:commit) { '99cc50613b66753e8baff6678287b77484f65398' }
|
|
156
114
|
|
|
157
115
|
it "returns a unsuccessfull result" do
|
|
158
116
|
runner.start
|
|
@@ -160,7 +118,7 @@ SCRIPT
|
|
|
160
118
|
build.should_not be_success
|
|
161
119
|
# ubuntu: sh: 1: foobar: not found
|
|
162
120
|
# osx: sh: foobar: command not found
|
|
163
|
-
build.output.should =~ /foobar.+not found/
|
|
121
|
+
build.parts.last.output.should =~ /foobar.+not found/
|
|
164
122
|
end
|
|
165
123
|
end
|
|
166
124
|
|
|
@@ -168,11 +126,11 @@ SCRIPT
|
|
|
168
126
|
it "returns a successfull result when the build passes" do
|
|
169
127
|
runner.start
|
|
170
128
|
build.should be_success
|
|
171
|
-
build.output.should =~ /1 example, 0 failures/
|
|
129
|
+
build.parts.last.output.should =~ /1 example, 0 failures/
|
|
172
130
|
|
|
173
131
|
runner.start
|
|
174
132
|
build.should be_success
|
|
175
|
-
build.output.should =~ /1 example, 0 failures/
|
|
133
|
+
build.parts.last.output.should =~ /1 example, 0 failures/
|
|
176
134
|
end
|
|
177
135
|
end
|
|
178
136
|
|
|
@@ -185,12 +143,12 @@ SCRIPT
|
|
|
185
143
|
thread.join
|
|
186
144
|
|
|
187
145
|
build.should be_success
|
|
188
|
-
build.output.should =~ /1 example, 0 failures/
|
|
146
|
+
build.parts.last.output.should =~ /1 example, 0 failures/
|
|
189
147
|
end
|
|
190
148
|
end
|
|
191
149
|
|
|
192
150
|
context 'running a failing build from a thread' do
|
|
193
|
-
let(:commit) { "
|
|
151
|
+
let(:commit) { "5e10fade9d87996aff68ab953e1b0990546f53a6" }
|
|
194
152
|
|
|
195
153
|
it "returns a successfull result" do
|
|
196
154
|
result = nil
|
|
@@ -200,7 +158,7 @@ SCRIPT
|
|
|
200
158
|
thread.join
|
|
201
159
|
|
|
202
160
|
build.should_not be_success
|
|
203
|
-
build.output.should =~ /1 example, 1 failure/
|
|
161
|
+
build.parts.last.output.should =~ /1 example, 1 failure/
|
|
204
162
|
end
|
|
205
163
|
end
|
|
206
164
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: buildbox
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 0.3.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Keith Pitt
|
|
@@ -150,12 +150,46 @@ files:
|
|
|
150
150
|
- spec/fixtures/repo.git/hooks/prepare-commit-msg.sample
|
|
151
151
|
- spec/fixtures/repo.git/hooks/update.sample
|
|
152
152
|
- spec/fixtures/repo.git/info/exclude
|
|
153
|
+
- spec/fixtures/repo.git/objects/04/962eeccc7db2ca321fae49c1870e8fc4d2d66e
|
|
154
|
+
- spec/fixtures/repo.git/objects/06/2228c22ba88855cad2d6a49548102eae064f83
|
|
155
|
+
- spec/fixtures/repo.git/objects/0c/0b9f8492bbf106aa0b3ab44f2b1f85201d7741
|
|
156
|
+
- spec/fixtures/repo.git/objects/0e/2d0627c994c622bec0e3bcc974d5e93333e16b
|
|
157
|
+
- spec/fixtures/repo.git/objects/13/1eb1a583f8c93ae161efc6a20f039534ffd1f2
|
|
158
|
+
- spec/fixtures/repo.git/objects/20/962c607e5717778217d53e1486a91cf37364c3
|
|
159
|
+
- spec/fixtures/repo.git/objects/24/b04991020e82630ef2ee1d880a6af3cbd4c895
|
|
160
|
+
- spec/fixtures/repo.git/objects/26/09e034ab986b1300462e5045e528e997e92388
|
|
161
|
+
- spec/fixtures/repo.git/objects/2a/c2f6560213aa67b0beb5f93752ba9bc5c17408
|
|
153
162
|
- spec/fixtures/repo.git/objects/2d/762cdfd781dc4077c9f27a18969efbd186363c
|
|
163
|
+
- spec/fixtures/repo.git/objects/37/d57a5fc0e114e2ed5f93246e1faad4ffdc938f
|
|
164
|
+
- spec/fixtures/repo.git/objects/38/393aa12f6a61fb004d97cc758d57553677ef4c
|
|
154
165
|
- spec/fixtures/repo.git/objects/3e/0c65433b241ff2c59220f80bcdcd2ebb7e4b96
|
|
166
|
+
- spec/fixtures/repo.git/objects/55/21b43c112e44d30c1c6e96a624ac2f7f106080
|
|
167
|
+
- spec/fixtures/repo.git/objects/5e/10fade9d87996aff68ab953e1b0990546f53a6
|
|
168
|
+
- spec/fixtures/repo.git/objects/65/70f379f41b941bb7c55bf3dfa748c38ceeac18
|
|
169
|
+
- spec/fixtures/repo.git/objects/67/51a12720df0cab2d2af8c5faa5d7a9de0592a2
|
|
170
|
+
- spec/fixtures/repo.git/objects/6d/360ec6efb36a1899d99ee6db7b5d6775f75553
|
|
171
|
+
- spec/fixtures/repo.git/objects/81/4d7440ff99aa974a16f62bf74a5e332848d38e
|
|
172
|
+
- spec/fixtures/repo.git/objects/8b/8bbf08cad20dddc169e6ba18f0a57dc199d780
|
|
173
|
+
- spec/fixtures/repo.git/objects/8e/ef70ef24a36aa57fbacc0d759e312f51332c3d
|
|
155
174
|
- spec/fixtures/repo.git/objects/95/73fff3f9e2c38ccdd7755674ec87c31ca08270
|
|
175
|
+
- spec/fixtures/repo.git/objects/96/05a98eaf99f9c8436fc0d63d1f9c4e7c8074a1
|
|
176
|
+
- spec/fixtures/repo.git/objects/96/b3b1ccedd7e3d0c3d980a3f5efbd456e910f81
|
|
177
|
+
- spec/fixtures/repo.git/objects/99/cc50613b66753e8baff6678287b77484f65398
|
|
178
|
+
- spec/fixtures/repo.git/objects/a1/fbbf2cde5a3f75c66599c176618a0503e58280
|
|
179
|
+
- spec/fixtures/repo.git/objects/aa/6a10fb52f6c921da60255271efc54865d83108
|
|
180
|
+
- spec/fixtures/repo.git/objects/b1/6359980d096f665a6bdb22331b679fd34b8aee
|
|
181
|
+
- spec/fixtures/repo.git/objects/b3/f5006b546d890c65573bb5ceab100ce3c3b0d6
|
|
182
|
+
- spec/fixtures/repo.git/objects/c3/f573f9c7886117a28bb9f6f09452faec874d52
|
|
156
183
|
- spec/fixtures/repo.git/objects/c4/01f49fe0172add6a09aec8a7808112ce5894dd
|
|
184
|
+
- spec/fixtures/repo.git/objects/c4/3c386d88340ba3214064669190de65e6094082
|
|
157
185
|
- spec/fixtures/repo.git/objects/c9/3cd4edd7e0b6fd4c69e65fc7f25cbf06ac855c
|
|
186
|
+
- spec/fixtures/repo.git/objects/cb/fa06c2ca5c2b91d093b89886d873815820125d
|
|
187
|
+
- spec/fixtures/repo.git/objects/ce/460ddb64d2a317bb6f49eaf22ebe839e5d0839
|
|
158
188
|
- spec/fixtures/repo.git/objects/e9/8d8a9be514ef53609a52c9e1b820dbcc8e6603
|
|
189
|
+
- spec/fixtures/repo.git/objects/ed/8af179853d173a838535a250c4500c0ccd8199
|
|
190
|
+
- spec/fixtures/repo.git/objects/f2/0051c2ebf04cbf6fe28f8620b7a3c3da2f2fd4
|
|
191
|
+
- spec/fixtures/repo.git/objects/f3/9ab5e17f1e98465df20fdf2d8f3a29af10d804
|
|
192
|
+
- spec/fixtures/repo.git/objects/f8/93c7f6939fc152ce65f4f4ade3e98e9c6ae9b4
|
|
159
193
|
- spec/fixtures/repo.git/refs/heads/master
|
|
160
194
|
- spec/fixtures/rspec/test_spec.rb
|
|
161
195
|
- spec/fixtures/sleep_script
|
|
@@ -213,12 +247,46 @@ test_files:
|
|
|
213
247
|
- spec/fixtures/repo.git/hooks/prepare-commit-msg.sample
|
|
214
248
|
- spec/fixtures/repo.git/hooks/update.sample
|
|
215
249
|
- spec/fixtures/repo.git/info/exclude
|
|
250
|
+
- spec/fixtures/repo.git/objects/04/962eeccc7db2ca321fae49c1870e8fc4d2d66e
|
|
251
|
+
- spec/fixtures/repo.git/objects/06/2228c22ba88855cad2d6a49548102eae064f83
|
|
252
|
+
- spec/fixtures/repo.git/objects/0c/0b9f8492bbf106aa0b3ab44f2b1f85201d7741
|
|
253
|
+
- spec/fixtures/repo.git/objects/0e/2d0627c994c622bec0e3bcc974d5e93333e16b
|
|
254
|
+
- spec/fixtures/repo.git/objects/13/1eb1a583f8c93ae161efc6a20f039534ffd1f2
|
|
255
|
+
- spec/fixtures/repo.git/objects/20/962c607e5717778217d53e1486a91cf37364c3
|
|
256
|
+
- spec/fixtures/repo.git/objects/24/b04991020e82630ef2ee1d880a6af3cbd4c895
|
|
257
|
+
- spec/fixtures/repo.git/objects/26/09e034ab986b1300462e5045e528e997e92388
|
|
258
|
+
- spec/fixtures/repo.git/objects/2a/c2f6560213aa67b0beb5f93752ba9bc5c17408
|
|
216
259
|
- spec/fixtures/repo.git/objects/2d/762cdfd781dc4077c9f27a18969efbd186363c
|
|
260
|
+
- spec/fixtures/repo.git/objects/37/d57a5fc0e114e2ed5f93246e1faad4ffdc938f
|
|
261
|
+
- spec/fixtures/repo.git/objects/38/393aa12f6a61fb004d97cc758d57553677ef4c
|
|
217
262
|
- spec/fixtures/repo.git/objects/3e/0c65433b241ff2c59220f80bcdcd2ebb7e4b96
|
|
263
|
+
- spec/fixtures/repo.git/objects/55/21b43c112e44d30c1c6e96a624ac2f7f106080
|
|
264
|
+
- spec/fixtures/repo.git/objects/5e/10fade9d87996aff68ab953e1b0990546f53a6
|
|
265
|
+
- spec/fixtures/repo.git/objects/65/70f379f41b941bb7c55bf3dfa748c38ceeac18
|
|
266
|
+
- spec/fixtures/repo.git/objects/67/51a12720df0cab2d2af8c5faa5d7a9de0592a2
|
|
267
|
+
- spec/fixtures/repo.git/objects/6d/360ec6efb36a1899d99ee6db7b5d6775f75553
|
|
268
|
+
- spec/fixtures/repo.git/objects/81/4d7440ff99aa974a16f62bf74a5e332848d38e
|
|
269
|
+
- spec/fixtures/repo.git/objects/8b/8bbf08cad20dddc169e6ba18f0a57dc199d780
|
|
270
|
+
- spec/fixtures/repo.git/objects/8e/ef70ef24a36aa57fbacc0d759e312f51332c3d
|
|
218
271
|
- spec/fixtures/repo.git/objects/95/73fff3f9e2c38ccdd7755674ec87c31ca08270
|
|
272
|
+
- spec/fixtures/repo.git/objects/96/05a98eaf99f9c8436fc0d63d1f9c4e7c8074a1
|
|
273
|
+
- spec/fixtures/repo.git/objects/96/b3b1ccedd7e3d0c3d980a3f5efbd456e910f81
|
|
274
|
+
- spec/fixtures/repo.git/objects/99/cc50613b66753e8baff6678287b77484f65398
|
|
275
|
+
- spec/fixtures/repo.git/objects/a1/fbbf2cde5a3f75c66599c176618a0503e58280
|
|
276
|
+
- spec/fixtures/repo.git/objects/aa/6a10fb52f6c921da60255271efc54865d83108
|
|
277
|
+
- spec/fixtures/repo.git/objects/b1/6359980d096f665a6bdb22331b679fd34b8aee
|
|
278
|
+
- spec/fixtures/repo.git/objects/b3/f5006b546d890c65573bb5ceab100ce3c3b0d6
|
|
279
|
+
- spec/fixtures/repo.git/objects/c3/f573f9c7886117a28bb9f6f09452faec874d52
|
|
219
280
|
- spec/fixtures/repo.git/objects/c4/01f49fe0172add6a09aec8a7808112ce5894dd
|
|
281
|
+
- spec/fixtures/repo.git/objects/c4/3c386d88340ba3214064669190de65e6094082
|
|
220
282
|
- spec/fixtures/repo.git/objects/c9/3cd4edd7e0b6fd4c69e65fc7f25cbf06ac855c
|
|
283
|
+
- spec/fixtures/repo.git/objects/cb/fa06c2ca5c2b91d093b89886d873815820125d
|
|
284
|
+
- spec/fixtures/repo.git/objects/ce/460ddb64d2a317bb6f49eaf22ebe839e5d0839
|
|
221
285
|
- spec/fixtures/repo.git/objects/e9/8d8a9be514ef53609a52c9e1b820dbcc8e6603
|
|
286
|
+
- spec/fixtures/repo.git/objects/ed/8af179853d173a838535a250c4500c0ccd8199
|
|
287
|
+
- spec/fixtures/repo.git/objects/f2/0051c2ebf04cbf6fe28f8620b7a3c3da2f2fd4
|
|
288
|
+
- spec/fixtures/repo.git/objects/f3/9ab5e17f1e98465df20fdf2d8f3a29af10d804
|
|
289
|
+
- spec/fixtures/repo.git/objects/f8/93c7f6939fc152ce65f4f4ade3e98e9c6ae9b4
|
|
222
290
|
- spec/fixtures/repo.git/refs/heads/master
|
|
223
291
|
- spec/fixtures/rspec/test_spec.rb
|
|
224
292
|
- spec/fixtures/sleep_script
|