buildbox 0.3 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/buildbox/api.rb +1 -1
  4. data/lib/buildbox/build.rb +28 -3
  5. data/lib/buildbox/cli.rb +3 -1
  6. data/lib/buildbox/monitor.rb +3 -3
  7. data/lib/buildbox/runner.rb +64 -21
  8. data/lib/buildbox/version.rb +1 -1
  9. data/spec/fixtures/repo.git/objects/04/962eeccc7db2ca321fae49c1870e8fc4d2d66e +0 -0
  10. data/spec/fixtures/repo.git/objects/06/2228c22ba88855cad2d6a49548102eae064f83 +0 -0
  11. data/spec/fixtures/repo.git/objects/0c/0b9f8492bbf106aa0b3ab44f2b1f85201d7741 +0 -0
  12. data/spec/fixtures/repo.git/objects/0e/2d0627c994c622bec0e3bcc974d5e93333e16b +0 -0
  13. data/spec/fixtures/repo.git/objects/13/1eb1a583f8c93ae161efc6a20f039534ffd1f2 +0 -0
  14. data/spec/fixtures/repo.git/objects/20/962c607e5717778217d53e1486a91cf37364c3 +0 -0
  15. data/spec/fixtures/repo.git/objects/24/b04991020e82630ef2ee1d880a6af3cbd4c895 +0 -0
  16. data/spec/fixtures/repo.git/objects/26/09e034ab986b1300462e5045e528e997e92388 +0 -0
  17. data/spec/fixtures/repo.git/objects/2a/c2f6560213aa67b0beb5f93752ba9bc5c17408 +1 -0
  18. data/spec/fixtures/repo.git/objects/37/d57a5fc0e114e2ed5f93246e1faad4ffdc938f +0 -0
  19. data/spec/fixtures/repo.git/objects/38/393aa12f6a61fb004d97cc758d57553677ef4c +0 -0
  20. data/spec/fixtures/repo.git/objects/55/21b43c112e44d30c1c6e96a624ac2f7f106080 +0 -0
  21. data/spec/fixtures/repo.git/objects/5e/10fade9d87996aff68ab953e1b0990546f53a6 +0 -0
  22. data/spec/fixtures/repo.git/objects/65/70f379f41b941bb7c55bf3dfa748c38ceeac18 +0 -0
  23. data/spec/fixtures/repo.git/objects/67/51a12720df0cab2d2af8c5faa5d7a9de0592a2 +0 -0
  24. data/spec/fixtures/repo.git/objects/6d/360ec6efb36a1899d99ee6db7b5d6775f75553 +0 -0
  25. data/spec/fixtures/repo.git/objects/81/4d7440ff99aa974a16f62bf74a5e332848d38e +2 -0
  26. data/spec/fixtures/repo.git/objects/8b/8bbf08cad20dddc169e6ba18f0a57dc199d780 +0 -0
  27. data/spec/fixtures/repo.git/objects/8e/ef70ef24a36aa57fbacc0d759e312f51332c3d +3 -0
  28. data/spec/fixtures/repo.git/objects/96/05a98eaf99f9c8436fc0d63d1f9c4e7c8074a1 +0 -0
  29. data/spec/fixtures/repo.git/objects/96/b3b1ccedd7e3d0c3d980a3f5efbd456e910f81 +0 -0
  30. data/spec/fixtures/repo.git/objects/99/cc50613b66753e8baff6678287b77484f65398 +2 -0
  31. data/spec/fixtures/repo.git/objects/a1/fbbf2cde5a3f75c66599c176618a0503e58280 +1 -0
  32. data/spec/fixtures/repo.git/objects/aa/6a10fb52f6c921da60255271efc54865d83108 +0 -0
  33. data/spec/fixtures/repo.git/objects/b1/6359980d096f665a6bdb22331b679fd34b8aee +0 -0
  34. data/spec/fixtures/repo.git/objects/b3/f5006b546d890c65573bb5ceab100ce3c3b0d6 +0 -0
  35. data/spec/fixtures/repo.git/objects/c3/f573f9c7886117a28bb9f6f09452faec874d52 +0 -0
  36. data/spec/fixtures/repo.git/objects/c4/3c386d88340ba3214064669190de65e6094082 +0 -0
  37. data/spec/fixtures/repo.git/objects/cb/fa06c2ca5c2b91d093b89886d873815820125d +0 -0
  38. data/spec/fixtures/repo.git/objects/ce/460ddb64d2a317bb6f49eaf22ebe839e5d0839 +0 -0
  39. data/spec/fixtures/repo.git/objects/ed/8af179853d173a838535a250c4500c0ccd8199 +2 -0
  40. data/spec/fixtures/repo.git/objects/f2/0051c2ebf04cbf6fe28f8620b7a3c3da2f2fd4 +1 -0
  41. data/spec/fixtures/repo.git/objects/f3/9ab5e17f1e98465df20fdf2d8f3a29af10d804 +0 -0
  42. data/spec/fixtures/repo.git/objects/f8/93c7f6939fc152ce65f4f4ade3e98e9c6ae9b4 +0 -0
  43. data/spec/fixtures/repo.git/refs/heads/master +1 -1
  44. data/spec/integration/running_a_build_spec.rb +32 -74
  45. metadata +69 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 943e5240e1dc1d41d6086cdf88dadc990477f165
