vx-builder 0.5.15 → 0.5.16

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4a275805db418f49736cfe836332b23cf6f68e62
4
- data.tar.gz: 65f898414b6ad2c592bcea46726869c6e2b8e82f
3
+ metadata.gz: 9ba37c5a2d8c7a7adfffd046b94b2ab44a46729c
4
+ data.tar.gz: 9409c682c87c19126e6bc0cc77bc93c8a3b9b96d
5
5
  SHA512:
6
- metadata.gz: 8d5f7cd060576ff9c8003b1435d0bcf8078a5d88f4b785c626c83d74ff3c5867bb48101076d625c5636acddd91fa871544d857293afa236f1fce70342e0555a9
7
- data.tar.gz: 6a26b1b9d81a22659598cd4c88d5ca4c519154130146c5a68cdc8710d3a8d3108322007a0ee30974477cb3c34e50ae4bff49b1c5282299ab8032ed050f80f009
6
+ metadata.gz: af7d18ba9cdee91192b8a5958f9fa9fd0bda24e95c4ff9a302b8cfc7f8d759720f029490d1c2e2bc010f0ad68349ff4e69105535b2700c126c345090b8f4579f
7
+ data.tar.gz: e7b6443d23fd0677bfb2b897e1677831cec116b20e758e1bb1b3024e39724b7fffa8343ef9901ab2159b05979aa81e4d18d59368604e57ec03ad892872e46ed9
@@ -0,0 +1,116 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+
5
+ notice () {
6
+ echo "$@"
7
+ }
8
+
9
+ ruby_detect () {
10
+ (
11
+ test -f Gemfile && test -f Rakefile
12
+ ) && (
13
+ notice "found ruby project"
14
+ )
15
+ }
16
+
17
+ rails_detect () {
18
+ test -f Gemfile && cat Gemfile | grep gem | grep -q rails
19
+ }
20
+
21
+ rails_gen_database_spec_for_pg () {
22
+ bundle show pg > /dev/null && (
23
+ notice 'create config/database.yml for postgresql'
24
+ cat > config/database.yml <<EOL
25
+ test:
26
+ adapter: postgresql
27
+ encoding: unicode
28
+ database: rails_test
29
+ username: postgres
30
+ host: localhost
31
+ EOL
32
+ )
33
+ }
34
+
35
+ rails_gen_database_spec_for_mysql () {
36
+ bundle show mysql2 > /dev/null && (
37
+ notice 'create config/database.yml for mysql'
38
+ cat > config/database.yml <<EOL
39
+ test:
40
+ adapter: mysql2
41
+ encoding: utf8
42
+ database: rails_test
43
+ username: root
44
+ host: localhost
45
+ EOL
46
+ )
47
+ }
48
+
49
+ rails_db_create () {
50
+ echo $ bundle exec rake db:create
51
+ bundle exec rake db:create
52
+
53
+ (
54
+ test -f db/schema.rb && (
55
+ echo $ bundle exec rake db:schema:load
56
+ bundle exec rake db:schema:load
57
+ )
58
+ ) || (
59
+ test -d db/migrate && (
60
+ echo $ bundle exec rake db:migrate
61
+ bundle exec rake db:migrate
62
+ )
63
+ )
64
+ }
65
+
66
+ rails_setup_database () {
67
+ rails_detect && (
68
+ (
69
+ rails_gen_database_spec_for_pg ||
70
+ rails_gen_database_spec_for_mysql
71
+ ) &&
72
+ rails_db_create
73
+ )
74
+ }
75
+
76
+ ruby_setup_env () {
77
+ echo $ export RAILS_ENV=test
78
+ export RAILS_ENV=test
79
+
80
+ echo $ export RACK_ENV=test
81
+ export RACK_ENV=test
82
+
83
+ echo $ export GEM_HOME=~/.rubygems
84
+ export GEM_HOME=~/.rubygems
85
+
86
+ test -f Gemfile && (
87
+ echo $ 'export BUNDLE_GEMFILE=${PWD}/Gemfile'
88
+ export BUNDLE_GEMFILE=${PWD}/Gemfile
89
+ )
90
+ }
91
+
92
+ bundle_install () {
93
+ test -f Gemfile && (
94
+ notice '$ bundle install --retry=3 --jobs=4 --clean'
95
+ bundle install --retry=3 --jobs=4 --clean
96
+ )
97
+ }
98
+
99
+ run_rake_default () {
100
+ echo $ bundle exec rake
101
+ bundle exec rake
102
+ }
103
+
104
+ ruby_build () {
105
+ notice 'build ruby project'
106
+
107
+ ruby_setup_env &&
108
+ bundle_install &&
109
+ ( rails_setup_database || true ) &&
110
+ run_rake_default
111
+ }
112
+
113
+ ruby_detect || exit 1
114
+ ruby_build || (
115
+ exit $?
116
+ )
@@ -66,6 +66,7 @@ module Vx
66
66
  def initialize(new_attributes = {}, matrix_attributes = {})
