builderator 1.1.3 → 1.1.4
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 +13 -18
- data/VERSION +1 -1
- data/lib/builderator/config.rb +21 -1
- data/rvm.env +4 -4
- data/spec/config_spec.rb +15 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f7315691d21aa1ee458439e175fad832f333c84
|
4
|
+
data.tar.gz: beaad66836ca71ea55dab73885127771f87debec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 41feb503cf94efa12ef41452efa31b31d823bc1fd818afaf390e5bb8f93da4319c230c7565f70d4d0f2946f91fd7fc218d83416b12f138b439b6490a196d071d
|
7
|
+
data.tar.gz: 9adcbfa499715d19ede3eaaaf17cff16308fd281f7f5e30d6f7b827200054e5bebcab4c60ed32fe02e150b16a7d04d5699e213c5d80de9f9e33a52d4d7afc2b9
|
data/Gemfile.lock
CHANGED
@@ -56,30 +56,31 @@ GEM
|
|
56
56
|
celluloid-io (0.16.2)
|
57
57
|
celluloid (>= 0.16.0)
|
58
58
|
nio4r (>= 1.1.0)
|
59
|
-
chef (12.
|
60
|
-
chef-config (= 12.
|
61
|
-
chef-zero (~> 4.
|
59
|
+
chef (12.7.2)
|
60
|
+
chef-config (= 12.7.2)
|
61
|
+
chef-zero (~> 4.5)
|
62
62
|
diff-lcs (~> 1.2, >= 1.2.4)
|
63
63
|
erubis (~> 2.7)
|
64
64
|
ffi-yajl (~> 2.2)
|
65
65
|
highline (~> 1.6, >= 1.6.9)
|
66
|
-
mixlib-authentication (~> 1.
|
66
|
+
mixlib-authentication (~> 1.4)
|
67
67
|
mixlib-cli (~> 1.4)
|
68
68
|
mixlib-log (~> 1.3)
|
69
69
|
mixlib-shellout (~> 2.0)
|
70
|
-
net-ssh (
|
70
|
+
net-ssh (>= 2.9, < 4.0)
|
71
71
|
net-ssh-multi (~> 1.1)
|
72
72
|
ohai (>= 8.6.0.alpha.1, < 9)
|
73
73
|
plist (~> 3.1.0)
|
74
|
-
|
75
|
-
rspec-core (~> 3.
|
76
|
-
rspec-expectations (~> 3.
|
77
|
-
rspec-mocks (~> 3.
|
74
|
+
proxifier (~> 1.0)
|
75
|
+
rspec-core (~> 3.4)
|
76
|
+
rspec-expectations (~> 3.4)
|
77
|
+
rspec-mocks (~> 3.4)
|
78
78
|
rspec_junit_formatter (~> 0.2.0)
|
79
79
|
serverspec (~> 2.7)
|
80
80
|
specinfra (~> 2.10)
|
81
81
|
syslog-logger (~> 1.6)
|
82
|
-
|
82
|
+
uuidtools (~> 2.1.5)
|
83
|
+
chef-config (12.7.2)
|
83
84
|
mixlib-config (~> 2.0)
|
84
85
|
mixlib-shellout (~> 2.0)
|
85
86
|
chef-zero (4.6.1)
|
@@ -89,7 +90,6 @@ GEM
|
|
89
90
|
rack
|
90
91
|
uuidtools (~> 2.1)
|
91
92
|
cleanroom (1.0.0)
|
92
|
-
coderay (1.1.1)
|
93
93
|
dep-selector-libgecode (1.2.0)
|
94
94
|
dep_selector (1.0.3)
|
95
95
|
dep-selector-libgecode (~> 1.0)
|
@@ -114,7 +114,6 @@ GEM
|
|
114
114
|
json (1.8.3)
|
115
115
|
json_pure (1.8.3)
|
116
116
|
libyajl2 (1.2.0)
|
117
|
-
method_source (0.8.2)
|
118
117
|
minitar (0.5.4)
|
119
118
|
mixlib-authentication (1.4.0)
|
120
119
|
mixlib-log
|
@@ -130,7 +129,7 @@ GEM
|
|
130
129
|
multipart-post (2.0.0)
|
131
130
|
net-scp (1.2.1)
|
132
131
|
net-ssh (>= 2.6.5)
|
133
|
-
net-ssh (
|
132
|
+
net-ssh (3.1.1)
|
134
133
|
net-ssh-gateway (1.2.0)
|
135
134
|
net-ssh (>= 2.6.5)
|
136
135
|
net-ssh-multi (1.2.1)
|
@@ -156,10 +155,7 @@ GEM
|
|
156
155
|
ast (~> 2.2)
|
157
156
|
plist (3.1.0)
|
158
157
|
powerpack (0.1.1)
|
159
|
-
|
160
|
-
coderay (~> 1.1.0)
|
161
|
-
method_source (~> 0.8.1)
|
162
|
-
slop (~> 3.4)
|
158
|
+
proxifier (1.0.3)
|
163
159
|
rack (1.6.4)
|
164
160
|
rainbow (2.1.0)
|
165
161
|
rake (10.5.0)
|
@@ -218,7 +214,6 @@ GEM
|
|
218
214
|
rspec-its
|
219
215
|
specinfra (~> 2.53)
|
220
216
|
sfl (2.2)
|
221
|
-
slop (3.6.0)
|
222
217
|
solve (2.0.3)
|
223
218
|
molinillo (~> 0.4.2)
|
224
219
|
semverse (~> 1.1)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.4
|
data/lib/builderator/config.rb
CHANGED
@@ -47,9 +47,27 @@ module Builderator
|
|
47
47
|
layers.unshift(File.from_json(path)) if ::File.exist?(path)
|
48
48
|
end
|
49
49
|
|
50
|
+
##
|
51
|
+
# The compile method renders a single File instance from all of the configured
|
52
|
+
# input layers. It follows the following algorithm:
|
53
|
+
#
|
54
|
+
# => `DIRTY` is defined as the logical OR of the dirty state of each layer.
|
55
|
+
# Layers are responsible for detecting changes to their own properties
|
56
|
+
# while being compiled.
|
57
|
+
#
|
58
|
+
# => LOOP unitl not DIRTY plus 1 iteration
|
59
|
+
# 1. Call each layer's own compile method.
|
60
|
+
# 2. For each layer, merge it into the COMPILED output.
|
61
|
+
# FAIL if ITERATIONS > LIMIT
|
62
|
+
#
|
63
|
+
# => The additional iteration after DIRTY becomes false is to ensure that
|
64
|
+
# any changes to the compiled output during the final merge are passed
|
65
|
+
# back through each layer's compile.
|
66
|
+
##
|
50
67
|
def compile(max_iterations = 6)
|
51
68
|
compiled.unseal
|
52
69
|
compile_iterations = 0
|
70
|
+
break_break = false
|
53
71
|
|
54
72
|
## Inject GLOBAL_DEFAULTS before starting compile
|
55
73
|
compiled.merge(GLOBAL_DEFAULTS.compile)
|
@@ -71,7 +89,9 @@ module Builderator
|
|
71
89
|
compiled.merge(layer)
|
72
90
|
end
|
73
91
|
|
74
|
-
break
|
92
|
+
break if break_break && !dirty?
|
93
|
+
|
94
|
+
break_break = !dirty?
|
75
95
|
compile_iterations += 1
|
76
96
|
end
|
77
97
|
|
data/rvm.env
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
declare -x GEM_HOME="/home/jenkins/.rvm/gems/ruby-2.1.5@bakery-
|
2
|
-
declare -x GEM_PATH="/home/jenkins/.rvm/gems/ruby-2.1.5@bakery-
|
1
|
+
declare -x GEM_HOME="/home/jenkins/.rvm/gems/ruby-2.1.5@bakery-0"
|
2
|
+
declare -x GEM_PATH="/home/jenkins/.rvm/gems/ruby-2.1.5@bakery-0:/home/jenkins/.rvm/gems/ruby-2.1.5@global"
|
3
3
|
declare -x HOME="/home/jenkins"
|
4
|
-
declare -x HUDSON_COOKIE="
|
4
|
+
declare -x HUDSON_COOKIE="65158711-c2ba-4a30-9b80-ed21ba86750e"
|
5
5
|
declare -x IRBRC="/home/jenkins/.rvm/rubies/ruby-2.1.5/.irbrc"
|
6
6
|
declare -x LANG="en_US.UTF-8"
|
7
7
|
declare -x LC_ALL="en_US.UTF-8"
|
8
8
|
declare -x MY_RUBY_HOME="/home/jenkins/.rvm/rubies/ruby-2.1.5"
|
9
9
|
declare -x NLSPATH="/usr/dt/lib/nls/msg/%L/%N.cat"
|
10
10
|
declare -x OLDPWD
|
11
|
-
declare -x PATH="/home/jenkins/.rvm/gems/ruby-2.1.5@bakery-
|
11
|
+
declare -x PATH="/home/jenkins/.rvm/gems/ruby-2.1.5@bakery-0/bin:/home/jenkins/.rvm/gems/ruby-2.1.5@global/bin:/home/jenkins/.rvm/rubies/ruby-2.1.5/bin:/home/jenkins/.rvm/bin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin"
|
12
12
|
declare -x PWD="/home/jenkins/workspace/gem-public-builderator-master"
|
13
13
|
declare -x RUBY_VERSION="ruby-2.1.5"
|
14
14
|
declare -x SHLVL="1"
|
data/spec/config_spec.rb
CHANGED
@@ -83,5 +83,20 @@ module Builderator
|
|
83
83
|
|
84
84
|
expect { Config.compile }.not_to raise_error
|
85
85
|
end
|
86
|
+
|
87
|
+
it 'compiles a change after an initial compilation' do
|
88
|
+
expect(Builderator::Config.layers).to be_empty
|
89
|
+
|
90
|
+
Builderator::Config.load(::File.expand_path('../resource/Buildfile-home-directory', __FILE__))
|
91
|
+
Builderator::Config.load(::File.expand_path('../resource/Buildfile-with-overrides2', __FILE__))
|
92
|
+
expect(Builderator::Config.all_layers.any?(&:dirty)).to be false
|
93
|
+
expect { Config.compile }.not_to raise_error
|
94
|
+
|
95
|
+
Builderator::Config.defaults.version '1.2.3'
|
96
|
+
Builderator::Config.defaults.build_number = '4'
|
97
|
+
expect { Config.compile }.not_to raise_error
|
98
|
+
|
99
|
+
expect(Builderator::Config.profile('default').tags['version']).to eq '1.2.3-4'
|
100
|
+
end
|
86
101
|
end
|
87
102
|
end
|