buildbox 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +29 -0
  6. data/Rakefile +1 -0
  7. data/bin/buildbox +31 -0
  8. data/buildbox-ruby.gemspec +25 -0
  9. data/lib/buildbox.rb +37 -0
  10. data/lib/buildbox/api.rb +80 -0
  11. data/lib/buildbox/build.rb +50 -0
  12. data/lib/buildbox/client.rb +78 -0
  13. data/lib/buildbox/command.rb +67 -0
  14. data/lib/buildbox/configuration.rb +56 -0
  15. data/lib/buildbox/pid_file.rb +25 -0
  16. data/lib/buildbox/result.rb +7 -0
  17. data/lib/buildbox/utf8.rb +50 -0
  18. data/lib/buildbox/version.rb +3 -0
  19. data/lib/buildbox/worker.rb +25 -0
  20. data/spec/buildbox/buildbox/build_spec.rb +66 -0
  21. data/spec/buildbox/buildbox/command_spec.rb +115 -0
  22. data/spec/buildbox/buildbox/configuration_spec.rb +9 -0
  23. data/spec/buildbox/buildbox_spec.rb +4 -0
  24. data/spec/fixtures/repo.git/HEAD +1 -0
  25. data/spec/fixtures/repo.git/config +6 -0
  26. data/spec/fixtures/repo.git/description +1 -0
  27. data/spec/fixtures/repo.git/hooks/applypatch-msg.sample +15 -0
  28. data/spec/fixtures/repo.git/hooks/commit-msg.sample +24 -0
  29. data/spec/fixtures/repo.git/hooks/post-update.sample +8 -0
  30. data/spec/fixtures/repo.git/hooks/pre-applypatch.sample +14 -0
  31. data/spec/fixtures/repo.git/hooks/pre-commit.sample +50 -0
  32. data/spec/fixtures/repo.git/hooks/pre-push.sample +53 -0
  33. data/spec/fixtures/repo.git/hooks/pre-rebase.sample +169 -0
  34. data/spec/fixtures/repo.git/hooks/prepare-commit-msg.sample +36 -0
  35. data/spec/fixtures/repo.git/hooks/update.sample +128 -0
  36. data/spec/fixtures/repo.git/info/exclude +6 -0
  37. data/spec/fixtures/repo.git/objects/2d/762cdfd781dc4077c9f27a18969efbd186363c +2 -0
  38. data/spec/fixtures/repo.git/objects/3e/0c65433b241ff2c59220f80bcdcd2ebb7e4b96 +2 -0
  39. data/spec/fixtures/repo.git/objects/95/73fff3f9e2c38ccdd7755674ec87c31ca08270 +0 -0
  40. data/spec/fixtures/repo.git/objects/c4/01f49fe0172add6a09aec8a7808112ce5894dd +0 -0
  41. data/spec/fixtures/repo.git/objects/c9/3cd4edd7e0b6fd4c69e65fc7f25cbf06ac855c +0 -0
  42. data/spec/fixtures/repo.git/objects/e9/8d8a9be514ef53609a52c9e1b820dbcc8e6603 +0 -0
  43. data/spec/fixtures/repo.git/refs/heads/master +1 -0
  44. data/spec/fixtures/rspec/test_spec.rb +5 -0
  45. data/spec/integration/running_a_build_spec.rb +89 -0
  46. data/spec/spec_helper.rb +18 -0
  47. data/spec/support/dotenv.rb +3 -0
  48. data/spec/support/silence_logger.rb +7 -0
  49. metadata +177 -0
