vanagon 0.18.1 → 0.19.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/build +3 -1
- data/bin/build_host_info +3 -1
- data/bin/build_requirements +3 -1
- data/bin/inspect +3 -1
- data/bin/render +3 -1
- data/bin/repo +3 -1
- data/bin/ship +3 -1
- data/bin/sign +3 -1
- data/lib/vanagon/cli.rb +4 -2
- data/lib/vanagon/cli/build.rb +2 -1
- data/lib/vanagon/cli/build_host_info.rb +3 -2
- data/lib/vanagon/cli/build_requirements.rb +4 -4
- data/lib/vanagon/cli/completion.rb +4 -3
- data/lib/vanagon/cli/inspect.rb +3 -2
- data/lib/vanagon/cli/list.rb +5 -6
- data/lib/vanagon/cli/render.rb +2 -1
- data/lib/vanagon/cli/ship.rb +5 -4
- data/lib/vanagon/cli/sign.rb +3 -2
- data/lib/vanagon/component.rb +11 -9
- data/lib/vanagon/component/dsl.rb +6 -5
- data/lib/vanagon/component/source.rb +2 -1
- data/lib/vanagon/component/source/git.rb +7 -6
- data/lib/vanagon/component/source/http.rb +3 -2
- data/lib/vanagon/component/source/local.rb +2 -1
- data/lib/vanagon/component/source/rewrite.rb +3 -2
- data/lib/vanagon/driver.rb +20 -23
- data/lib/vanagon/engine/always_be_scheduling.rb +12 -11
- data/lib/vanagon/engine/docker.rb +2 -1
- data/lib/vanagon/engine/ec2.rb +5 -4
- data/lib/vanagon/engine/hardware.rb +4 -3
- data/lib/vanagon/engine/pooler.rb +6 -5
- data/lib/vanagon/environment.rb +3 -2
- data/lib/vanagon/logger.rb +31 -0
- data/lib/vanagon/platform.rb +6 -5
- data/lib/vanagon/platform/dsl.rb +5 -4
- data/lib/vanagon/platform/windows.rb +3 -1
- data/lib/vanagon/project.rb +20 -14
- data/lib/vanagon/project/dsl.rb +6 -5
- data/lib/vanagon/utilities.rb +5 -4
- data/resources/deb/control.erb +1 -1
- data/resources/osx/postinstall.erb +6 -2
- data/resources/rpm/project.spec.erb +1 -1
- data/resources/solaris/10/depend.erb +2 -2
- data/resources/solaris/10/postinstall.erb +11 -3
- data/resources/solaris/11/p5m.erb +2 -2
- data/spec/lib/vanagon/cli_spec.rb +1 -4
- data/spec/lib/vanagon/component/dsl_spec.rb +9 -2
- data/spec/lib/vanagon/component_spec.rb +3 -2
- data/spec/lib/vanagon/engine/always_be_scheduling_spec.rb +4 -4
- metadata +33 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 607d97840532f0417fd81348a7decb7fbc8e86791fee5e11f8ef53350600d5b4
|
4
|
+
data.tar.gz: c03e5996707781aa956b29599e788b55c7c1cde5cfc707a261d4a22eec3c16f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f59b39738804c83787514f2662a9ba40343d126de298b9b01b4a97cd4d5195ad6c14c0255049fdf002bcb72fa5fa8b27a57983853219a8eddd35dac9cf08030d
|
7
|
+
data.tar.gz: ea3ac00e2beb1919372cde8c74bacc22d68dab5911c0f7cd2c14091153cd0aff3592446bcfac21f77a4c7569299cd2927a3437ee2cfdc3814cb85dc480c42704
|
data/bin/build
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
require 'vanagon/logger'
|
4
|
+
|
3
5
|
script = File.basename($0)
|
4
6
|
|
5
|
-
|
7
|
+
VanagonLogger.info "#{script}: Warning: use of stand alone '#{script}' command is deprecated and may be removed.
|
6
8
|
Use: 'vanagon #{script}' instead."
|
7
9
|
|
8
10
|
exec "vanagon", script, *ARGV
|
data/bin/build_host_info
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
require 'vanagon/logger'
|
4
|
+
|
3
5
|
script = File.basename($0)
|
4
6
|
|
5
|
-
|
7
|
+
VanagonLogger.info "#{script}: Warning: use of stand alone '#{script}' command is deprecated and may be removed.
|
6
8
|
Use: 'vanagon #{script}' instead."
|
7
9
|
|
8
10
|
exec "vanagon", script, *ARGV
|
data/bin/build_requirements
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
require 'vanagon/logger'
|
4
|
+
|
3
5
|
script = File.basename($0)
|
4
6
|
|
5
|
-
|
7
|
+
VanagonLogger.info "#{script}: Warning: use of stand alone '#{script}' command is deprecated and may be removed.
|
6
8
|
Use: 'vanagon #{script}' instead."
|
7
9
|
|
8
10
|
exec "vanagon", script, *ARGV
|
data/bin/inspect
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
require 'vanagon/logger'
|
4
|
+
|
3
5
|
script = File.basename($0)
|
4
6
|
|
5
|
-
|
7
|
+
VanagonLogger.info "#{script}: Warning: use of stand alone '#{script}' command is deprecated and may be removed.
|
6
8
|
Use: 'vanagon #{script}' instead."
|
7
9
|
|
8
10
|
exec "vanagon", script, *ARGV
|
data/bin/render
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
require 'vanagon/logger'
|
4
|
+
|
3
5
|
script = File.basename($0)
|
4
6
|
|
5
|
-
|
7
|
+
VanagonLogger.info "#{script}: Warning: use of stand alone '#{script}' command is deprecated and may be removed.
|
6
8
|
Use: 'vanagon #{script}' instead."
|
7
9
|
|
8
10
|
exec "vanagon", script, *ARGV
|
data/bin/repo
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
require 'vanagon/logger'
|
4
|
+
|
3
5
|
ENV["PROJECT_ROOT"] = Dir.pwd
|
4
6
|
|
5
7
|
# Begin warning: This ship script is an internal tool.
|
@@ -21,7 +23,7 @@ when 'rpm'
|
|
21
23
|
when 'deb'
|
22
24
|
Pkg::Util::RakeUtils.invoke_task('pl:jenkins:deb_repos')
|
23
25
|
when 'none'
|
24
|
-
|
26
|
+
VanagonLogger.warn "Skipping repo generation since repo target is set to 'none'"
|
25
27
|
else
|
26
28
|
Pkg::Util::RakeUtils.invoke_task('pl:jenkins:rpm_repos')
|
27
29
|
Pkg::Util::RakeUtils.invoke_task('pl:jenkins:deb_repos')
|
data/bin/ship
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
require 'vanagon/logger'
|
4
|
+
|
3
5
|
script = File.basename($0)
|
4
6
|
|
5
|
-
|
7
|
+
VanagonLogger.info "#{script}: Warning: use of stand alone '#{script}' command is deprecated and may be removed.
|
6
8
|
Use: 'vanagon #{script}' instead."
|
7
9
|
|
8
10
|
exec "vanagon", script, *ARGV
|
data/bin/sign
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
+
require 'vanagon/logger'
|
4
|
+
|
3
5
|
script = File.basename($0)
|
4
6
|
|
5
|
-
|
7
|
+
VanagonLogger.info "#{script}: Warning: use of stand alone '#{script}' command is deprecated and may be removed.
|
6
8
|
Use: 'vanagon #{script}' instead."
|
7
9
|
|
8
10
|
exec "vanagon", script, *ARGV
|
data/lib/vanagon/cli.rb
CHANGED
@@ -15,6 +15,8 @@ require 'vanagon/cli/render'
|
|
15
15
|
require 'vanagon/cli/ship'
|
16
16
|
require 'vanagon/cli/sign'
|
17
17
|
|
18
|
+
require 'vanagon/logger'
|
19
|
+
|
18
20
|
|
19
21
|
class Vanagon
|
20
22
|
class InvalidArgument < StandardError
|
@@ -66,7 +68,7 @@ class Vanagon
|
|
66
68
|
puts DOCUMENTATION
|
67
69
|
exit 0
|
68
70
|
else
|
69
|
-
|
71
|
+
VanagonLogger.error "vanagon: Error: unknown command: \"#{sub_command}\"\n\n#{DOCUMENTATION}"
|
70
72
|
exit 1
|
71
73
|
end
|
72
74
|
|
@@ -95,7 +97,7 @@ class Vanagon
|
|
95
97
|
def parse_options(argv)
|
96
98
|
Docopt.docopt(DOCUMENTATION, { argv: argv, options_first: true })
|
97
99
|
rescue Docopt::Exit => e
|
98
|
-
|
100
|
+
VanagonLogger.error e.message
|
99
101
|
exit 1
|
100
102
|
end
|
101
103
|
end
|
data/lib/vanagon/cli/build.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'docopt'
|
2
|
+
require 'vanagon/logger'
|
2
3
|
|
3
4
|
class Vanagon
|
4
5
|
class CLI
|
@@ -32,7 +33,7 @@ class Vanagon
|
|
32
33
|
def parse(argv)
|
33
34
|
Docopt.docopt(DOCUMENTATION, { argv: argv })
|
34
35
|
rescue Docopt::Exit => e
|
35
|
-
|
36
|
+
VanagonLogger.error e.message
|
36
37
|
exit 1
|
37
38
|
end
|
38
39
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'docopt'
|
2
|
+
require 'vanagon/logger'
|
2
3
|
|
3
4
|
class Vanagon
|
4
5
|
class CLI
|
@@ -26,7 +27,7 @@ class Vanagon
|
|
26
27
|
def parse(argv)
|
27
28
|
Docopt.docopt(DOCUMENTATION, { argv: argv })
|
28
29
|
rescue Docopt::Exit => e
|
29
|
-
|
30
|
+
VanagonLogger.error e.message
|
30
31
|
exit 1
|
31
32
|
end
|
32
33
|
|
@@ -36,7 +37,7 @@ class Vanagon
|
|
36
37
|
|
37
38
|
platforms.each do |platform|
|
38
39
|
driver = Vanagon::Driver.new(platform, project, options)
|
39
|
-
|
40
|
+
VanagonLogger.warn JSON.generate(driver.build_host_info)
|
40
41
|
end
|
41
42
|
end
|
42
43
|
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'docopt'
|
2
2
|
require 'json'
|
3
|
+
require 'vanagon/logger'
|
3
4
|
|
4
5
|
class Vanagon
|
5
6
|
class CLI
|
@@ -27,7 +28,7 @@ class Vanagon
|
|
27
28
|
def parse(argv)
|
28
29
|
Docopt.docopt(DOCUMENTATION, { argv: argv })
|
29
30
|
rescue Docopt::Exit => e
|
30
|
-
|
31
|
+
VanagonLogger.error e.message
|
31
32
|
exit 1
|
32
33
|
end
|
33
34
|
|
@@ -47,9 +48,8 @@ class Vanagon
|
|
47
48
|
end
|
48
49
|
end
|
49
50
|
|
50
|
-
|
51
|
-
|
52
|
-
$stdout.puts JSON.pretty_generate(build_requirements.flatten.uniq.sort)
|
51
|
+
VanagonLogger.warn "**** External packages required to build #{project} on #{platform}: ***"
|
52
|
+
VanagonLogger.warn JSON.pretty_generate(build_requirements.flatten.uniq.sort)
|
53
53
|
end
|
54
54
|
|
55
55
|
def options_translate(docopt_options)
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'docopt'
|
2
|
+
require 'vanagon/logger'
|
2
3
|
|
3
4
|
class Vanagon
|
4
5
|
class CLI
|
@@ -15,7 +16,7 @@ class Vanagon
|
|
15
16
|
def parse(argv)
|
16
17
|
Docopt.docopt(DOCUMENTATION, { argv: argv })
|
17
18
|
rescue Docopt::Exit => e
|
18
|
-
|
19
|
+
VanagonLogger.error e.message
|
19
20
|
exit 1
|
20
21
|
end
|
21
22
|
|
@@ -24,10 +25,10 @@ class Vanagon
|
|
24
25
|
completion_file = File.expand_path(File.join('..', '..', '..', '..', 'extras', 'completions', "vanagon.#{shell}"), __FILE__)
|
25
26
|
|
26
27
|
if File.exist?(completion_file)
|
27
|
-
|
28
|
+
VanagonLogger.warn completion_file
|
28
29
|
exit 0
|
29
30
|
else
|
30
|
-
|
31
|
+
VanagonLogger.error "Could not find completion file for '#{shell}': No such file #{completion_file}"
|
31
32
|
exit 1
|
32
33
|
end
|
33
34
|
end
|
data/lib/vanagon/cli/inspect.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'docopt'
|
2
2
|
require 'json'
|
3
|
+
require 'vanagon/logger'
|
3
4
|
|
4
5
|
class Vanagon
|
5
6
|
class CLI
|
@@ -30,7 +31,7 @@ class Vanagon
|
|
30
31
|
def parse(argv)
|
31
32
|
Docopt.docopt(DOCUMENTATION, { argv: argv })
|
32
33
|
rescue Docopt::Exit => e
|
33
|
-
|
34
|
+
VanagonLogger.error e.message
|
34
35
|
exit 1
|
35
36
|
end
|
36
37
|
|
@@ -41,7 +42,7 @@ class Vanagon
|
|
41
42
|
platforms.each do |platform|
|
42
43
|
driver = Vanagon::Driver.new(platform, project, options)
|
43
44
|
components = driver.project.components.map(&:to_hash)
|
44
|
-
|
45
|
+
VanagonLogger.warn JSON.pretty_generate(components)
|
45
46
|
end
|
46
47
|
end
|
47
48
|
|
data/lib/vanagon/cli/list.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'docopt'
|
2
|
+
require 'vanagon/logger'
|
2
3
|
|
3
4
|
class Vanagon
|
4
5
|
class CLI
|
@@ -18,7 +19,7 @@ class Vanagon
|
|
18
19
|
def parse(argv)
|
19
20
|
Docopt.docopt(DOCUMENTATION, { argv: argv })
|
20
21
|
rescue Docopt::Exit => e
|
21
|
-
|
22
|
+
VanagonLogger.error e.message
|
22
23
|
exit 1
|
23
24
|
end
|
24
25
|
|
@@ -31,7 +32,7 @@ class Vanagon
|
|
31
32
|
if Dir.exist?(File.join(options[:configdir], 'platforms')) == false ||
|
32
33
|
Dir.exist?(File.join(options[:configdir], 'projects')) == false
|
33
34
|
|
34
|
-
|
35
|
+
VanagonLogger.error "Path to #{File.join(options[:configdir], 'platforms')} or #{File.join(options[:configdir], 'projects')} not found."
|
35
36
|
exit 1
|
36
37
|
end
|
37
38
|
|
@@ -49,14 +50,12 @@ class Vanagon
|
|
49
50
|
end
|
50
51
|
|
51
52
|
if options[:projects]
|
52
|
-
puts "- Projects"
|
53
|
-
puts output(project_list, options[:use_spaces])
|
53
|
+
puts "- Projects", output(project_list, options[:use_spaces])
|
54
54
|
return
|
55
55
|
end
|
56
56
|
|
57
57
|
if options[:platforms]
|
58
|
-
puts "- Platforms"
|
59
|
-
puts output(platform_list, options[:use_spaces])
|
58
|
+
puts "- Platforms", output(platform_list, options[:use_spaces])
|
60
59
|
return
|
61
60
|
end
|
62
61
|
end
|
data/lib/vanagon/cli/render.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'docopt'
|
2
2
|
require 'json'
|
3
|
+
require 'vanagon/logger'
|
3
4
|
|
4
5
|
class Vanagon
|
5
6
|
class CLI
|
@@ -27,7 +28,7 @@ class Vanagon
|
|
27
28
|
def parse(argv)
|
28
29
|
Docopt.docopt(DOCUMENTATION, { argv: argv })
|
29
30
|
rescue Docopt::Exit => e
|
30
|
-
|
31
|
+
VanagonLogger.error e.message
|
31
32
|
exit 1
|
32
33
|
end
|
33
34
|
|
data/lib/vanagon/cli/ship.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'docopt'
|
2
|
+
require 'vanagon/logger'
|
2
3
|
|
3
4
|
class Vanagon
|
4
5
|
class CLI
|
@@ -14,7 +15,7 @@ class Vanagon
|
|
14
15
|
def parse(argv)
|
15
16
|
Docopt.docopt(DOCUMENTATION, { argv: argv })
|
16
17
|
rescue Docopt::Exit => e
|
17
|
-
|
18
|
+
VanagonLogger.error e.message
|
18
19
|
exit 1
|
19
20
|
end
|
20
21
|
|
@@ -32,7 +33,7 @@ class Vanagon
|
|
32
33
|
DOC
|
33
34
|
|
34
35
|
if Dir['output/**/*'].select { |entry| File.file?(entry) }.empty?
|
35
|
-
|
36
|
+
VanagonLogger.error 'vanagon: Error: No packages to ship in the "output" directory. Maybe build some first?'
|
36
37
|
exit 1
|
37
38
|
end
|
38
39
|
|
@@ -42,9 +43,9 @@ class Vanagon
|
|
42
43
|
begin
|
43
44
|
Pkg::Util::RakeUtils.invoke_task('pl:jenkins:ship_to_artifactory', 'output')
|
44
45
|
rescue LoadError
|
45
|
-
|
46
|
+
VanagonLogger.error artifactory_warning
|
46
47
|
rescue StandardError
|
47
|
-
|
48
|
+
VanagonLogger.error artifactory_warning
|
48
49
|
end
|
49
50
|
end
|
50
51
|
end
|
data/lib/vanagon/cli/sign.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'docopt'
|
2
|
+
require 'vanagon/logger'
|
2
3
|
|
3
4
|
class Vanagon
|
4
5
|
class CLI
|
@@ -14,14 +15,14 @@ class Vanagon
|
|
14
15
|
def parse(argv)
|
15
16
|
Docopt.docopt(DOCUMENTATION, { argv: argv })
|
16
17
|
rescue Docopt::Exit => e
|
17
|
-
|
18
|
+
VanagonLogger.error e.message
|
18
19
|
exit 1
|
19
20
|
end
|
20
21
|
|
21
22
|
def run(_)
|
22
23
|
ENV['PROJECT_ROOT'] = Dir.pwd
|
23
24
|
if Dir['output/**/*'].select { |entry| File.file?(entry) }.empty?
|
24
|
-
|
25
|
+
VanagonLogger.error 'sign: Error: No packages to sign in the "output" directory. Maybe build some first?'
|
25
26
|
exit 1
|
26
27
|
end
|
27
28
|
|
data/lib/vanagon/component.rb
CHANGED
@@ -3,6 +3,8 @@ require 'vanagon/component/rules'
|
|
3
3
|
require 'vanagon/component/source'
|
4
4
|
require 'vanagon/component/source/rewrite'
|
5
5
|
|
6
|
+
require 'vanagon/logger'
|
7
|
+
|
6
8
|
class Vanagon
|
7
9
|
class Component
|
8
10
|
include Vanagon::Utilities
|
@@ -138,9 +140,9 @@ class Vanagon
|
|
138
140
|
dsl.instance_eval(File.read(compfile), compfile, 1)
|
139
141
|
dsl._component
|
140
142
|
rescue StandardError => e
|
141
|
-
|
142
|
-
|
143
|
-
|
143
|
+
VanagonLogger.error "Error loading project '#{name}' using '#{compfile}':"
|
144
|
+
VanagonLogger(e)
|
145
|
+
VanagonLogger.error e.backtrace.join("\n")
|
144
146
|
raise e
|
145
147
|
end
|
146
148
|
|
@@ -254,18 +256,18 @@ class Vanagon
|
|
254
256
|
def fetch_mirrors(options)
|
255
257
|
mirrors.to_a.shuffle.each do |mirror|
|
256
258
|
begin
|
257
|
-
|
259
|
+
VanagonLogger.info %(Attempting to fetch from mirror URL "#{mirror}")
|
258
260
|
@source = Vanagon::Component::Source.source(mirror, options)
|
259
261
|
return true if source.fetch
|
260
262
|
rescue SocketError
|
261
263
|
# SocketError means that there was no DNS/name resolution
|
262
264
|
# for whatever remote protocol the mirror tried to use.
|
263
|
-
|
265
|
+
VanagonLogger.error %(Unable to resolve mirror URL "#{mirror}")
|
264
266
|
rescue RuntimeError
|
265
267
|
# Source retrieval does not consistently return a meaningful
|
266
268
|
# namespaced error message, which means we're brute-force rescuing
|
267
269
|
# RuntimeError. Not a good look, and we should fix this.
|
268
|
-
|
270
|
+
VanagonLogger.error %(Unable to retrieve mirror URL "#{mirror}")
|
269
271
|
end
|
270
272
|
end
|
271
273
|
false
|
@@ -277,7 +279,7 @@ class Vanagon
|
|
277
279
|
# @return [Boolean] return True if the source can be retrieved,
|
278
280
|
# or False otherwise
|
279
281
|
def fetch_url(options)
|
280
|
-
|
282
|
+
VanagonLogger.info %(Attempting to fetch from canonical URL "#{url}")
|
281
283
|
@source = Vanagon::Component::Source.source(url, options)
|
282
284
|
# Explicitly coerce the return value of #source.fetch,
|
283
285
|
# because each subclass of Vanagon::Component::Source returns
|
@@ -319,7 +321,7 @@ class Vanagon
|
|
319
321
|
@version ||= source.version
|
320
322
|
end
|
321
323
|
else
|
322
|
-
|
324
|
+
VanagonLogger.info "No source given for component '#{@name}'"
|
323
325
|
|
324
326
|
# If there is no source, we don't want to try to change directories, so we just change to the current directory.
|
325
327
|
@dirname = './'
|
@@ -407,7 +409,7 @@ class Vanagon
|
|
407
409
|
# @return [String] environment suitable for inclusion in a Makefile
|
408
410
|
# @deprecated
|
409
411
|
def get_environment
|
410
|
-
|
412
|
+
VanagonLogger.info <<-WARNING.undent
|
411
413
|
#get_environment is deprecated; environment variables have been moved
|
412
414
|
into the Makefile, and should not be used within a Makefile's recipe.
|
413
415
|
The #get_environment method will be removed by Vanagon 1.0.0.
|