vanagon 0.18.1 → 0.19.0
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/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.
|