67
67
  new_attributes = {} unless new_attributes.is_a?(Hash)
68
68
 
69
+ @is_empty = new_attributes == {}
69
70
  @env = Env.new new_attributes.delete("env")
70
71
  @cache = Cache.new new_attributes.delete("cache")
71
72
  @vexor = Vexor.new new_attributes.delete("vexor")
@@ -87,6 +88,12 @@ module Vx
87
88
  build_attributes new_attributes
88
89
  end
89
90
 
91
+ # nil or empty configuration file
92
+ def empty?
93
+ @is_empty
94
+ end
95
+
96
+ # have any required attributes
90
97
  def any?
91
98
  REQUIRED_KEYS.any? do |key|
92
99
  attributes[key].any?
@@ -21,19 +21,21 @@ module Vx
21
21
 
22
22
  def build
23
23
  @build ||= begin
24
- new_attributes = build_configuration.to_hash.dup
25
- build_configurations = attributes_for_new_build_configurations_with_parallel.map do |matrix_attributes|
26
- BuildConfiguration.new(
27
- new_attributes.merge(matrix_attributes),
28
- matrix_attributes
24
+ if_empty do
25
+ new_attributes = build_configuration.to_hash.dup
26
+ build_configurations = attributes_for_new_build_configurations_with_parallel.map do |matrix_attributes|
27
+ BuildConfiguration.new(
28
+ new_attributes.merge(matrix_attributes),
29
+ matrix_attributes
30
+ )
31
+ end
32
+ filter_required_keys(
33
+ filter_exclude(
34
+ build_configuration.matrix.exclude,
35
+ build_configurations
36
+ )
29
37
  )
30
38
  end
31
- filter_not_empty(
32
- filter_exclude(
33
- build_configuration.matrix.exclude,
34
- build_configurations
35
- )
36
- )
37
39
  end
38
40
  end
39
41
 
@@ -111,7 +113,15 @@ module Vx
111
113
 
112
114
  private
113
115
 
114
- def filter_not_empty(configurations)
116
+ def if_empty
117
+ if build_configuration.empty?
118
+ [build_configuration]
119
+ else
120
+ yield
121
+ end
122
+ end
123
+
124
+ def filter_required_keys(configurations)
115
125
  configurations.select{|c| c.any? }
116
126
  end
117
127
 
@@ -24,6 +24,10 @@ module Vx
24
24
  end
25
25
  end
26
26
 
27
+ def do_init(env)
28
+ yield env.init
29
+ end
30
+
27
31
  def do_announce(env)
28
32
  yield env.announce
29
33
  end
@@ -4,7 +4,8 @@ module Vx
4
4
 
5
5
  class Ruby < Base
6
6
 
7
- DEFAULT_RUBY = '1.9.3'
7
+ DEFAULT_RUBY = '2.0.0'
8
+ DEFAULT_BUNDLE_INSTALL_ARGS = "--clean --retry=3 --jobs=4"
8
9
 
9
10
  ALIASES = {
10
11
  'jruby-19mode' => 'jruby'
@@ -12,7 +13,6 @@ module Vx
12
13
 
13
14
  def call(env)
14
15
  if enabled?(env)
15
-
16
16
  vxvm_install(env, 'ruby', ruby_version(env))
17
17
 
18
18
  do_cache_key(env) do |i|
@@ -21,6 +21,8 @@ module Vx
21
21
  end
22
22
 
23
23
  do_before_install(env) do |i|
24
+ i << trace_sh_command("export RAILS_ENV=test")
25
+ i << trace_sh_command("export RACK_ENV=test")
24
26
  i << trace_sh_command("export BUNDLE_GEMFILE=${PWD}/#{gemfile(env)}")
25
27
  i << trace_sh_command('export GEM_HOME=~/.rubygems')
26
28
  end
@@ -32,9 +34,8 @@ module Vx
32
34
  end
33
35
 
34
36
  do_install(env) do |i|
35
- bundler_args = env.source.bundler_args.first
37
+ bundler_args = env.source.bundler_args.first || DEFAULT_BUNDLE_INSTALL_ARGS
36
38
  i << trace_sh_command("bundle install #{bundler_args}")
37
- i << trace_sh_command("bundle clean --force")
38
39
  end
39
40
 
40
41
  do_script(env) do |i|
@@ -47,11 +48,33 @@ module Vx
47
48
  end
48
49
  end
49
50
 
51
+ if auto_build?(env)
52
+ vxvm_install(env, 'ruby', DEFAULT_RUBY)
53
+
54
+ do_init(env) do |i|
55
+ src = File.read(File.expand_path("../../../../../bin/vx_ruby_auto_build", __FILE__))
56
+ i << upload_sh_command("~/vx_ruby_auto_build", src)
57
+ i << "sudo chmod 0755 ~/vx_ruby_auto_build"
58
+ end
59
+
60
+ do_script(env) do |i|
61
+ i << "~/vx_ruby_auto_build"
62
+ end
63
+
64
+ do_cached_directories(env) do |i|
65
+ i << "~/.rubygems"
66
+ end
67
+ end
68
+
50
69
  app.call(env)
51
70
  end
52
71
 
53
72
  private
54
73
 
74
+ def auto_build?(env)
75
+ env.source.empty?
76
+ end
77
+
55
78
  def enabled?(env)
56
79
  env.source.rvm.first || env.source.language == 'ruby'
57
80
  end
@@ -1,5 +1,5 @@
1
1
  module Vx
2
2
  module Builder
3
- VERSION = "0.5.15"
3
+ VERSION = "0.5.16"
4
4
  end
5
5
  end
@@ -13,4 +13,4 @@ test -d ${VX_ROOT}/code/vexor/vx-test-repo || exit 1
13
13
  cd ${VX_ROOT}/code/vexor/vx-test-repo
14
14
 
15
15
  # after script
16
- test -f $HOME/.casher/bin/casher && casher-ruby $HOME/.casher/bin/casher push http://example.com/test/pull-request/rvm-1.9.3-gemfile.tgz
16
+ test -f $HOME/.casher/bin/casher && casher-ruby $HOME/.casher/bin/casher push http://example.com/test/pull-request/rvm-2.0.0-gemfile.tgz
@@ -44,14 +44,18 @@ echo "download latest version of vxvm"
44
44
  curl --tcp-nodelay --retry 3 --fail --silent --show-error -o $VX_ROOT/bin/vxvm https://raw.githubusercontent.com/vexor/vx-packages/master/vxvm
45
45
  chmod +x $VX_ROOT/bin/vxvm
46
46
  export CASHER_DIR=$HOME/.casher && ( mkdir -p $CASHER_DIR/bin && /usr/bin/curl https://raw2.github.com/dima-exe/casher/master/bin/casher --tcp-nodelay --retry 3 --fail --silent --show-error -o $HOME/.casher/bin/casher && chmod +x $HOME/.casher/bin/casher ) || true
47
- test -f $HOME/.casher/bin/casher && casher-ruby $HOME/.casher/bin/casher fetch http://example.com/test/pull-request/rvm-1.9.3-gemfile.tgz http://example.com/master/rvm-1.9.3-gemfile.tgz || true
47
+ test -f $HOME/.casher/bin/casher && casher-ruby $HOME/.casher/bin/casher fetch http://example.com/test/pull-request/rvm-2.0.0-gemfile.tgz http://example.com/master/rvm-2.0.0-gemfile.tgz || true
48
48
  test -f $HOME/.casher/bin/casher && casher-ruby $HOME/.casher/bin/casher add ~/.rubygems || true
49
49
  unset CASHER_DIR
50
50
 
51
51
  # before install
52
- echo \$\ sudo\ env\ PATH\=\$PATH\ vxvm\ install\ ruby\ 1.9.3
53
- VX_VM_SOURCE="$(sudo env PATH=$PATH vxvm install ruby 1.9.3)"
52
+ echo \$\ sudo\ env\ PATH\=\$PATH\ vxvm\ install\ ruby\ 2.0.0
53
+ VX_VM_SOURCE="$(sudo env PATH=$PATH vxvm install ruby 2.0.0)"
54
54
  source "$VX_VM_SOURCE"
55
+ echo \$\ export\ RAILS_ENV\=test
56
+ export RAILS_ENV=test
57
+ echo \$\ export\ RACK_ENV\=test
58
+ export RACK_ENV=test
55
59
  echo \$\ export\ BUNDLE_GEMFILE\=\$\{PWD\}/Gemfile
56
60
  export BUNDLE_GEMFILE=${PWD}/Gemfile
57
61
  echo \$\ export\ GEM_HOME\=\~/.rubygems
@@ -66,9 +70,7 @@ echo \$\ bundle\ --version
66
70
  bundle --version
67
71
 
68
72
  # install
69
- echo \$\ bundle\ install\
70
- bundle install
71
- echo \$\ bundle\ clean\ --force
72
- bundle clean --force
73
+ echo \$\ bundle\ install\ --clean\ --retry\=3\ --jobs\=4
74
+ bundle install --clean --retry=3 --jobs=4
73
75
 
74
76
  # before script
@@ -13,4 +13,4 @@ test -d ${VX_ROOT}/code/vexor/vx-test-repo || exit 1
13
13
  cd ${VX_ROOT}/code/vexor/vx-test-repo
14
14
 
15
15
  # after script
16
- test -f $HOME/.casher/bin/casher && casher-ruby $HOME/.casher/bin/casher push http://example.com/test/pull-request/rvm-1.9.3-gemfile.tgz
16
+ test -f $HOME/.casher/bin/casher && casher-ruby $HOME/.casher/bin/casher push http://example.com/test/pull-request/rvm-2.0.0-gemfile.tgz
@@ -40,14 +40,18 @@ echo "download latest version of vxvm"
40
40
  curl --tcp-nodelay --retry 3 --fail --silent --show-error -o $VX_ROOT/bin/vxvm https://raw.githubusercontent.com/vexor/vx-packages/master/vxvm
41
41
  chmod +x $VX_ROOT/bin/vxvm
42
42
  export CASHER_DIR=$HOME/.casher && ( mkdir -p $CASHER_DIR/bin && /usr/bin/curl https://raw2.github.com/dima-exe/casher/master/bin/casher --tcp-nodelay --retry 3 --fail --silent --show-error -o $HOME/.casher/bin/casher && chmod +x $HOME/.casher/bin/casher ) || true
43
- test -f $HOME/.casher/bin/casher && casher-ruby $HOME/.casher/bin/casher fetch http://example.com/test/pull-request/rvm-1.9.3-gemfile.tgz http://example.com/master/rvm-1.9.3-gemfile.tgz || true
43
+ test -f $HOME/.casher/bin/casher && casher-ruby $HOME/.casher/bin/casher fetch http://example.com/test/pull-request/rvm-2.0.0-gemfile.tgz http://example.com/master/rvm-2.0.0-gemfile.tgz || true
44
44
  test -f $HOME/.casher/bin/casher && casher-ruby $HOME/.casher/bin/casher add ~/.rubygems || true
45
45
  unset CASHER_DIR
46
46
 
47
47
  # before install
48
- echo \$\ sudo\ env\ PATH\=\$PATH\ vxvm\ install\ ruby\ 1.9.3
49
- VX_VM_SOURCE="$(sudo env PATH=$PATH vxvm install ruby 1.9.3)"
48
+ echo \$\ sudo\ env\ PATH\=\$PATH\ vxvm\ install\ ruby\ 2.0.0
49
+ VX_VM_SOURCE="$(sudo env PATH=$PATH vxvm install ruby 2.0.0)"
50
50
  source "$VX_VM_SOURCE"
51
+ echo \$\ export\ RAILS_ENV\=test
52
+ export RAILS_ENV=test
53
+ echo \$\ export\ RACK_ENV\=test
54
+ export RACK_ENV=test
51
55
  echo \$\ export\ BUNDLE_GEMFILE\=\$\{PWD\}/Gemfile
52
56
  export BUNDLE_GEMFILE=${PWD}/Gemfile
53
57
  echo \$\ export\ GEM_HOME\=\~/.rubygems
@@ -62,9 +66,7 @@ echo \$\ bundle\ --version
62
66
  bundle --version
63
67
 
64
68
  # install
65
- echo \$\ bundle\ install\
66
- bundle install
67
- echo \$\ bundle\ clean\ --force
68
- bundle clean --force
69
+ echo \$\ bundle\ install\ --clean\ --retry\=3\ --jobs\=4
70
+ bundle install --clean --retry=3 --jobs=4
69
71
 
70
72
  # before script
@@ -48,6 +48,10 @@ unset CASHER_DIR
48
48
  echo \$\ sudo\ env\ PATH\=\$PATH\ vxvm\ install\ ruby\ 1.9.3
49
49
  VX_VM_SOURCE="$(sudo env PATH=$PATH vxvm install ruby 1.9.3)"
50
50
  source "$VX_VM_SOURCE"
51
+ echo \$\ export\ RAILS_ENV\=test
52
+ export RAILS_ENV=test
53
+ echo \$\ export\ RACK_ENV\=test
54
+ export RACK_ENV=test
51
55
  echo \$\ export\ BUNDLE_GEMFILE\=\$\{PWD\}/Gemfile
52
56
  export BUNDLE_GEMFILE=${PWD}/Gemfile
53
57
  echo \$\ export\ GEM_HOME\=\~/.rubygems
@@ -62,10 +66,8 @@ echo \$\ bundle\ --version
62
66
  bundle --version
63
67
 
64
68
  # install
65
- echo \$\ bundle\ install\
66
- bundle install
67
- echo \$\ bundle\ clean\ --force
68
- bundle clean --force
69
+ echo \$\ bundle\ install\ --clean\ --retry\=3\ --jobs\=4
70
+ bundle install --clean --retry=3 --jobs=4
69
71
 
70
72
  # before script
71
73
  echo \$\ echo\ before\ script
@@ -48,6 +48,10 @@ unset CASHER_DIR
48
48
  echo \$\ sudo\ env\ PATH\=\$PATH\ vxvm\ install\ ruby\ 2.0.0
49
49
  VX_VM_SOURCE="$(sudo env PATH=$PATH vxvm install ruby 2.0.0)"
50
50
  source "$VX_VM_SOURCE"
51
+ echo \$\ export\ RAILS_ENV\=test
52
+ export RAILS_ENV=test
53
+ echo \$\ export\ RACK_ENV\=test
54
+ export RACK_ENV=test
51
55
  echo \$\ export\ BUNDLE_GEMFILE\=\$\{PWD\}/Gemfile
52
56
  export BUNDLE_GEMFILE=${PWD}/Gemfile
53
57
  echo \$\ export\ GEM_HOME\=\~/.rubygems
@@ -62,10 +66,8 @@ echo \$\ bundle\ --version
62
66
  bundle --version
63
67
 
64
68
  # install
65
- echo \$\ bundle\ install\
66
- bundle install
67
- echo \$\ bundle\ clean\ --force
68
- bundle clean --force
69
+ echo \$\ bundle\ install\ --clean\ --retry\=3\ --jobs\=4
70
+ bundle install --clean --retry=3 --jobs=4
69
71
 
70
72
  # before script
71
73
  echo \$\ echo\ before\ script
@@ -49,6 +49,10 @@ unset CASHER_DIR
49
49
  echo \$\ sudo\ env\ PATH\=\$PATH\ vxvm\ install\ ruby\ 1.9.3
50
50
  VX_VM_SOURCE="$(sudo env PATH=$PATH vxvm install ruby 1.9.3)"
51
51
  source "$VX_VM_SOURCE"
52
+ echo \$\ export\ RAILS_ENV\=test
53
+ export RAILS_ENV=test
54
+ echo \$\ export\ RACK_ENV\=test
55
+ export RACK_ENV=test
52
56
  echo \$\ export\ BUNDLE_GEMFILE\=\$\{PWD\}/Gemfile
53
57
  export BUNDLE_GEMFILE=${PWD}/Gemfile
54
58
  echo \$\ export\ GEM_HOME\=\~/.rubygems
@@ -63,9 +67,7 @@ echo \$\ bundle\ --version
63
67
  bundle --version
64
68
 
65
69
  # install
66
- echo \$\ bundle\ install\
67
- bundle install
68
- echo \$\ bundle\ clean\ --force
69
- bundle clean --force
70
+ echo \$\ bundle\ install\ --clean\ --retry\=3\ --jobs\=4
71
+ bundle install --clean --retry=3 --jobs=4
70
72
 
71
73
  # before script
@@ -28,7 +28,7 @@ describe "(integration) ruby" do
28
28
  end
29
29
 
30
30
  def build(file, options = {})
31
- config = Vx::Builder::BuildConfiguration.from_yaml(file)
31
+ config = file ? Vx::Builder::BuildConfiguration.from_yaml(file) : Vx::Builder::BuildConfiguration.new(nil)
32
32
  matrix = Vx::Builder.matrix config
33
33
  options[:task] ||= create(:task)
34
34
  rs = OpenStruct.new matrix: matrix, scripts: []
@@ -135,4 +135,60 @@ describe "(integration) ruby" do
135
135
  end
136
136
  end
137
137
 
138
+ it "should succesfuly run lang/ruby with auto build", real: true do
139
+ task = create(
140
+ :task,
141
+ sha: "HEAD",
142
+ branch: "lang/ruby"
143
+ )
144
+
145
+ b = build(nil, task: task)
146
+ Dir.chdir(path) do
147
+ File.open("script.sh", "w") do |io|
148
+ io.write "set -e\n"
149
+ io.write b.scripts[0].to_before_script
150
+ io.write b.scripts[0].to_script
151
+ end
152
+ system("env", "-", "USER=$USER", "HOME=#{path}", "bash", "script.sh" )
153
+ expect($?.to_i).to eq 0
154
+ end
155
+ end
156
+
157
+ it "should succesfuly run lang/ruby-rails-pg with auto build", real: true do
158
+ task = create(
159
+ :task,
160
+ sha: "HEAD",
161
+ branch: "lang/ruby-rails-pg"
162
+ )
163
+
164
+ b = build(nil, task: task)
165
+ Dir.chdir(path) do
166
+ File.open("script.sh", "w") do |io|
167
+ io.write "set -e\n"
168
+ io.write b.scripts[0].to_before_script
169
+ io.write b.scripts[0].to_script
170
+ end
171
+ system("env", "-", "USER=$USER", "HOME=#{path}", "bash", "script.sh" )
172
+ expect($?.to_i).to eq 0
173
+ end
174
+ end
175
+
176
+ it "should succesfuly run lang/ruby-rails-mysql with auto build", real: true do
177
+ task = create(
178
+ :task,
179
+ sha: "HEAD",
180
+ branch: "lang/ruby-rails-mysql"
181
+ )
182
+
183
+ b = build(nil, task: task)
184
+ Dir.chdir(path) do
185
+ File.open("script.sh", "w") do |io|
186
+ io.write "set -e\n"
187
+ io.write b.scripts[0].to_before_script
188
+ io.write b.scripts[0].to_script
189
+ end
190
+ system("env", "-", "USER=$USER", "HOME=#{path}", "bash", "script.sh" )
191
+ expect($?.to_i).to eq 0
192
+ end
193
+ end
138
194
  end
@@ -89,21 +89,29 @@ describe Vx::Builder::BuildConfiguration do
89
89
 
90
90
  context "any?" do
91
91
  subject { config.any? }
92
- %w{ rvm scala jdk language script }.each do |required_key|
93
- context "when key #{required_key} exists" do
94
- let(:content) { {
95
- required_key => "value"
96
- } }
97
- it { should be }
92
+
93
+ it "should be false when required keys" do
94
+ %w{ rvm scala jdk language script }.each do |required_key|
95
+ expect(described_class.new(required_key => "value")).to be_any
98
96
  end
99
97
  end
100
98
 
101
- context "when required keys does not exists" do
102
- let(:content) { {
103
- "before_script" => "value",
104
- "deploy" => "value"
105
- } }
106
- it { should_not be }
99
+ it "should be false when no any required keys" do
100
+ expect(described_class.new("before_script" => "value", "deploy" => "value")).to_not be_any
101
+ end
102
+ end
103
+
104
+ context "empty?" do
105
+ it "should be true if nil" do
106
+ expect(described_class.new nil).to be_empty
107
+ end
108
+
109
+ it "should be true if empty hash" do
110
+ expect(described_class.new({})).to be_empty
111
+ end
112
+
113
+ it "should be false if not empty hash" do
114
+ expect(described_class.new({"script" => "value"})).to_not be_empty
107
115
  end
108
116
  end
109
117
  end
@@ -249,6 +249,13 @@ describe Vx::Builder::MatrixBuilder do
249
249
  end
250
250
  end
251
251
 
252
+ context "when build_configuration is empty" do
253
+ let(:config) { Vx::Builder::BuildConfiguration.new nil }
254
+
255
+ it "should return build configuration" do
256
+ expect(subject).to eq [config]
257
+ end
258
+ end
252
259
  end
253
260
 
254
261
  context "attributes_for_new_confgurations_with_merged_env" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vx-builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.15
4
+ version: 0.5.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Galinsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-09 00:00:00.000000000 Z
11
+ date: 2014-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: vx-common
@@ -114,6 +114,7 @@ email:
114
114
  executables:
115
115
  - vx_parallel_rspec
116
116
  - vx_parallel_spinach
117
+ - vx_ruby_auto_build
117
118
  extensions: []
118
119
  extra_rdoc_files: []
119
120
  files:
@@ -126,6 +127,7 @@ files:
126
127
  - Rakefile
127
128
  - bin/vx_parallel_rspec
128
129
  - bin/vx_parallel_spinach
130
+ - bin/vx_ruby_auto_build
129
131
  - lib/vx/builder.rb
130
132
  - lib/vx/builder/build_configuration.rb
131
133
  - lib/vx/builder/build_configuration/cache.rb