4
- data.tar.gz: 7f03003bb7c71db8971a5c313325fc5461cca2dc
3
+ metadata.gz: 033c05b17212599e1e890e81b4fc2a32af110232
4
+ data.tar.gz: b83c38368d0f73644886f1cd85e06ba2027d5eb0
5
5
  SHA512:
6
- metadata.gz: 581a02441d7887327dd69584eb0c476b90dfcd01899e81f3da7bafe03b7d505ffbf4e3af385154d17394fe0db255eed477d098f41fe7ff3ae18ce502252fafce
7
- data.tar.gz: c9fec973a2d1814c2342a719d14861cb0478ecdcabf7723c5e3085144430e1fea8fc35e42082b40071a723beadaaedc3413e28b297902920cc30bb4977621b1d
6
+ metadata.gz: 5371b0e6e4a08edae5a8491b16a2db9934fc37833005a268e76ee4cb1d6eacc54281ac38608722b946de53bd919c65e979f33cd632661478ab2882030bb24e14
7
+ data.tar.gz: 0c6fea3764b2fdd393854a10a4e5dccf100cfd00afee0fc542e04a297a06b04c8311d70627a1666427b6422e019cf763517441a36d0d72bd8ce5537c83c9f9f2
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- buildbox (0.3)
4
+ buildbox (0.3.1)
5
5
  celluloid (~> 0.14)
6
6
  childprocess (~> 0.3)
7
7
  faraday (~> 0.8)
@@ -23,7 +23,7 @@ module Buildbox
23
23
  end
24
24
 
25
25
  def update_build(build)
26
- put(build.url, :output => build.output, :exit_status => build.exit_status)
26
+ put(build.url, :state => build.state, :parts => build.parts)
27
27
  end
28
28
 
29
29
  private
@@ -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
- exit_status == 0
25
+ !@parts.empty? && @parts.last.success?
8
26
  end
9
27
 
10
28
  def started?
11
- output.kind_of?(String) && output.length > 0
29
+ state == State::STARTED
12
30
  end
13
31
 
14
32
  def finished?
15
- exit_status != nil
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
@@ -111,7 +111,9 @@ module Buildbox
111
111
  def help
112
112
  <<HELP
113
113
 
114
- agent # agent management (setup, server)
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
@@ -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.dup
19
- @api.update_build(build) if build.started?
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
@@ -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 start
17
- info "Starting to build #{namespace}/#{@build.number} starting..."
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
- FileUtils.mkdir_p(directory_path)
20
- File.open(script_path, 'w+') { |file| file.write(@build.script) }
21
- File.chmod(0777, script_path)
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
- info "Running script: #{script_path}"
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
- build.output = ""
26
- result = Command.run(script_path, :environment => @build.env,
27
- :directory => directory_path) do |chunk|
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.output = result.output
32
- build.exit_status = result.exit_status
47
+ @build.state = Build::State::STARTED
33
48
 