@@ -0,0 +1,2 @@
1
+ x��K
2
+ �0@]���d�� ��ڍWHf&6h?�x�\�/�T*�C�T���BV�E�>b��>������D�7�+���w�m9�3q�0{L,,�)
@@ -0,0 +1,2 @@
1
+ x��K
2
+ �0@]��ʤi� ��ڍW�g���H���#�|/�Z���i'��S��#[=���>�1y֑F�1%b�Ш�u�p��E�O��
@@ -0,0 +1 @@
1
+ 2d762cdfd781dc4077c9f27a18969efbd186363c
@@ -0,0 +1,5 @@
1
+ describe "greatness" do
2
+ it "should be easy" do
3
+ true.should == true
4
+ end
5
+ end
@@ -0,0 +1,89 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'running a build' do
4
+ let(:commit) { "3e0c65433b241ff2c59220f80bcdcd2ebb7e4b96" }
5
+ let(:command) { "rspec test_spec.rb" }
6
+ let(:build) { Buildbox::Build.new(:project_id => 1, :build_id => 1, :repo => FIXTURES_PATH.join("repo.git").to_s, :commit => commit, :command => command) }
7
+
8
+ before do
9
+ Buildbox.stub(:root_path).and_return(TEMP_PATH)
10
+ end
11
+
12
+ after do
13
+ TEMP_PATH.rmtree if TEMP_PATH.exist?
14
+ end
15
+
16
+ context 'running a working build' do
17
+ it "returns a successfull result" do
18
+ result = build.start
19
+
20
+ result.should be_success
21
+ result.output.should =~ /1 example, 0 failures/
22
+ end
23
+ end
24
+
25
+ context 'running a failing build' do
26
+ let(:commit) { "2d762cdfd781dc4077c9f27a18969efbd186363c" }
27
+
28
+ it "returns a unsuccessfull result" do
29
+ result = build.start
30
+
31
+ result.should_not be_success
32
+ result.output.should =~ /1 example, 1 failure/
33
+ end
34
+ end
35
+
36
+ context 'running a build with a broken command' do
37
+ let(:command) { 'foobar' }
38
+
39
+ it "returns a unsuccessfull result" do
40
+ result = build.start
41
+
42
+ result.should_not be_success
43
+ # ubuntu: sh: 1: foobar: not found
44
+ # osx: sh: foobar: command not found
45
+ result.output.should =~ /foobar.+not found/
46
+ end
47
+ end
48
+
49
+ context 'running multiple builds in a row' do
50
+ it "returns a successfull result when the build passes" do
51
+ first_result = build.start
52
+ second_result = build.start
53
+
54
+ first_result.should be_success
55
+ first_result.output.should =~ /1 example, 0 failures/
56
+
57
+ second_result.should be_success
58
+ second_result.output.should =~ /1 example, 0 failures/
59
+ end
60
+ end
61
+
62
+ context 'running a working build from a thread' do
63
+ it "returns a successfull result" do
64
+ result = nil
65
+ thread = Thread.new do
66
+ result = build.start
67
+ end
68
+ thread.join
69
+
70
+ result.should be_success
71
+ result.output.should =~ /1 example, 0 failures/
72
+ end
73
+ end
74
+
75
+ context 'running a failing build from a thread' do
76
+ let(:commit) { "2d762cdfd781dc4077c9f27a18969efbd186363c" }
77
+
78
+ it "returns a successfull result" do
79
+ result = nil
80
+ thread = Thread.new do
81
+ result = build.start
82
+ end
83
+ thread.join
84
+
85
+ result.should_not be_success
86
+ result.output.should =~ /1 example, 1 failure/
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,18 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require 'buildbox'
5
+
6
+ SPEC_PATH = Pathname.new(File.expand_path('..', __FILE__))
7
+ FIXTURES_PATH = SPEC_PATH.join('fixtures')
8
+ TEMP_PATH = SPEC_PATH.join('tmp')
9
+
10
+ Dir[SPEC_PATH.join("support/**/*.rb")].each { |f| require f }
11
+
12
+ RSpec.configure do |config|
13
+ # Run specs in random order to surface order dependencies. If you find an
14
+ # order dependency and want to debug it, you can fix the order by providing
15
+ # the seed, which is printed after each run.
16
+ # --seed 1234
17
+ config.order = "random"
18
+ end
@@ -0,0 +1,3 @@
1
+ require 'dotenv'
2
+
3
+ Dotenv.load
@@ -0,0 +1,7 @@
1
+ RSpec.configure do |config|
2
+ config.before(:each) do
3
+ logger = Logger.new(StringIO.new)
4
+
5
+ Buildbox.stub(:logger => logger)
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,177 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: buildbox
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Keith Pitt
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-06-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: dotenv
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'
69
+ description: Ruby client for buildbox
70
+ email:
71
+ - me@keithpitt.com
72
+ executables:
73
+ - buildbox
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - .gitignore
78
+ - Gemfile
79
+ - LICENSE.txt
80
+ - README.md
81
+ - Rakefile
82
+ - bin/buildbox
83
+ - buildbox-ruby.gemspec
84
+ - lib/buildbox.rb
85
+ - lib/buildbox/api.rb
86
+ - lib/buildbox/build.rb
87
+ - lib/buildbox/client.rb
88
+ - lib/buildbox/command.rb
89
+ - lib/buildbox/configuration.rb
90
+ - lib/buildbox/pid_file.rb
91
+ - lib/buildbox/result.rb
92
+ - lib/buildbox/utf8.rb
93
+ - lib/buildbox/version.rb
94
+ - lib/buildbox/worker.rb
95
+ - spec/buildbox/buildbox/build_spec.rb
96
+ - spec/buildbox/buildbox/command_spec.rb
97
+ - spec/buildbox/buildbox/configuration_spec.rb
98
+ - spec/buildbox/buildbox_spec.rb
99
+ - spec/fixtures/repo.git/HEAD
100
+ - spec/fixtures/repo.git/config
101
+ - spec/fixtures/repo.git/description
102
+ - spec/fixtures/repo.git/hooks/applypatch-msg.sample
103
+ - spec/fixtures/repo.git/hooks/commit-msg.sample
104
+ - spec/fixtures/repo.git/hooks/post-update.sample
105
+ - spec/fixtures/repo.git/hooks/pre-applypatch.sample
106
+ - spec/fixtures/repo.git/hooks/pre-commit.sample
107
+ - spec/fixtures/repo.git/hooks/pre-push.sample
108
+ - spec/fixtures/repo.git/hooks/pre-rebase.sample
109
+ - spec/fixtures/repo.git/hooks/prepare-commit-msg.sample
110
+ - spec/fixtures/repo.git/hooks/update.sample
111
+ - spec/fixtures/repo.git/info/exclude
112
+ - spec/fixtures/repo.git/objects/2d/762cdfd781dc4077c9f27a18969efbd186363c
113
+ - spec/fixtures/repo.git/objects/3e/0c65433b241ff2c59220f80bcdcd2ebb7e4b96
114
+ - spec/fixtures/repo.git/objects/95/73fff3f9e2c38ccdd7755674ec87c31ca08270
115
+ - spec/fixtures/repo.git/objects/c4/01f49fe0172add6a09aec8a7808112ce5894dd
116
+ - spec/fixtures/repo.git/objects/c9/3cd4edd7e0b6fd4c69e65fc7f25cbf06ac855c
117
+ - spec/fixtures/repo.git/objects/e9/8d8a9be514ef53609a52c9e1b820dbcc8e6603
118
+ - spec/fixtures/repo.git/refs/heads/master
119
+ - spec/fixtures/rspec/test_spec.rb
120
+ - spec/integration/running_a_build_spec.rb
121
+ - spec/spec_helper.rb
122
+ - spec/support/dotenv.rb
123
+ - spec/support/silence_logger.rb
124
+ homepage: ''
125
+ licenses:
126
+ - MIT
127
+ metadata: {}
128
+ post_install_message:
129
+ rdoc_options: []
130
+ require_paths:
131
+ - lib
132
+ required_ruby_version: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - '>='
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ required_rubygems_version: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ requirements: []
143
+ rubyforge_project:
144
+ rubygems_version: 2.0.0
145
+ signing_key:
146
+ specification_version: 4
147
+ summary: Ruby client for buildbox
148
+ test_files:
149
+ - spec/buildbox/buildbox/build_spec.rb
150
+ - spec/buildbox/buildbox/command_spec.rb
151
+ - spec/buildbox/buildbox/configuration_spec.rb
152
+ - spec/buildbox/buildbox_spec.rb
153
+ - spec/fixtures/repo.git/HEAD
154
+ - spec/fixtures/repo.git/config
155
+ - spec/fixtures/repo.git/description
156
+ - spec/fixtures/repo.git/hooks/applypatch-msg.sample
157
+ - spec/fixtures/repo.git/hooks/commit-msg.sample
158
+ - spec/fixtures/repo.git/hooks/post-update.sample
159
+ - spec/fixtures/repo.git/hooks/pre-applypatch.sample
160
+ - spec/fixtures/repo.git/hooks/pre-commit.sample
161
+ - spec/fixtures/repo.git/hooks/pre-push.sample
162
+ - spec/fixtures/repo.git/hooks/pre-rebase.sample
163
+ - spec/fixtures/repo.git/hooks/prepare-commit-msg.sample
164
+ - spec/fixtures/repo.git/hooks/update.sample
165
+ - spec/fixtures/repo.git/info/exclude
166
+ - spec/fixtures/repo.git/objects/2d/762cdfd781dc4077c9f27a18969efbd186363c
167
+ - spec/fixtures/repo.git/objects/3e/0c65433b241ff2c59220f80bcdcd2ebb7e4b96
168
+ - spec/fixtures/repo.git/objects/95/73fff3f9e2c38ccdd7755674ec87c31ca08270
169
+ - spec/fixtures/repo.git/objects/c4/01f49fe0172add6a09aec8a7808112ce5894dd
170
+ - spec/fixtures/repo.git/objects/c9/3cd4edd7e0b6fd4c69e65fc7f25cbf06ac855c
171
+ - spec/fixtures/repo.git/objects/e9/8d8a9be514ef53609a52c9e1b820dbcc8e6603
172
+ - spec/fixtures/repo.git/refs/heads/master
173
+ - spec/fixtures/rspec/test_spec.rb
174
+ - spec/integration/running_a_build_spec.rb
175
+ - spec/spec_helper.rb
176
+ - spec/support/dotenv.rb
177
+ - spec/support/silence_logger.rb