autobuild 1.10.0.rc13 → 1.10.0.rc14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/autobuild/config.rb +12 -7
- data/lib/autobuild/import/git-lfs.rb +10 -0
- data/lib/autobuild/importer.rb +65 -2
- data/lib/autobuild/package.rb +16 -6
- data/lib/autobuild/packages/orogen.rb +45 -98
- data/lib/autobuild/packages/ruby.rb +5 -2
- data/lib/autobuild/subcommand.rb +10 -2
- data/lib/autobuild/tools.rb +6 -8
- data/lib/autobuild/utility.rb +17 -1
- data/lib/autobuild/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e04850122480c75777d04748145ca9415f084cc
|
4
|
+
data.tar.gz: 8d0247d6239a8d2847c36dee651484b5de6f4698
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3824e574d80cf76b09eff053bd5aa870d10975dfdcc6c9f4e5c5da5869bd4a83d845c828357d3202cf7cf5da141c7ea6182f62cba61931f6bb19c845ebcdf1c4
|
7
|
+
data.tar.gz: 4b22b978f8205df7ad38e08e9f7923abd02ef9bcea670a29b71518a36c9a0b301fdbfbff36990653a9f4826d4a25a7a8311775c3ae77608ddf0206b53ef4cf5a
|
data/lib/autobuild/config.rb
CHANGED
@@ -49,8 +49,8 @@ def each_utility
|
|
49
49
|
utilities.each { |name, (utl, options)| yield(name, utl, options) }
|
50
50
|
end
|
51
51
|
|
52
|
-
def register_utility_class(name, klass,
|
53
|
-
utilities[name] = [klass, options]
|
52
|
+
def register_utility_class(name, klass, disabled_by_default: false, **options)
|
53
|
+
utilities[name] = [klass, Hash[disabled_by_default: disabled_by_default], options]
|
54
54
|
singleton_class.class_eval do
|
55
55
|
attr_accessor "only_#{name}"
|
56
56
|
attr_accessor "do_#{name}"
|
@@ -64,11 +64,11 @@ def register_utility_class(name, klass, options = Hash.new)
|
|
64
64
|
end
|
65
65
|
|
66
66
|
def create_utility(utility_name, package)
|
67
|
-
klass, options = utilities[utility_name]
|
67
|
+
klass, creation_options, options = utilities[utility_name]
|
68
68
|
if klass
|
69
|
-
utility = klass.new(utility_name, package)
|
69
|
+
utility = klass.new(utility_name, package, **options)
|
70
70
|
package.utilities[utility_name] = utility
|
71
|
-
utility.enabled = !
|
71
|
+
utility.enabled = !creation_options[:disabled_by_default]
|
72
72
|
utility
|
73
73
|
else raise ArgumentError, "there is no utility called #{utility_name}, available utilities are #{utilities.keys.sort.join(", ")}"
|
74
74
|
end
|
@@ -83,12 +83,17 @@ def full_build?
|
|
83
83
|
end
|
84
84
|
@utilities = Hash.new
|
85
85
|
register_utility_class 'doc', Utility, disabled_by_default: false
|
86
|
-
register_utility_class 'test', Utility, disabled_by_default: true
|
86
|
+
register_utility_class 'test', Utility, disabled_by_default: true, install_on_error: true
|
87
87
|
|
88
88
|
@colorizer = Pastel.new
|
89
89
|
class << self
|
90
90
|
def color=(flag)
|
91
|
-
@colorizer =
|
91
|
+
@colorizer =
|
92
|
+
if flag.nil?
|
93
|
+
Pastel.new
|
94
|
+
else
|
95
|
+
Pastel.new(enabled: flag)
|
96
|
+
end
|
92
97
|
end
|
93
98
|
|
94
99
|
def color?
|
data/lib/autobuild/importer.rb
CHANGED
@@ -150,6 +150,7 @@ def initialize(options)
|
|
150
150
|
@repository_id = options[:repository_id] || "#{self.class.name}:#{object_id}"
|
151
151
|
@interactive = options[:interactive]
|
152
152
|
@source_id = options[:source_id] || @repository_id
|
153
|
+
@post_hooks = Array.new
|
153
154
|
end
|
154
155
|
|
155
156
|
# Returns a string that identifies the remote repository uniquely
|
@@ -236,6 +237,57 @@ def update_retry_count(original_error, retry_count)
|
|
236
237
|
end
|
237
238
|
end
|
238
239
|
|
240
|
+
# A list of hooks that are called after a successful checkout or update
|
241
|
+
#
|
242
|
+
# They are added either at the instance level with {#add_post_hook} or
|
243
|
+
# globally for all importers of a given type with {Importer.add_post_hook}
|
244
|
+
attr_reader :post_hooks
|
245
|
+
|
246
|
+
# Define a post-import hook for all instances of this class
|
247
|
+
#
|
248
|
+
# @yieldparam [Importer] importer the importer that finished
|
249
|
+
# @yieldparam [Package] package the package we're acting on
|
250
|
+
# @see Importer#add_post_hook
|
251
|
+
def self.add_post_hook(&hook)
|
252
|
+
@post_hooks ||= Array.new
|
253
|
+
@post_hooks << hook
|
254
|
+
end
|
255
|
+
|
256
|
+
# Enumerate the post-import hooks defined for all instances of this class
|
257
|
+
def self.each_post_hook(&hook)
|
258
|
+
(@post_hooks || Array.new).each(&hook)
|
259
|
+
end
|
260
|
+
|
261
|
+
# @api private
|
262
|
+
#
|
263
|
+
# Call the post-import hooks added with {#add_post_hook}
|
264
|
+
def execute_post_hooks(package)
|
265
|
+
self.class.each_post_hook do |hook|
|
266
|
+
hook.call(self, package)
|
267
|
+
end
|
268
|
+
each_post_hook.each do |block|
|
269
|
+
block.call(self, package)
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
273
|
+
# Add a block that should be called when the import has successfully
|
274
|
+
# finished
|
275
|
+
#
|
276
|
+
# @yieldparam [Importer] importer the importer that finished
|
277
|
+
# @yieldparam [Package] package the package we're acting on
|
278
|
+
# @see Importer.add_post_hook
|
279
|
+
def add_post_hook(&hook)
|
280
|
+
post_hooks << hook
|
281
|
+
end
|
282
|
+
|
283
|
+
# Enumerate the post-import hooks for this importer
|
284
|
+
def each_post_hook(&hook)
|
285
|
+
return enum_for(__method__) if !block_given?
|
286
|
+
|
287
|
+
self.class.each_post_hook(&hook)
|
288
|
+
post_hooks.each(&hook)
|
289
|
+
end
|
290
|
+
|
239
291
|
def perform_update(package,only_local=false)
|
240
292
|
cur_patches = currently_applied_patches(package)
|
241
293
|
needed_patches = self.patches
|
@@ -243,13 +295,19 @@ def perform_update(package,only_local=false)
|
|
243
295
|
patch(package, [])
|
244
296
|
end
|
245
297
|
|
298
|
+
last_error = nil
|
246
299
|
retry_count = 0
|
247
300
|
package.progress_start "updating %s"
|
248
301
|
begin
|
249
302
|
update(package,only_local)
|
303
|
+
execute_post_hooks(package)
|
250
304
|
rescue Interrupt
|
251
|
-
|
305
|
+
if last_error
|
306
|
+
raise last_error
|
307
|
+
else raise
|
308
|
+
end
|
252
309
|
rescue ::Exception => original_error
|
310
|
+
last_error = original_error
|
253
311
|
# If the package is patched, it might be that the update
|
254
312
|
# failed because we needed to unpatch first. Try it out
|
255
313
|
#
|
@@ -288,13 +346,18 @@ def perform_update(package,only_local=false)
|
|
288
346
|
end
|
289
347
|
|
290
348
|
def perform_checkout(package, options = Hash.new)
|
349
|
+
last_error = nil
|
291
350
|
package.progress_start "checking out %s", :done_message => 'checked out %s' do
|
292
351
|
retry_count = 0
|
293
352
|
begin
|
294
353
|
checkout(package, options)
|
354
|
+
execute_post_hooks(package)
|
295
355
|
rescue Interrupt
|
296
|
-
raise
|
356
|
+
if last_error then raise last_error
|
357
|
+
else raise
|
358
|
+
end
|
297
359
|
rescue ::Exception => original_error
|
360
|
+
last_error = original_error
|
298
361
|
retry_count = update_retry_count(original_error, retry_count)
|
299
362
|
if !retry_count
|
300
363
|
raise
|
data/lib/autobuild/package.rb
CHANGED
@@ -289,18 +289,28 @@ def resolve_dependency_env(env, set, ops)
|
|
289
289
|
ops
|
290
290
|
end
|
291
291
|
|
292
|
+
# This package's environment
|
293
|
+
def full_env(root = Autobuild.env)
|
294
|
+
set = Hash.new
|
295
|
+
env = root.dup
|
296
|
+
ops = Array.new
|
297
|
+
ops = resolve_dependency_env(env, set, ops)
|
298
|
+
apply_env(env, set, ops)
|
299
|
+
env
|
300
|
+
end
|
301
|
+
|
302
|
+
# Find a file in a path-like environment variable
|
303
|
+
def find_in_path(file, envvar = 'PATH')
|
304
|
+
full_env.find_in_path(file, envvar)
|
305
|
+
end
|
306
|
+
|
292
307
|
# Resolves this package's environment into Hash form
|
293
308
|
#
|
294
309
|
# @param [Environment] root the base environment object to update
|
295
310
|
# @return [Hash<String,String>] the full environment
|
296
311
|
# @see Autobuild::Environment#resolved_env
|
297
312
|
def resolved_env(root = Autobuild.env)
|
298
|
-
|
299
|
-
env = root.dup
|
300
|
-
ops = Array.new
|
301
|
-
ops = resolve_dependency_env(env, set, ops)
|
302
|
-
apply_env(env, set, ops)
|
303
|
-
env.resolved_env
|
313
|
+
full_env.resolved_env
|
304
314
|
end
|
305
315
|
|
306
316
|
# Called before a forced build. It should remove all the timestamp and
|
@@ -75,43 +75,8 @@ class << self
|
|
75
75
|
|
76
76
|
attr_reader :orogen_options
|
77
77
|
|
78
|
-
#
|
79
|
-
|
80
|
-
if @orogen_bin
|
81
|
-
@orogen_bin
|
82
|
-
else
|
83
|
-
program_name = Autobuild.tool('orogen')
|
84
|
-
if orogen_path = ENV['PATH'].split(':').find { |p| File.file?(File.join(p, program_name)) }
|
85
|
-
@orogen_bin = File.join(orogen_path, program_name)
|
86
|
-
elsif !full_path
|
87
|
-
program_name
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
# Path to the root of the orogen package
|
93
|
-
def self.orogen_root
|
94
|
-
if @orogen_root
|
95
|
-
@orogen_root
|
96
|
-
elsif orogen_bin = self.orogen_bin(true)
|
97
|
-
@orogen_root = File.expand_path('../lib', File.dirname(orogen_bin))
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
# The version of orogen, given as a string
|
102
|
-
#
|
103
|
-
# It is used to enable/disable some configuration features based on the
|
104
|
-
# orogen version string
|
105
|
-
def self.orogen_version
|
106
|
-
if !@orogen_version && root = orogen_root
|
107
|
-
version_file = File.join(root, 'orogen', 'version.rb')
|
108
|
-
version_line = File.readlines(version_file).grep(/VERSION\s*=\s*"/).first
|
109
|
-
if version_line =~ /.*=\s+"(.+)"$/
|
110
|
-
@orogen_version = $1
|
111
|
-
end
|
112
|
-
end
|
113
|
-
@orogen_version
|
114
|
-
end
|
78
|
+
# The path to the orogen tool as resolved from {Package#full_env}
|
79
|
+
attr_reader :orogen_tool_path
|
115
80
|
|
116
81
|
# Overrides the global Orocos.orocos_target for this particular package
|
117
82
|
attr_writer :orocos_target
|
@@ -168,6 +133,8 @@ def orogen_file
|
|
168
133
|
def initialize(*args, &config)
|
169
134
|
super
|
170
135
|
|
136
|
+
@orogen_tool_path = nil
|
137
|
+
@orogen_version = nil
|
171
138
|
@orocos_target = nil
|
172
139
|
@orogen_options = []
|
173
140
|
end
|
@@ -183,69 +150,44 @@ def update_environment
|
|
183
150
|
env_add_path 'TYPELIB_RUBY_PLUGIN_PATH', typelib_plugin
|
184
151
|
end
|
185
152
|
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
153
|
+
# The version of orogen, given as a string
|
154
|
+
#
|
155
|
+
# It is used to enable/disable some configuration features based on the
|
156
|
+
# orogen version string
|
157
|
+
def orogen_version
|
158
|
+
if !@orogen_version && (root = orogen_root)
|
159
|
+
version_file = File.join(root, 'lib', 'orogen', 'version.rb')
|
160
|
+
version_line = File.readlines(version_file).grep(/VERSION\s*=\s*"/).first
|
161
|
+
if version_line =~ /.*=\s+"(.+)"$/
|
162
|
+
@orogen_version = $1
|
192
163
|
end
|
193
|
-
depends_on rtt.name
|
194
|
-
end
|
195
|
-
|
196
|
-
# Find out where orogen is, and make sure the configurestamp depend
|
197
|
-
# on it. Ignore if orogen is too old to have a --base-dir option
|
198
|
-
if orogen_root = self.class.orogen_root
|
199
|
-
orogen_tree = source_tree(orogen_root)
|
200
164
|
end
|
165
|
+
@orogen_version
|
166
|
+
end
|
201
167
|
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
168
|
+
def orogen_root
|
169
|
+
if orogen_tool_path
|
170
|
+
root = File.expand_path(File.join('..', '..'), orogen_tool_path)
|
171
|
+
if File.directory?(File.join(root, 'lib', 'orogen'))
|
172
|
+
root
|
173
|
+
end
|
208
174
|
end
|
175
|
+
end
|
209
176
|
|
177
|
+
def prepare
|
210
178
|
file configurestamp => genstamp
|
179
|
+
stamps = dependencies.map { |pkg| Autobuild::Package[pkg].installstamp }
|
211
180
|
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
file genstamp => source_tree(srcdir) do
|
216
|
-
needs_regen = true
|
217
|
-
if File.file?(genstamp)
|
218
|
-
genstamp_mtime = File.stat(genstamp).mtime
|
219
|
-
dependency_updated = dependencies.any? do |dep|
|
220
|
-
!File.file?(Package[dep].installstamp) ||
|
221
|
-
File.stat(Package[dep].installstamp).mtime > genstamp_mtime
|
222
|
-
end
|
223
|
-
needs_regen = dependency_updated || !generation_uptodate?
|
224
|
-
end
|
225
|
-
|
226
|
-
if needs_regen
|
227
|
-
isolate_errors { regen }
|
228
|
-
end
|
181
|
+
file genstamp => [*stamps, source_tree(srcdir)] do
|
182
|
+
isolate_errors { regen }
|
229
183
|
end
|
230
184
|
|
231
185
|
with_doc
|
232
186
|
|
233
187
|
super
|
234
|
-
|
235
|
-
dependencies.each do |p|
|
236
|
-
file genstamp => Package[p].installstamp
|
237
|
-
end
|
238
188
|
end
|
239
|
-
def genstamp; File.join(srcdir, '.orogen', 'orogen-stamp') end
|
240
189
|
|
241
|
-
def
|
242
|
-
if Autobuild.programs['ruby']
|
243
|
-
Autobuild.tool('ruby')
|
244
|
-
else
|
245
|
-
ruby_bin = RbConfig::CONFIG['RUBY_INSTALL_NAME']
|
246
|
-
Autobuild.programs['ruby'] = ruby_bin
|
247
|
-
end
|
248
|
-
end
|
190
|
+
def genstamp; File.join(srcdir, '.orogen', 'orogen-stamp') end
|
249
191
|
|
250
192
|
def add_cmd_to_cmdline(cmd, cmdline)
|
251
193
|
if cmd =~ /^([\w-]+)/
|
@@ -276,14 +218,22 @@ def regen
|
|
276
218
|
end
|
277
219
|
end
|
278
220
|
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
221
|
+
@orogen_tool_path = find_in_path 'orogen'
|
222
|
+
if !orogen_tool_path
|
223
|
+
raise ArgumentError, "cannot find 'orogen' in #{resolved_env['PATH']}"
|
224
|
+
end
|
225
|
+
|
226
|
+
version = orogen_version
|
227
|
+
if !version
|
228
|
+
raise ArgumentError, "cannot determine the orogen version"
|
229
|
+
end
|
230
|
+
|
231
|
+
if (version >= "1.0")
|
232
|
+
cmdline << "--parallel-build=#{parallel_build_level}"
|
233
|
+
end
|
234
|
+
if (version >= "1.1")
|
235
|
+
cmdline << "--type-export-policy=#{Orogen.default_type_export_policy}"
|
236
|
+
cmdline << "--transports=#{Orogen.transports.sort.uniq.join(",")}"
|
287
237
|
end
|
288
238
|
|
289
239
|
# Now, add raw options
|
@@ -317,13 +267,10 @@ def regen
|
|
317
267
|
# target says
|
318
268
|
needs_regen ||= !generation_uptodate?
|
319
269
|
|
320
|
-
# Finally, verify that orogen itself did not change
|
321
|
-
needs_regen ||= (Rake::Task[Orogen.orogen_root].timestamp > Rake::Task[genstamp].timestamp)
|
322
|
-
|
323
270
|
if needs_regen
|
324
271
|
progress_start "generating oroGen %s", :done_message => 'generated oroGen %s' do
|
325
272
|
in_dir(srcdir) do
|
326
|
-
run 'orogen',
|
273
|
+
run 'orogen', Autobuild.tool('ruby'), '-S', orogen_tool_path, *cmdline
|
327
274
|
File.open(genstamp, 'w') do |io|
|
328
275
|
io.print cmdline.join("\n")
|
329
276
|
end
|
@@ -9,6 +9,8 @@ class Ruby < ImporterPackage
|
|
9
9
|
# The Rake task that is used to run tests. Defaults to "test".
|
10
10
|
# Set to nil to disable tests for this package
|
11
11
|
attr_accessor :rake_test_task
|
12
|
+
# Options that should be passed to the rake task
|
13
|
+
attr_accessor :rake_test_options
|
12
14
|
# The Rake task that is used to run cleanup. Defaults to "clean".
|
13
15
|
# Set to nil to disable tests for this package
|
14
16
|
attr_accessor :rake_clean_task
|
@@ -18,6 +20,7 @@ def initialize(*args)
|
|
18
20
|
self.rake_doc_task = "redocs"
|
19
21
|
self.rake_clean_task = "clean"
|
20
22
|
self.rake_test_task = "test"
|
23
|
+
self.rake_test_options = []
|
21
24
|
|
22
25
|
super
|
23
26
|
exclude << /\.so$/
|
@@ -41,8 +44,8 @@ def with_tests
|
|
41
44
|
test_utility.task do
|
42
45
|
progress_start "running tests for %s", :done_message => 'tests passed for %s' do
|
43
46
|
run 'test',
|
44
|
-
Autobuild.tool_in_path('ruby'), '-S', Autobuild.tool('rake'), rake_test_task,
|
45
|
-
:
|
47
|
+
Autobuild.tool_in_path('ruby'), '-S', Autobuild.tool('rake'), rake_test_task, *rake_test_options,
|
48
|
+
working_directory: srcdir
|
46
49
|
end
|
47
50
|
end
|
48
51
|
end
|
data/lib/autobuild/subcommand.rb
CHANGED
@@ -402,8 +402,16 @@ def self.run(target, phase, *command)
|
|
402
402
|
end
|
403
403
|
|
404
404
|
if !status.exitstatus || status.exitstatus > 0
|
405
|
-
|
406
|
-
"
|
405
|
+
if status.termsig == 2 # SIGINT == 2
|
406
|
+
raise Interrupt, "subcommand #{command.join(' ')} interrupted"
|
407
|
+
end
|
408
|
+
if status.termsig
|
409
|
+
raise Failed.new(status.exitstatus, nil),
|
410
|
+
"'#{command.join(' ')}' terminated by signal #{status.termsig}"
|
411
|
+
else
|
412
|
+
raise Failed.new(status.exitstatus, nil),
|
413
|
+
"'#{command.join(' ')}' returned status #{status.exitstatus}"
|
414
|
+
end
|
407
415
|
end
|
408
416
|
|
409
417
|
duration = Time.now - start_time
|
data/lib/autobuild/tools.rb
CHANGED
@@ -21,19 +21,17 @@ def tool(name)
|
|
21
21
|
programs[name.to_sym] || programs[name.to_s] || name.to_s
|
22
22
|
end
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
if path
|
28
|
-
return File.join(path, file)
|
29
|
-
end
|
24
|
+
# Find a file in a given path-like variable
|
25
|
+
def find_in_path(file, envvar = 'PATH')
|
26
|
+
env.find_in_path(file, envvar)
|
30
27
|
end
|
31
28
|
|
32
29
|
# Resolves the absolute path to a given tool
|
33
30
|
def tool_in_path(name)
|
34
31
|
path, path_name, path_env = programs_in_path[name]
|
35
32
|
current = tool(name)
|
36
|
-
|
33
|
+
env_PATH = env.resolved_env['PATH']
|
34
|
+
if (path_env != env_PATH) || (path_name != current)
|
37
35
|
# Delete the current entry given that it is invalid
|
38
36
|
programs_in_path.delete(name)
|
39
37
|
if current[0, 1] == "/"
|
@@ -53,7 +51,7 @@ def tool_in_path(name)
|
|
53
51
|
elsif !File.executable?(path)
|
54
52
|
raise ArgumentError, "tool #{name} is set to #{current}, but this resolves to #{path} which is not executable"
|
55
53
|
end
|
56
|
-
programs_in_path[name] = [path, current,
|
54
|
+
programs_in_path[name] = [path, current, env_PATH]
|
57
55
|
end
|
58
56
|
|
59
57
|
return path
|
data/lib/autobuild/utility.rb
CHANGED
@@ -11,7 +11,15 @@ class Utility
|
|
11
11
|
# nil, will use the package's source directory
|
12
12
|
attr_accessor :source_ref_dir
|
13
13
|
|
14
|
-
|
14
|
+
# Whether #install should be called even if the task failed
|
15
|
+
#
|
16
|
+
# The default is false. Set it to true for instance if the utility
|
17
|
+
# results are a report of the success/errors (e.g. test run results)
|
18
|
+
def install_on_error?
|
19
|
+
@install_on_error
|
20
|
+
end
|
21
|
+
|
22
|
+
def initialize(name, package, install_on_error: false)
|
15
23
|
@name = name
|
16
24
|
@task = nil
|
17
25
|
@package = package
|
@@ -20,6 +28,7 @@ def initialize(name, package)
|
|
20
28
|
@source_ref_dir = nil
|
21
29
|
@source_dir = nil
|
22
30
|
@target_dir = nil
|
31
|
+
@install_on_error = !!install_on_error
|
23
32
|
end
|
24
33
|
|
25
34
|
# Directory in which the utility will generate some files The
|
@@ -54,6 +63,8 @@ def source_dir
|
|
54
63
|
def target_dir
|
55
64
|
if @target_dir
|
56
65
|
File.expand_path(@target_dir, File.expand_path(Autobuild.send("#{name}_prefix") || name, package.prefix))
|
66
|
+
else
|
67
|
+
File.join(package.logdir, "#{name}-results", package.name)
|
57
68
|
end
|
58
69
|
end
|
59
70
|
|
@@ -95,6 +106,10 @@ def call_task_block
|
|
95
106
|
rescue Interrupt
|
96
107
|
raise
|
97
108
|
rescue ::Exception => e
|
109
|
+
if install_on_error? && !@installed && target_dir
|
110
|
+
install
|
111
|
+
end
|
112
|
+
|
98
113
|
if Autobuild.send("pass_#{name}_errors")
|
99
114
|
raise
|
100
115
|
else
|
@@ -146,6 +161,7 @@ def install
|
|
146
161
|
FileUtils.rm_rf target_dir
|
147
162
|
FileUtils.mkdir_p File.dirname(target_dir)
|
148
163
|
FileUtils.cp_r source_dir, target_dir
|
164
|
+
Autoproj.message " copied #{name} results for #{package.name} to #{target_dir}"
|
149
165
|
|
150
166
|
@installed = true
|
151
167
|
end
|
data/lib/autobuild/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: autobuild
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.10.0.
|
4
|
+
version: 1.10.0.rc14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sylvain Joyeux
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -174,6 +174,7 @@ files:
|
|
174
174
|
- lib/autobuild/import/archive.rb
|
175
175
|
- lib/autobuild/import/cvs.rb
|
176
176
|
- lib/autobuild/import/darcs.rb
|
177
|
+
- lib/autobuild/import/git-lfs.rb
|
177
178
|
- lib/autobuild/import/git.rb
|
178
179
|
- lib/autobuild/import/hg.rb
|
179
180
|
- lib/autobuild/import/svn.rb
|
@@ -227,3 +228,4 @@ signing_key:
|
|
227
228
|
specification_version: 4
|
228
229
|
summary: Library to handle build systems and import mechanisms
|
229
230
|
test_files: []
|
231
|
+
has_rdoc:
|