34
- File.delete(script_path)
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
- info "#{namespace} ##{@build.number} finished with exit status #{result.exit_status}"
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 directory_path
42
- @directory_path ||= Buildbox.root_path.join(namespace)
43
- end
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
- def script_path
46
- @script_path ||= Buildbox.root_path.join("buildbox-#{namespace.gsub(/\//, '-')}-#{@build.number}")
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 namespace
50
- "#{@build.project.team.name}/#{@build.project.name}"
92
+ def default_working_directory
93
+ Buildbox.root_path.join(@build.namespace)
51
94
  end
52
95
  end
53
96
  end
@@ -1,3 +1,3 @@
1
1
  module Buildbox
2
- VERSION = "0.3"
2
+ VERSION = "0.3.1"
3
3
  end
@@ -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��\�~mC HC@8iDT{������r�cjS{�@��T��X��$m������>i�Os
@@ -0,0 +1,2 @@
1
+ x��Aj�0E��)f_��e� �l�M�d��X�8�4��u���{>�2OS3��{"�B43�X�R��˱c����w#��EZYF�2�P}
2
+ �a�(�t�`)�}�N~�:/p�fW873�Mz���s�m��=��8aN}���n��=ӷ���j���^���`�m[�6G5
@@ -0,0 +1,3 @@
1
+ x��Kj�0D��)z$��BH���
2
+ ��#b�������!��UT��{S��>�)v^�!���N�U�y!���\if�1�9�M]-�zb 8�(ư�t��e��N����M�� o��
3
+ �M���|��t��?��RN��9��k�;���h^������e�������A۾pm �t�C�P�
@@ -0,0 +1,2 @@
1
+ x��Aj!E����E`(-۶!��:�\��2-ۡ��?&7���{���Vk0�>�� �R$��dq
2
+ �f?kԈ�<հ��CuK�X�rOk��\� ����;�VY����K�ZzxU?�%TA
@@ -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,2 @@
1
+ x��;�0D�s��"��H!Z��v6�"&(8n�s����8�
2
+ (�wef"CR �`�W�'#������3�;-�k�4�+����6���-�@>D��v���ܦ.��
@@ -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
- 2d762cdfd781dc4077c9f27a18969efbd186363c
1
+ f20051c2ebf04cbf6fe28f8620b7a3c3da2f2fd4
@@ -3,26 +3,10 @@
3
3
  require 'spec_helper'
4
4
 
5
5
  describe 'running a build' do
6
- let(:commit) { "3e0c65433b241ff2c59220f80bcdcd2ebb7e4b96" }
7
- let(:command) { "rspec test_spec.rb" }
8
- let(:env) { { } }
9
- let(:build) { Buildbox::Build.new(:project => { :name => "test", :team => { :name => "test" } }, :number => 1, :script => script, :env => env) }
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.output.should =~ /1 example, 0 failures/
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) { "2d762cdfd781dc4077c9f27a18969efbd186363c" }
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) { "2d762cdfd781dc4077c9f27a18969efbd186363c" }
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(:env) { { "FOO" => "great" } }
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 == 'great'
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 'accessing ENV variables with a bash script' do
112
- let(:env) { { "BAR" => "great" } }
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 "runs and returns the correct output" do
77
+ it "returns a unsuccessfull result" do
120
78
  runner.start
121
79
 
122
- build.output.should == 'great'
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 failing build that returns a non standard exit status' do
127
- let(:command) { "exit 123" }
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.should_not be_success
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(:command) { 'if ( echo yay' }
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(:command) { 'foobar' }
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) { "2d762cdfd781dc4077c9f27a18969efbd186363c" }
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: '0.3'
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