vanagon 0.15.32 → 0.15.33
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/lib/vanagon/component/dsl.rb +9 -0
- data/lib/vanagon/component/source.rb +2 -1
- data/lib/vanagon/component/source/git.rb +7 -2
- data/lib/vanagon/project.rb +46 -12
- data/lib/vanagon/project/dsl.rb +11 -8
- data/spec/lib/vanagon/component/dsl_spec.rb +11 -0
- data/spec/lib/vanagon/component/source/git_spec.rb +34 -0
- data/spec/lib/vanagon/platform/windows_spec.rb +9 -8
- data/spec/lib/vanagon/project/dsl_spec.rb +47 -57
- data/spec/lib/vanagon/project_spec.rb +19 -11
- metadata +31 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef3ecc339b5f864a0ab7e3f63aade38439c35decacd7502a67867cdf3121a5df
|
4
|
+
data.tar.gz: e04110e53343d000e100230e11bf1083f07306a69c7a93c53bb0c7dcbe1cd965
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e5522d4f11a224d03011dd2d4eef0d6ad016ee12371b57d8bdc3309b509d71fae8262245551329e0e5556f4f12207fbc3ef00861da33054a9190237ce47a9fc
|
7
|
+
data.tar.gz: b25a4b76077dd3f5489d0523c60e0710c1b57341aad9c3cdd8c43ef70c92383b4057dcdfecada28565a0623012885275ad0c03b53117c169b2fb1a2af11ac992
|
@@ -333,6 +333,15 @@ class Vanagon
|
|
333
333
|
@component.options[:ref] = the_ref
|
334
334
|
end
|
335
335
|
|
336
|
+
# Sets clone option for git repository
|
337
|
+
#
|
338
|
+
# @param option for cloning and value
|
339
|
+
def clone_option(option, value)
|
340
|
+
option_sym = option.to_sym
|
341
|
+
@component.options[:clone_options] ||= {}
|
342
|
+
@component.options[:clone_options][option_sym] = value
|
343
|
+
end
|
344
|
+
|
336
345
|
# Set a build dir relative to the source directory.
|
337
346
|
#
|
338
347
|
# The build dir will be created before the configure block runs and configure/build/install commands will be run
|
@@ -12,7 +12,7 @@ class Vanagon
|
|
12
12
|
class Component
|
13
13
|
class Source
|
14
14
|
class Git
|
15
|
-
attr_accessor :url, :ref, :workdir
|
15
|
+
attr_accessor :url, :ref, :workdir, :clone_options
|
16
16
|
attr_reader :version, :default_options, :repo
|
17
17
|
|
18
18
|
class << self
|
@@ -55,6 +55,7 @@ class Vanagon
|
|
55
55
|
@url = URI.parse(url.to_s)
|
56
56
|
@ref = opts[:ref]
|
57
57
|
@workdir = File.realpath(workdir)
|
58
|
+
@clone_options = opts[:clone_options] ||= {}
|
58
59
|
|
59
60
|
# We can test for Repo existence without cloning
|
60
61
|
raise Vanagon::InvalidRepo, "#{url} not a valid Git repo" unless valid_remote?
|
@@ -98,7 +99,11 @@ class Vanagon
|
|
98
99
|
# Perform a git clone of @url as a lazy-loaded
|
99
100
|
# accessor for @clone
|
100
101
|
def clone
|
101
|
-
@
|
102
|
+
if @clone_options.empty?
|
103
|
+
@clone ||= ::Git.clone(url, dirname, path: workdir)
|
104
|
+
else
|
105
|
+
@clone ||= ::Git.clone(url, dirname, path: workdir, **clone_options)
|
106
|
+
end
|
102
107
|
end
|
103
108
|
|
104
109
|
# Attempt to connect to whatever URL is provided and
|
data/lib/vanagon/project.rb
CHANGED
@@ -118,7 +118,7 @@ class Vanagon
|
|
118
118
|
# @raise if the instance_eval on Project fails, the exception is reraised
|
119
119
|
def self.load_project(name, configdir, platform, include_components = [])
|
120
120
|
projfile = File.join(configdir, "#{name}.rb")
|
121
|
-
dsl = Vanagon::Project::DSL.new(name, platform, include_components)
|
121
|
+
dsl = Vanagon::Project::DSL.new(name, File.dirname(configdir), platform, include_components)
|
122
122
|
dsl.instance_eval(File.read(projfile), projfile, 1)
|
123
123
|
dsl._project
|
124
124
|
rescue StandardError => e
|
@@ -153,6 +153,7 @@ class Vanagon
|
|
153
153
|
@compiled_archive = false
|
154
154
|
@generate_packages = true
|
155
155
|
@yaml_settings = false
|
156
|
+
@upstream_metadata = {}
|
156
157
|
@no_packaging = false
|
157
158
|
@artifacts_to_fetch = []
|
158
159
|
end
|
@@ -693,23 +694,42 @@ class Vanagon
|
|
693
694
|
end
|
694
695
|
end
|
695
696
|
|
697
|
+
# Recursive merge of metadata hashes
|
698
|
+
# Input is not modified
|
699
|
+
# In case of duplicate keys, original value is kept
|
700
|
+
#
|
701
|
+
# @param original [Hash] Metadata hash from original project
|
702
|
+
# @param upstream [Hash] Metadata hash from upstream project
|
703
|
+
# @return [Hash]
|
704
|
+
def metadata_merge(original, upstream)
|
705
|
+
upstream.merge(original) do |key, upstream_value, original_value|
|
706
|
+
if original_value.is_a?(Hash)
|
707
|
+
metadata_merge(original_value, upstream_value)
|
708
|
+
else
|
709
|
+
original_value
|
710
|
+
end
|
711
|
+
end
|
712
|
+
end
|
713
|
+
|
696
714
|
# Writes a json file at `ext/build_metadata.<project>.<platform>.json` containing information
|
697
715
|
# about what went into a built artifact
|
698
716
|
#
|
699
717
|
# @return [Hash] of build information
|
700
718
|
def save_manifest_json(platform)
|
701
|
-
manifest = build_manifest_json
|
719
|
+
manifest = build_manifest_json
|
720
|
+
metadata = metadata_merge(manifest, @upstream_metadata)
|
721
|
+
|
702
722
|
ext_directory = 'ext'
|
703
723
|
FileUtils.mkdir_p ext_directory
|
704
724
|
|
705
725
|
metadata_file_name = "build_metadata.#{name}.#{platform.name}.json"
|
706
726
|
File.open(File.join(ext_directory, metadata_file_name), 'w') do |f|
|
707
|
-
f.write(
|
727
|
+
f.write(JSON.pretty_generate(metadata))
|
708
728
|
end
|
709
729
|
|
710
730
|
## VANAGON-132 Backwards compatibility: make a 'build_metadata.json' file
|
711
731
|
File.open(File.join(ext_directory, 'build_metadata.json'), 'w') do |f|
|
712
|
-
f.write(
|
732
|
+
f.write(JSON.pretty_generate(metadata))
|
713
733
|
end
|
714
734
|
end
|
715
735
|
|
@@ -749,17 +769,18 @@ class Vanagon
|
|
749
769
|
# @param upstream_project_name [String] The name of the vanagon project to load
|
750
770
|
# @param upstream_git_url [URI] The URL to clone this vanagon project from
|
751
771
|
# @param upstream_git_branch [String] The branch of the vanagon project to clone from
|
752
|
-
def load_upstream_settings(upstream_project_name, upstream_git_url, upstream_git_branch)
|
772
|
+
def load_upstream_settings(upstream_project_name, upstream_git_url, upstream_git_branch) # rubocop:disable Metrics/AbcSize
|
753
773
|
Dir.mktmpdir do |working_directory|
|
754
774
|
upstream_source = Vanagon::Component::Source::Git.new(upstream_git_url, workdir: working_directory, ref: upstream_git_branch)
|
755
775
|
upstream_source.fetch
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
762
|
-
|
776
|
+
|
777
|
+
Dir.chdir(File.join(working_directory, upstream_source.dirname)) do
|
778
|
+
upstream_platform = Vanagon::Platform.load_platform(platform.name, File.join(working_directory, upstream_source.dirname, "configs", "platforms"))
|
779
|
+
upstream_project = Vanagon::Project.load_project(upstream_project_name, File.join(working_directory, upstream_source.dirname, "configs", "projects"), upstream_platform)
|
780
|
+
@settings.merge!(upstream_project.settings)
|
781
|
+
@upstream_metadata = upstream_project.build_manifest_json
|
782
|
+
upstream_project.cleanup
|
783
|
+
end
|
763
784
|
end
|
764
785
|
end
|
765
786
|
|
@@ -799,5 +820,18 @@ class Vanagon
|
|
799
820
|
@settings.merge!(YAML.safe_load(File.read(yaml_path), [Symbol]))
|
800
821
|
end
|
801
822
|
end
|
823
|
+
|
824
|
+
def load_upstream_metadata(metadata_uri)
|
825
|
+
puts "Loading metadata from #{metadata_uri}"
|
826
|
+
case metadata_uri
|
827
|
+
when /^http/
|
828
|
+
@upstream_metadata = JSON.parse(Net::HTTP.get(URI(metadata_uri)))
|
829
|
+
when /^file/
|
830
|
+
filename = metadata_uri.sub(/^file:\/\//, '')
|
831
|
+
@upstream_metadata = JSON.parse(File.read(filename))
|
832
|
+
else
|
833
|
+
raise Vanagon::Error, "Metadata URI must be 'file://' or 'http://', don't know how to parse #{metadata_uri}"
|
834
|
+
end
|
835
|
+
end
|
802
836
|
end
|
803
837
|
end
|
data/lib/vanagon/project/dsl.rb
CHANGED
@@ -12,13 +12,15 @@ class Vanagon
|
|
12
12
|
# Constructor for the DSL object
|
13
13
|
#
|
14
14
|
# @param name [String] name of the project
|
15
|
+
# @param configdir [String] location for 'configs' directory for this project
|
15
16
|
# @param platform [Vanagon::Platform] platform for the project to build against
|
16
17
|
# @param include_components [List] optional list restricting the loaded components
|
17
18
|
# @return [Vanagon::Project::DSL] A DSL object to describe the {Vanagon::Project}
|
18
|
-
def initialize(name, platform, include_components = [])
|
19
|
+
def initialize(name, configdir, platform, include_components = [])
|
19
20
|
@name = name
|
20
21
|
@project = Vanagon::Project.new(@name, platform)
|
21
22
|
@include_components = include_components.to_set
|
23
|
+
@configdir = configdir
|
22
24
|
end
|
23
25
|
|
24
26
|
# Primary way of interacting with the DSL
|
@@ -179,11 +181,11 @@ class Vanagon
|
|
179
181
|
# and reachable from the current commit in that repository.
|
180
182
|
#
|
181
183
|
def release_from_git
|
182
|
-
repo_object = Git.open(File.expand_path("..",
|
184
|
+
repo_object = Git.open(File.expand_path("..", @configdir))
|
183
185
|
last_tag = repo_object.describe('HEAD', { :abbrev => 0 })
|
184
186
|
release(repo_object.rev_list("#{last_tag}..HEAD", { :count => true }))
|
185
187
|
rescue Git::GitExecuteError
|
186
|
-
warn "Directory '#{
|
188
|
+
warn "Directory '#{File.expand_path('..', @configdir)}' cannot be versioned by git. Maybe it hasn't been tagged yet?"
|
187
189
|
end
|
188
190
|
|
189
191
|
# Sets the version for the project based on a git describe of the
|
@@ -191,10 +193,10 @@ class Vanagon
|
|
191
193
|
# and reachable from the current commit in that repository.
|
192
194
|
#
|
193
195
|
def version_from_git
|
194
|
-
git_version = Git.open(File.expand_path("..",
|
196
|
+
git_version = Git.open(File.expand_path("..", @configdir)).describe('HEAD', tags: true)
|
195
197
|
version(git_version.split('-').reject(&:empty?).join('.'))
|
196
198
|
rescue Git::GitExecuteError
|
197
|
-
warn "Directory '#{
|
199
|
+
warn "Directory '#{File.expand_path('..', @configdir)}' cannot be versioned by git. Maybe it hasn't been tagged yet?"
|
198
200
|
end
|
199
201
|
|
200
202
|
# Get the version string from a git branch name. This will look for a '.'
|
@@ -204,7 +206,7 @@ class Vanagon
|
|
204
206
|
#
|
205
207
|
# @return version string parsed from branch name, fails if unable to find version
|
206
208
|
def version_from_branch
|
207
|
-
branch = Git.open(File.expand_path("..",
|
209
|
+
branch = Git.open(File.expand_path("..", @configdir)).current_branch
|
208
210
|
if branch =~ /(\d+(\.\d+)+)/
|
209
211
|
return $1
|
210
212
|
else
|
@@ -268,7 +270,7 @@ class Vanagon
|
|
268
270
|
def component(name)
|
269
271
|
warn "Loading #{name}" if @project.settings[:verbose]
|
270
272
|
if @include_components.empty? or @include_components.include?(name)
|
271
|
-
component = Vanagon::Component.load_component(name, File.join(
|
273
|
+
component = Vanagon::Component.load_component(name, File.join(@configdir, "components"), @project.settings, @project.platform)
|
272
274
|
@project.components << component
|
273
275
|
end
|
274
276
|
end
|
@@ -334,8 +336,9 @@ class Vanagon
|
|
334
336
|
#
|
335
337
|
# @param yaml_settings_uri [String] URI (file://... or http://...) to a file containing a yaml representation of vanagon settings
|
336
338
|
# @param yaml_settings_sha1_uri [String] URI (file://... or http://...) to a file the sha1sum for the settings file
|
337
|
-
def inherit_yaml_settings(yaml_settings_uri, yaml_settings_sha1_uri = nil)
|
339
|
+
def inherit_yaml_settings(yaml_settings_uri, yaml_settings_sha1_uri = nil, metadata_uri: nil)
|
338
340
|
@project.load_yaml_settings(yaml_settings_uri, yaml_settings_sha1_uri)
|
341
|
+
@project.load_upstream_metadata(metadata_uri) if metadata_uri
|
339
342
|
end
|
340
343
|
|
341
344
|
# Set a package override. Will call the platform-specific implementation
|
@@ -869,4 +869,15 @@ end" }
|
|
869
869
|
expect(comp._component.rpm_ghost_files).to eq([Vanagon::Common::Pathname.file('ghost')])
|
870
870
|
end
|
871
871
|
end
|
872
|
+
|
873
|
+
describe "#clone option" do
|
874
|
+
it "sets a branch and depth options correctly" do
|
875
|
+
comp = Vanagon::Component::DSL.new('test-fixture', {}, {})
|
876
|
+
comp.clone_option 'depth', 10
|
877
|
+
comp.clone_option 'branch', 'foo'
|
878
|
+
|
879
|
+
expect(comp._component.options[:clone_options][:depth]).to eq(10)
|
880
|
+
expect(comp._component.options[:clone_options][:branch]).to eq('foo')
|
881
|
+
end
|
882
|
+
end
|
872
883
|
end
|
@@ -38,6 +38,40 @@ describe "Vanagon::Component::Source::Git" do
|
|
38
38
|
expect(git_source.workdir)
|
39
39
|
.to eq('/tmp/bar')
|
40
40
|
end
|
41
|
+
|
42
|
+
it "with no clone options should be empty" do
|
43
|
+
git_source = @klass.new(@local_url, ref: @ref_tag, workdir: "/tmp/foo")
|
44
|
+
expect(git_source.clone_options)
|
45
|
+
.to be {}
|
46
|
+
end
|
47
|
+
|
48
|
+
it "add clone options depth and branch" do
|
49
|
+
expected_clone_options = {:branch => "bar", :depth => 50 }
|
50
|
+
git_source = @klass.new(@local_url, ref: @ref_tag, workdir: "/tmp/foo", :clone_options => expected_clone_options)
|
51
|
+
expect(git_source.clone_options)
|
52
|
+
.to be(expected_clone_options)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "#clone" do
|
57
|
+
before :each do
|
58
|
+
clone = double(Git::Base)
|
59
|
+
@file_path = "/tmp/foo"
|
60
|
+
allow(::Git).to receive(:clone).and_return(clone)
|
61
|
+
expect(File).to receive(:realpath).and_return(@file_path)
|
62
|
+
end
|
63
|
+
it "repository" do
|
64
|
+
git_source = @klass.new(@url, ref: @ref_tag, workdir: "/tmp/foo")
|
65
|
+
expect(::Git).to receive(:clone).with(git_source.url, git_source.dirname, path: @file_path)
|
66
|
+
git_source.clone
|
67
|
+
end
|
68
|
+
|
69
|
+
it "a particular branch with a depth" do
|
70
|
+
expected_clone_options = {:branch => "foo", :depth => 50 }
|
71
|
+
git_source = @klass.new(@url, ref: @ref_tag, workdir: "/tmp/foo", :clone_options => expected_clone_options)
|
72
|
+
expect(::Git).to receive(:clone).with(git_source.url, git_source.dirname, path: @file_path, **expected_clone_options)
|
73
|
+
git_source.clone
|
74
|
+
end
|
41
75
|
end
|
42
76
|
|
43
77
|
describe "#dirname" do
|
@@ -19,6 +19,7 @@ WORKDIR = "#{WORK_BASE}/workdir"
|
|
19
19
|
WIXTESTFILES = File.expand_path("./spec/fixtures/wix/resources/windows/wix")
|
20
20
|
|
21
21
|
describe "Vanagon::Platform::Windows" do
|
22
|
+
let(:configdir) { '/a/b/c' }
|
22
23
|
platforms =[
|
23
24
|
{
|
24
25
|
:name => "windows-2012r2-x64",
|
@@ -75,7 +76,7 @@ describe "Vanagon::Platform::Windows" do
|
|
75
76
|
it "skips package generation for 'archive' package types" do
|
76
77
|
cur_plat.instance_eval(plat[:block])
|
77
78
|
cur_plat.package_type 'archive'
|
78
|
-
proj = Vanagon::Project::DSL.new('test-fixture', cur_plat._platform, [])
|
79
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, cur_plat._platform, [])
|
79
80
|
proj.instance_eval(project_block)
|
80
81
|
expect(cur_plat._platform.generate_package(proj._project)).to eq([])
|
81
82
|
end
|
@@ -83,7 +84,7 @@ describe "Vanagon::Platform::Windows" do
|
|
83
84
|
it "generates a package_name for 'archive' package types" do
|
84
85
|
cur_plat.instance_eval(plat[:block])
|
85
86
|
cur_plat.package_type 'archive'
|
86
|
-
proj = Vanagon::Project::DSL.new('test-fixture', cur_plat._platform, [])
|
87
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, cur_plat._platform, [])
|
87
88
|
proj.instance_eval(project_block)
|
88
89
|
expect(cur_plat._platform.package_name(proj._project)).to eq('test-fixture-0.0.0-archive')
|
89
90
|
end
|
@@ -91,7 +92,7 @@ describe "Vanagon::Platform::Windows" do
|
|
91
92
|
it "skips packaging artifact generation for 'archive' package types" do
|
92
93
|
cur_plat.instance_eval(plat[:block])
|
93
94
|
cur_plat.package_type 'archive'
|
94
|
-
proj = Vanagon::Project::DSL.new('test-fixture', cur_plat._platform, [])
|
95
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, cur_plat._platform, [])
|
95
96
|
proj.instance_eval(project_block)
|
96
97
|
expect(cur_plat._platform.generate_packaging_artifacts('',proj._project.name,'',proj._project)).to eq(nil)
|
97
98
|
end
|
@@ -207,7 +208,7 @@ describe "Vanagon::Platform::Windows" do
|
|
207
208
|
describe "generate_wix_dirs" do
|
208
209
|
|
209
210
|
it "returns one directory with install_service defaults" do
|
210
|
-
proj = Vanagon::Project::DSL.new('test-fixture', vanagon_platform, [])
|
211
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, vanagon_platform, [])
|
211
212
|
proj.instance_eval(project_block)
|
212
213
|
cur_plat.instance_eval(plat[:block])
|
213
214
|
comp = Vanagon::Component::DSL.new('service-test', {}, cur_plat._platform)
|
@@ -223,7 +224,7 @@ describe "Vanagon::Platform::Windows" do
|
|
223
224
|
end
|
224
225
|
|
225
226
|
it "returns one directory with non-default name" do
|
226
|
-
proj = Vanagon::Project::DSL.new('test-fixture', vanagon_platform, [])
|
227
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, vanagon_platform, [])
|
227
228
|
proj.instance_eval(project_block)
|
228
229
|
cur_plat.instance_eval(plat[:block])
|
229
230
|
comp = Vanagon::Component::DSL.new('service-test', {}, cur_plat._platform)
|
@@ -239,7 +240,7 @@ describe "Vanagon::Platform::Windows" do
|
|
239
240
|
end
|
240
241
|
|
241
242
|
it "returns nested directory correctly with \\" do
|
242
|
-
proj = Vanagon::Project::DSL.new('test-fixture', vanagon_platform, [])
|
243
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, vanagon_platform, [])
|
243
244
|
proj.instance_eval(project_block)
|
244
245
|
cur_plat.instance_eval(plat[:block])
|
245
246
|
comp = Vanagon::Component::DSL.new('service-test', {}, cur_plat._platform)
|
@@ -259,7 +260,7 @@ describe "Vanagon::Platform::Windows" do
|
|
259
260
|
|
260
261
|
|
261
262
|
it "adds a second directory for the same input but different components" do
|
262
|
-
proj = Vanagon::Project::DSL.new('test-fixture', vanagon_platform, [])
|
263
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, vanagon_platform, [])
|
263
264
|
proj.instance_eval(project_block)
|
264
265
|
cur_plat.instance_eval(plat[:block])
|
265
266
|
comp = Vanagon::Component::DSL.new('service-test', {}, cur_plat._platform)
|
@@ -278,7 +279,7 @@ describe "Vanagon::Platform::Windows" do
|
|
278
279
|
end
|
279
280
|
|
280
281
|
it "returns correctly formatted multiple nested directories" do
|
281
|
-
proj = Vanagon::Project::DSL.new('test-fixture', vanagon_platform, [])
|
282
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, vanagon_platform, [])
|
282
283
|
proj.instance_eval(project_block)
|
283
284
|
cur_plat.instance_eval(plat[:block])
|
284
285
|
comp = Vanagon::Component::DSL.new('service-test-1', {}, cur_plat._platform)
|
@@ -14,8 +14,7 @@ end" }
|
|
14
14
|
|
15
15
|
describe '#version_from_git' do
|
16
16
|
it 'sets the version based on the git describe' do
|
17
|
-
|
18
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
17
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
19
18
|
proj.instance_eval(project_block)
|
20
19
|
|
21
20
|
# Lying is bad. You shouldn't lie. But sometimes when you're
|
@@ -37,8 +36,7 @@ end" }
|
|
37
36
|
expect(proj._project.version).to eq('1.2.3.1234')
|
38
37
|
end
|
39
38
|
it 'sets the version based on the git describe with multiple dashes' do
|
40
|
-
|
41
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
39
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
42
40
|
proj.instance_eval(project_block)
|
43
41
|
|
44
42
|
# See previous description of "indescribable cyclopean obelisk"
|
@@ -62,8 +60,7 @@ end" }
|
|
62
60
|
tag = double
|
63
61
|
log = double
|
64
62
|
diff = double
|
65
|
-
|
66
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
63
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
67
64
|
proj.instance_eval(project_block)
|
68
65
|
repo = double("repo")
|
69
66
|
expect(::Git)
|
@@ -93,8 +90,7 @@ end" }
|
|
93
90
|
'3.8' => '3.8',
|
94
91
|
}
|
95
92
|
|
96
|
-
|
97
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
93
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
98
94
|
proj.instance_eval(project_block)
|
99
95
|
|
100
96
|
branches.each do |branch, version|
|
@@ -118,8 +114,7 @@ end" }
|
|
118
114
|
'just-a-branch-name'
|
119
115
|
]
|
120
116
|
|
121
|
-
|
122
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
117
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
123
118
|
proj.instance_eval(project_block)
|
124
119
|
|
125
120
|
branches.each do |branch|
|
@@ -140,7 +135,7 @@ end" }
|
|
140
135
|
|
141
136
|
describe '#directory' do
|
142
137
|
it 'adds a directory to the list of directories' do
|
143
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
138
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
144
139
|
proj.instance_eval(project_block)
|
145
140
|
proj.directory('/a/b/c/d', mode: '0755')
|
146
141
|
expect(proj._project.directories).to include(Vanagon::Common::Pathname.new('/a/b/c/d', mode: '0755'))
|
@@ -149,7 +144,7 @@ end" }
|
|
149
144
|
|
150
145
|
describe '#user' do
|
151
146
|
it 'sets a user for the project' do
|
152
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
147
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
153
148
|
proj.instance_eval(project_block)
|
154
149
|
proj.user('test-user')
|
155
150
|
expect(proj._project.user).to eq(Vanagon::Common::User.new('test-user'))
|
@@ -158,7 +153,7 @@ end" }
|
|
158
153
|
|
159
154
|
describe '#target_repo' do
|
160
155
|
it 'sets the target_repo for the project' do
|
161
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
156
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
162
157
|
proj.instance_eval(project_block)
|
163
158
|
proj.target_repo "pc1"
|
164
159
|
expect(proj._project.repo).to eq("pc1")
|
@@ -167,7 +162,7 @@ end" }
|
|
167
162
|
|
168
163
|
describe '#noarch' do
|
169
164
|
it 'sets noarch on the project to true' do
|
170
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
165
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
171
166
|
proj.instance_eval(project_block)
|
172
167
|
proj.noarch
|
173
168
|
expect(proj._project.noarch).to eq(true)
|
@@ -176,20 +171,20 @@ end" }
|
|
176
171
|
|
177
172
|
describe '#generate_source_artifacts' do
|
178
173
|
it 'defaults to false' do
|
179
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
174
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
180
175
|
proj.instance_eval(project_block)
|
181
176
|
expect(proj._project.source_artifacts).to eq(false)
|
182
177
|
end
|
183
178
|
|
184
179
|
it 'sets source_artifacts to true' do
|
185
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
180
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
186
181
|
proj.instance_eval(project_block)
|
187
182
|
proj.generate_source_artifacts true
|
188
183
|
expect(proj._project.source_artifacts).to eq(true)
|
189
184
|
end
|
190
185
|
|
191
186
|
it 'sets source_artifacts to false' do
|
192
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
187
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
193
188
|
proj.instance_eval(project_block)
|
194
189
|
proj.generate_source_artifacts false
|
195
190
|
expect(proj._project.source_artifacts).to eq(false)
|
@@ -198,7 +193,7 @@ end" }
|
|
198
193
|
|
199
194
|
describe '#identifier' do
|
200
195
|
it 'sets the identifier for the project' do
|
201
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
196
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
202
197
|
proj.instance_eval(project_block)
|
203
198
|
proj.identifier "com.example"
|
204
199
|
expect(proj._project.identifier).to eq("com.example")
|
@@ -207,14 +202,14 @@ end" }
|
|
207
202
|
|
208
203
|
describe '#cleanup_during_build' do
|
209
204
|
it 'sets @cleanup to true' do
|
210
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
205
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
211
206
|
proj.instance_eval(project_block)
|
212
207
|
proj.cleanup_during_build
|
213
208
|
expect(proj._project.cleanup).to eq(true)
|
214
209
|
end
|
215
210
|
|
216
211
|
it 'defaults to nil' do
|
217
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
212
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
218
213
|
proj.instance_eval(project_block)
|
219
214
|
expect(proj._project.cleanup).to be_nil
|
220
215
|
end
|
@@ -224,7 +219,7 @@ end" }
|
|
224
219
|
let(:version_file) { '/opt/puppetlabs/puppet/VERSION' }
|
225
220
|
|
226
221
|
it 'sets version_file for the project' do
|
227
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
222
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
228
223
|
proj.instance_eval(project_block)
|
229
224
|
proj.write_version_file(version_file)
|
230
225
|
expect(proj._project.version_file.path).to eq(version_file)
|
@@ -233,14 +228,14 @@ end" }
|
|
233
228
|
|
234
229
|
describe "#release" do
|
235
230
|
it 'sets the release for the project' do
|
236
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
231
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
237
232
|
proj.instance_eval(project_block)
|
238
233
|
proj.release '12'
|
239
234
|
expect(proj._project.release).to eq('12')
|
240
235
|
end
|
241
236
|
|
242
237
|
it 'defaults to 1' do
|
243
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
238
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
244
239
|
proj.instance_eval(project_block)
|
245
240
|
expect(proj._project.release).to eq('1')
|
246
241
|
end
|
@@ -249,7 +244,6 @@ end" }
|
|
249
244
|
describe "#provides" do
|
250
245
|
before do
|
251
246
|
allow_any_instance_of(Vanagon::Project::DSL).to receive(:puts)
|
252
|
-
allow(Vanagon::Driver).to receive(:configdir).and_return(configdir)
|
253
247
|
@el_plat = Vanagon::Platform::DSL.new('el-5-x86_64')
|
254
248
|
@el_plat.instance_eval("platform 'el-5-x86_64' do |plat| end")
|
255
249
|
@deb_plat = Vanagon::Platform::DSL.new('ubuntu-16.04-amd64')
|
@@ -257,7 +251,7 @@ end" }
|
|
257
251
|
end
|
258
252
|
|
259
253
|
it 'adds the package provide to the list of provides' do
|
260
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
254
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
261
255
|
proj.instance_eval(project_block)
|
262
256
|
proj.provides('thing1')
|
263
257
|
proj.provides('thing2')
|
@@ -269,7 +263,7 @@ end" }
|
|
269
263
|
# we don't actually use deb versions for provides at this point, but
|
270
264
|
# testing it works nonetheless
|
271
265
|
it 'supports deb versioned provides' do
|
272
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @deb_plat._platform, [])
|
266
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @deb_plat._platform, [])
|
273
267
|
proj.instance_eval(project_block)
|
274
268
|
proj.provides('thing1', '1.2.3')
|
275
269
|
expect(proj._project.get_provides.count).to eq(1)
|
@@ -288,7 +282,7 @@ end" }
|
|
288
282
|
'=' => '='
|
289
283
|
}
|
290
284
|
operators.each do |initial, munged|
|
291
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @deb_plat._platform, [])
|
285
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @deb_plat._platform, [])
|
292
286
|
proj.instance_eval(project_block)
|
293
287
|
proj.provides('thing1', "#{initial}1.2.3")
|
294
288
|
expect(proj._project.get_provides.count).to eq(1)
|
@@ -300,7 +294,7 @@ end" }
|
|
300
294
|
it 'adds whitespace for rpm versions' do
|
301
295
|
operators=['<','>','<=','>=','=']
|
302
296
|
operators.each do |operator|
|
303
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @el_plat._platform, [])
|
297
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @el_plat._platform, [])
|
304
298
|
proj.instance_eval(project_block)
|
305
299
|
proj.provides('thing1', "#{operator}1.2.3")
|
306
300
|
expect(proj._project.get_provides.count).to eq(1)
|
@@ -310,7 +304,7 @@ end" }
|
|
310
304
|
end
|
311
305
|
|
312
306
|
it 'supports versioned provides' do
|
313
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @el_plat._platform, [])
|
307
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @el_plat._platform, [])
|
314
308
|
proj.instance_eval(project_block)
|
315
309
|
proj.provides('thing1', '1.2.3')
|
316
310
|
expect(proj._project.get_provides.count).to eq(1)
|
@@ -319,7 +313,7 @@ end" }
|
|
319
313
|
end
|
320
314
|
|
321
315
|
it 'gets rid of duplicates' do
|
322
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @el_plat._platform, [])
|
316
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @el_plat._platform, [])
|
323
317
|
proj.instance_eval(project_block)
|
324
318
|
proj.provides('thing1', '1.2.3')
|
325
319
|
proj.provides('thing1', '>=1.2.3')
|
@@ -332,7 +326,6 @@ end" }
|
|
332
326
|
describe "#replaces" do
|
333
327
|
before do
|
334
328
|
allow_any_instance_of(Vanagon::Project::DSL).to receive(:puts)
|
335
|
-
allow(Vanagon::Driver).to receive(:configdir).and_return(configdir)
|
336
329
|
@el_plat = Vanagon::Platform::DSL.new('el-5-x86_64')
|
337
330
|
@el_plat.instance_eval("platform 'el-5-x86_64' do |plat| end")
|
338
331
|
@deb_plat = Vanagon::Platform::DSL.new('ubuntu-16.04-amd64')
|
@@ -340,7 +333,7 @@ end" }
|
|
340
333
|
end
|
341
334
|
|
342
335
|
it 'adds the package replacement to the list of replacements' do
|
343
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
336
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
344
337
|
proj.instance_eval(project_block)
|
345
338
|
proj.replaces('thing1')
|
346
339
|
proj.replaces('thing2')
|
@@ -350,7 +343,7 @@ end" }
|
|
350
343
|
end
|
351
344
|
|
352
345
|
it 'supports versioned replaces' do
|
353
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @el_plat._platform, [])
|
346
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @el_plat._platform, [])
|
354
347
|
proj.instance_eval(project_block)
|
355
348
|
proj.replaces('thing1', '1.2.3')
|
356
349
|
expect(proj._project.get_replaces.count).to eq(1)
|
@@ -359,7 +352,7 @@ end" }
|
|
359
352
|
end
|
360
353
|
|
361
354
|
it 'supports deb versioned replaces' do
|
362
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @deb_plat._platform, [])
|
355
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @deb_plat._platform, [])
|
363
356
|
proj.instance_eval(project_block)
|
364
357
|
proj.replaces('thing1', '1.2.3')
|
365
358
|
expect(proj._project.get_replaces.count).to eq(1)
|
@@ -376,7 +369,7 @@ end" }
|
|
376
369
|
'=' => '='
|
377
370
|
}
|
378
371
|
operators.each do |initial, munged|
|
379
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @deb_plat._platform, [])
|
372
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @deb_plat._platform, [])
|
380
373
|
proj.instance_eval(project_block)
|
381
374
|
proj.replaces('thing1', "#{initial}1.2.3")
|
382
375
|
expect(proj._project.get_replaces.count).to eq(1)
|
@@ -388,7 +381,7 @@ end" }
|
|
388
381
|
it 'adds whitespace for rpm versions' do
|
389
382
|
operators=['<','>','<=','>=','=']
|
390
383
|
operators.each do |operator|
|
391
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @el_plat._platform, [])
|
384
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @el_plat._platform, [])
|
392
385
|
proj.instance_eval(project_block)
|
393
386
|
proj.replaces('thing1', "#{operator}1.2.3")
|
394
387
|
expect(proj._project.get_replaces.count).to eq(1)
|
@@ -398,7 +391,7 @@ end" }
|
|
398
391
|
end
|
399
392
|
|
400
393
|
it 'gets rid of duplicates' do
|
401
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @el_plat._platform, [])
|
394
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @el_plat._platform, [])
|
402
395
|
proj.instance_eval(project_block)
|
403
396
|
proj.replaces('thing1', '1.2.3')
|
404
397
|
proj.replaces('thing1', '<1.2.3')
|
@@ -411,7 +404,6 @@ end" }
|
|
411
404
|
describe "#conflicts" do
|
412
405
|
before do
|
413
406
|
allow_any_instance_of(Vanagon::Project::DSL).to receive(:puts)
|
414
|
-
allow(Vanagon::Driver).to receive(:configdir).and_return(configdir)
|
415
407
|
@el_plat = Vanagon::Platform::DSL.new('el-5-x86_64')
|
416
408
|
@el_plat.instance_eval("platform 'el-5-x86_64' do |plat| end")
|
417
409
|
@deb_plat = Vanagon::Platform::DSL.new('ubuntu-16.04-amd64')
|
@@ -419,7 +411,7 @@ end" }
|
|
419
411
|
end
|
420
412
|
|
421
413
|
it 'adds the package conflict to the list of conflicts' do
|
422
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform)
|
414
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform)
|
423
415
|
proj.instance_eval(project_block)
|
424
416
|
proj.conflicts('thing1')
|
425
417
|
proj.conflicts('thing2')
|
@@ -429,7 +421,7 @@ end" }
|
|
429
421
|
end
|
430
422
|
|
431
423
|
it 'supports versioned conflicts' do
|
432
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @el_plat._platform, [])
|
424
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @el_plat._platform, [])
|
433
425
|
proj.instance_eval(project_block)
|
434
426
|
proj.conflicts('thing1', '1.2.3')
|
435
427
|
expect(proj._project.get_conflicts.count).to eq(1)
|
@@ -438,7 +430,7 @@ end" }
|
|
438
430
|
end
|
439
431
|
|
440
432
|
it 'supports deb versioned conflicts' do
|
441
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @deb_plat._platform, [])
|
433
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @deb_plat._platform, [])
|
442
434
|
proj.instance_eval(project_block)
|
443
435
|
proj.conflicts('thing1', '1.2.3')
|
444
436
|
expect(proj._project.get_conflicts.count).to eq(1)
|
@@ -455,7 +447,7 @@ end" }
|
|
455
447
|
'=' => '='
|
456
448
|
}
|
457
449
|
operators.each do |initial, munged|
|
458
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @deb_plat._platform, [])
|
450
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @deb_plat._platform, [])
|
459
451
|
proj.instance_eval(project_block)
|
460
452
|
proj.conflicts('thing1', "#{initial}1.2.3")
|
461
453
|
expect(proj._project.get_conflicts.count).to eq(1)
|
@@ -467,7 +459,7 @@ end" }
|
|
467
459
|
it 'adds whitespace for rpm versions' do
|
468
460
|
operators=['<','>','<=','>=','=']
|
469
461
|
operators.each do |operator|
|
470
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @el_plat._platform, [])
|
462
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @el_plat._platform, [])
|
471
463
|
proj.instance_eval(project_block)
|
472
464
|
proj.conflicts('thing1', "#{operator}1.2.3")
|
473
465
|
expect(proj._project.get_conflicts.count).to eq(1)
|
@@ -477,7 +469,7 @@ end" }
|
|
477
469
|
end
|
478
470
|
|
479
471
|
it 'gets rid of duplicates' do
|
480
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @el_plat._platform, [])
|
472
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @el_plat._platform, [])
|
481
473
|
proj.instance_eval(project_block)
|
482
474
|
proj.conflicts('thing1', '1.2.3')
|
483
475
|
proj.conflicts('thing1', '<1.2.3')
|
@@ -496,7 +488,6 @@ end"
|
|
496
488
|
|
497
489
|
before do
|
498
490
|
allow_any_instance_of(Vanagon::Project::DSL).to receive(:puts)
|
499
|
-
allow(Vanagon::Driver).to receive(:configdir).and_return(configdir)
|
500
491
|
@el_plat = Vanagon::Platform::DSL.new('el-5-x86_64')
|
501
492
|
@el_plat.instance_eval("platform 'el-5-x86_64' do |plat| end")
|
502
493
|
@osx_plat = Vanagon::Platform::DSL.new('osx-10.10-x86_64')
|
@@ -505,13 +496,13 @@ end"
|
|
505
496
|
end
|
506
497
|
|
507
498
|
it 'adds package_overrides on supported platforms' do
|
508
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @el_plat._platform, [])
|
499
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @el_plat._platform, [])
|
509
500
|
proj.instance_eval(project_block)
|
510
501
|
expect(proj._project.package_overrides).to include("TEST_VAR='foo'")
|
511
502
|
end
|
512
503
|
|
513
504
|
it 'fails on usupported platforms' do
|
514
|
-
proj = Vanagon::Project::DSL.new('test-fixture', @osx_plat._platform, [])
|
505
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, @osx_plat._platform, [])
|
515
506
|
expect{ proj.instance_eval(project_block) }.to raise_error(RuntimeError)
|
516
507
|
end
|
517
508
|
end
|
@@ -527,24 +518,23 @@ end"
|
|
527
518
|
|
528
519
|
before do
|
529
520
|
allow_any_instance_of(Vanagon::Project::DSL).to receive(:puts)
|
530
|
-
allow(Vanagon::Driver).to receive(:configdir).and_return(configdir)
|
531
521
|
allow(Vanagon::Component).to receive(:load_component).with('some-component', any_args).and_return(component)
|
532
522
|
end
|
533
523
|
|
534
524
|
it 'stores the component in the project if the included components set is empty' do
|
535
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform, [])
|
525
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform, [])
|
536
526
|
proj.instance_eval(project_block)
|
537
527
|
expect(proj._project.components).to include(component)
|
538
528
|
end
|
539
529
|
|
540
530
|
it 'stores the component in the project if the component name is listed in the included components set' do
|
541
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform, ['some-component'])
|
531
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform, ['some-component'])
|
542
532
|
proj.instance_eval(project_block)
|
543
533
|
expect(proj._project.components).to include(component)
|
544
534
|
end
|
545
535
|
|
546
536
|
it 'does not store the component if the included components set is not empty and does not include the component name' do
|
547
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform, ['some-different-component'])
|
537
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform, ['some-different-component'])
|
548
538
|
proj.instance_eval(project_block)
|
549
539
|
expect(proj._project.components).to_not include(component)
|
550
540
|
end
|
@@ -568,19 +558,19 @@ end"
|
|
568
558
|
}
|
569
559
|
|
570
560
|
it 'has an empty project.fetch_artifact when fetch_artifact is not called' do
|
571
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform, [])
|
561
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform, [])
|
572
562
|
proj.instance_eval(empty_project_block)
|
573
563
|
expect(proj._project.artifacts_to_fetch).to eq([])
|
574
564
|
end
|
575
565
|
|
576
566
|
it 'Adds a path to project.fetch_artifact when fetch_artifact is called' do
|
577
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform, [])
|
567
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform, [])
|
578
568
|
proj.instance_eval(project_block)
|
579
569
|
expect(proj._project.artifacts_to_fetch).to eq(['foo/bar/baz.file'])
|
580
570
|
end
|
581
571
|
|
582
572
|
it 'Adds multiple paths to project.fetch_artifact when fetch_artifact is called more than once' do
|
583
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform, [])
|
573
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform, [])
|
584
574
|
proj.instance_eval(project_block_multiple)
|
585
575
|
expect(proj._project.artifacts_to_fetch).to eq(['foo/bar/baz.file', 'foo/foobar/foobarbaz.file'])
|
586
576
|
end
|
@@ -603,19 +593,19 @@ end"
|
|
603
593
|
}
|
604
594
|
|
605
595
|
it 'has no_packaging set to false by default' do
|
606
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform, [])
|
596
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform, [])
|
607
597
|
proj.instance_eval(empty_project_block)
|
608
598
|
expect(proj._project.no_packaging).to eq(false)
|
609
599
|
end
|
610
600
|
|
611
601
|
it 'sets no_packaging to true when proj.no_packaging true is called' do
|
612
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform, [])
|
602
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform, [])
|
613
603
|
proj.instance_eval(project_block)
|
614
604
|
expect(proj._project.no_packaging).to eq(true)
|
615
605
|
end
|
616
606
|
|
617
607
|
it 'sets no_packaging to false when proj.no_packaging false is called' do
|
618
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform, [])
|
608
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform, [])
|
619
609
|
proj.instance_eval(project_block_false)
|
620
610
|
expect(proj._project.no_packaging).to eq(false)
|
621
611
|
end
|
@@ -121,7 +121,7 @@ describe 'Vanagon::Project' do
|
|
121
121
|
it 'returns only the highest level directories' do
|
122
122
|
test_sets.each do |set|
|
123
123
|
expect(component).to receive(:directories).and_return([])
|
124
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform, [])
|
124
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform, [])
|
125
125
|
proj.instance_eval(project_block)
|
126
126
|
set[:directories].each {|dir| proj.directory dir }
|
127
127
|
expect(proj._project.get_root_directories.sort).to eq(set[:results].sort)
|
@@ -138,32 +138,40 @@ describe 'Vanagon::Project' do
|
|
138
138
|
expect(git_source).to receive(:fetch).and_return(true)
|
139
139
|
|
140
140
|
# stubs for the upstream project
|
141
|
-
upstream_proj = Vanagon::Project::DSL.new('upstream-test', upstream_platform, [])
|
141
|
+
upstream_proj = Vanagon::Project::DSL.new('upstream-test', configdir, upstream_platform, [])
|
142
142
|
upstream_proj.instance_eval(upstream_project_block)
|
143
143
|
expect(Vanagon::Project).to receive(:load_project).and_return(upstream_proj._project)
|
144
144
|
expect(Vanagon::Platform).to receive(:load_platform).and_return(upstream_platform)
|
145
|
+
|
146
|
+
class Vanagon
|
147
|
+
class Project
|
148
|
+
BUILD_TIME = '2017-07-10T13:34:25-07:00'
|
149
|
+
VANAGON_VERSION = '0.0.0-rspec'
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
145
153
|
end
|
146
154
|
|
147
155
|
it 'loads upstream settings' do
|
148
|
-
inheriting_proj = Vanagon::Project::DSL.new('inheritance-test', platform, [])
|
156
|
+
inheriting_proj = Vanagon::Project::DSL.new('inheritance-test', configdir, platform, [])
|
149
157
|
inheriting_proj.instance_eval(inheriting_project_block)
|
150
158
|
expect(inheriting_proj._project.settings[:test]).to eq('upstream-test')
|
151
159
|
end
|
152
160
|
|
153
161
|
it 'overrides duplicate settings from before the load' do
|
154
|
-
inheriting_proj = Vanagon::Project::DSL.new('inheritance-test', platform, [])
|
162
|
+
inheriting_proj = Vanagon::Project::DSL.new('inheritance-test', configdir, platform, [])
|
155
163
|
inheriting_proj.instance_eval(preset_inheriting_project_block)
|
156
164
|
expect(inheriting_proj._project.settings[:test]).to eq('upstream-test')
|
157
165
|
end
|
158
166
|
|
159
167
|
it 'lets you override settings after the load' do
|
160
|
-
inheriting_proj = Vanagon::Project::DSL.new('inheritance-test', platform, [])
|
168
|
+
inheriting_proj = Vanagon::Project::DSL.new('inheritance-test', configdir, platform, [])
|
161
169
|
inheriting_proj.instance_eval(postset_inheriting_project_block)
|
162
170
|
expect(inheriting_proj._project.settings[:test]).to eq('inheritance-test')
|
163
171
|
end
|
164
172
|
|
165
173
|
it 'merges settings' do
|
166
|
-
inheriting_proj = Vanagon::Project::DSL.new('inheritance-test', platform, [])
|
174
|
+
inheriting_proj = Vanagon::Project::DSL.new('inheritance-test', configdir, platform, [])
|
167
175
|
inheriting_proj.instance_eval(inheriting_project_block_with_settings)
|
168
176
|
expect(inheriting_proj._project.settings[:test]).to eq('upstream-test')
|
169
177
|
expect(inheriting_proj._project.settings[:merged]).to eq('yup')
|
@@ -176,7 +184,7 @@ describe 'Vanagon::Project' do
|
|
176
184
|
end
|
177
185
|
|
178
186
|
it 'loads settings set in platforms' do
|
179
|
-
settings_proj = Vanagon::Project::DSL.new('settings-test', dummy_platform_settings, [])
|
187
|
+
settings_proj = Vanagon::Project::DSL.new('settings-test', configdir, dummy_platform_settings, [])
|
180
188
|
settings_proj.instance_eval(project_block)
|
181
189
|
expect(settings_proj._project.settings[:platform_test]).to eq('debian')
|
182
190
|
end
|
@@ -531,7 +539,7 @@ describe 'Vanagon::Project' do
|
|
531
539
|
it "builds packages by default" do
|
532
540
|
platform = Vanagon::Platform::DSL.new('el-7-x86_64')
|
533
541
|
platform.instance_eval("platform 'el-7-x86_6' do |plat| end")
|
534
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform._platform, [])
|
542
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform._platform, [])
|
535
543
|
expect(platform._platform).to receive(:generate_package) { ["# making a package"] }
|
536
544
|
expect(proj._project.generate_package).to eq(["# making a package"])
|
537
545
|
end
|
@@ -539,7 +547,7 @@ describe 'Vanagon::Project' do
|
|
539
547
|
it "builds packages and archives if configured for both" do
|
540
548
|
platform = Vanagon::Platform::DSL.new('el-7-x86_64')
|
541
549
|
platform.instance_eval("platform 'el-7-x86_6' do |plat| end")
|
542
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform._platform, [])
|
550
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform._platform, [])
|
543
551
|
proj.generate_archives(true)
|
544
552
|
expect(platform._platform).to receive(:generate_package) { ["# making a package"] }
|
545
553
|
expect(platform._platform).to receive(:generate_compiled_archive) { ["# making an archive"] }
|
@@ -549,7 +557,7 @@ describe 'Vanagon::Project' do
|
|
549
557
|
it "can build only archives" do
|
550
558
|
platform = Vanagon::Platform::DSL.new('el-7-x86_64')
|
551
559
|
platform.instance_eval("platform 'el-7-x86_6' do |plat| end")
|
552
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform._platform, [])
|
560
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform._platform, [])
|
553
561
|
proj.generate_archives(true)
|
554
562
|
proj.generate_packages(false)
|
555
563
|
expect(platform._platform).to receive(:generate_compiled_archive) { ["# making an archive"] }
|
@@ -559,7 +567,7 @@ describe 'Vanagon::Project' do
|
|
559
567
|
it "builds nothing if that's what you really want" do
|
560
568
|
platform = Vanagon::Platform::DSL.new('el-7-x86_64')
|
561
569
|
platform.instance_eval("platform 'el-7-x86_6' do |plat| end")
|
562
|
-
proj = Vanagon::Project::DSL.new('test-fixture', platform._platform, [])
|
570
|
+
proj = Vanagon::Project::DSL.new('test-fixture', configdir, platform._platform, [])
|
563
571
|
proj.generate_packages(false)
|
564
572
|
expect(proj._project.generate_package).to eq([])
|
565
573
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vanagon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.15.
|
4
|
+
version: 0.15.33
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: git
|
@@ -266,40 +266,40 @@ specification_version: 3
|
|
266
266
|
summary: All of your packages will fit into this van with this one simple trick.
|
267
267
|
test_files:
|
268
268
|
- spec/lib/makefile_spec.rb
|
269
|
-
- spec/lib/git/rev_list_spec.rb
|
270
|
-
- spec/lib/vanagon/driver_spec.rb
|
271
269
|
- spec/lib/vanagon/utilities/shell_utilities_spec.rb
|
270
|
+
- spec/lib/vanagon/platform_spec.rb
|
271
|
+
- spec/lib/vanagon/project_spec.rb
|
272
|
+
- spec/lib/vanagon/component_spec.rb
|
273
|
+
- spec/lib/vanagon/extensions/set/json_spec.rb
|
274
|
+
- spec/lib/vanagon/extensions/string_spec.rb
|
275
|
+
- spec/lib/vanagon/extensions/ostruct/json_spec.rb
|
276
|
+
- spec/lib/vanagon/engine/ec2_spec.rb
|
277
|
+
- spec/lib/vanagon/engine/hardware_spec.rb
|
278
|
+
- spec/lib/vanagon/engine/pooler_spec.rb
|
279
|
+
- spec/lib/vanagon/engine/always_be_scheduling_spec.rb
|
280
|
+
- spec/lib/vanagon/engine/docker_spec.rb
|
281
|
+
- spec/lib/vanagon/engine/base_spec.rb
|
282
|
+
- spec/lib/vanagon/engine/local_spec.rb
|
272
283
|
- spec/lib/vanagon/environment_spec.rb
|
273
|
-
- spec/lib/vanagon/
|
274
|
-
- spec/lib/vanagon/
|
275
|
-
- spec/lib/vanagon/
|
276
|
-
- spec/lib/vanagon/
|
277
|
-
- spec/lib/vanagon/
|
278
|
-
- spec/lib/vanagon/platform/dsl_spec.rb
|
279
|
-
- spec/lib/vanagon/platform/windows_spec.rb
|
280
|
-
- spec/lib/vanagon/platform/solaris_11_spec.rb
|
284
|
+
- spec/lib/vanagon/utilities_spec.rb
|
285
|
+
- spec/lib/vanagon/driver_spec.rb
|
286
|
+
- spec/lib/vanagon/component/rules_spec.rb
|
287
|
+
- spec/lib/vanagon/component/dsl_spec.rb
|
288
|
+
- spec/lib/vanagon/component/source/rewrite_spec.rb
|
281
289
|
- spec/lib/vanagon/component/source/git_spec.rb
|
282
290
|
- spec/lib/vanagon/component/source/http_spec.rb
|
283
291
|
- spec/lib/vanagon/component/source/local_spec.rb
|
284
|
-
- spec/lib/vanagon/component/source/rewrite_spec.rb
|
285
|
-
- spec/lib/vanagon/component/dsl_spec.rb
|
286
292
|
- spec/lib/vanagon/component/source_spec.rb
|
287
|
-
- spec/lib/vanagon/
|
288
|
-
- spec/lib/vanagon/
|
293
|
+
- spec/lib/vanagon/project/dsl_spec.rb
|
294
|
+
- spec/lib/vanagon/optparse_spec.rb
|
289
295
|
- spec/lib/vanagon/common/user_spec.rb
|
290
296
|
- spec/lib/vanagon/common/pathname_spec.rb
|
291
|
-
- spec/lib/vanagon/
|
292
|
-
- spec/lib/vanagon/
|
293
|
-
- spec/lib/vanagon/
|
294
|
-
- spec/lib/vanagon/
|
295
|
-
- spec/lib/vanagon/
|
296
|
-
- spec/lib/vanagon/
|
297
|
-
- spec/lib/vanagon/
|
298
|
-
- spec/lib/vanagon/
|
299
|
-
- spec/lib/
|
300
|
-
- spec/lib/vanagon/component_spec.rb
|
301
|
-
- spec/lib/vanagon/extensions/ostruct/json_spec.rb
|
302
|
-
- spec/lib/vanagon/extensions/string_spec.rb
|
303
|
-
- spec/lib/vanagon/extensions/set/json_spec.rb
|
304
|
-
- spec/lib/vanagon/project/dsl_spec.rb
|
305
|
-
- spec/lib/vanagon/project_spec.rb
|
297
|
+
- spec/lib/vanagon/platform/dsl_spec.rb
|
298
|
+
- spec/lib/vanagon/platform/windows_spec.rb
|
299
|
+
- spec/lib/vanagon/platform/solaris_10_spec.rb
|
300
|
+
- spec/lib/vanagon/platform/deb_spec.rb
|
301
|
+
- spec/lib/vanagon/platform/solaris_11_spec.rb
|
302
|
+
- spec/lib/vanagon/platform/rpm/aix_spec.rb
|
303
|
+
- spec/lib/vanagon/platform/osx_spec.rb
|
304
|
+
- spec/lib/vanagon/platform/rpm_spec.rb
|
305
|
+
- spec/lib/git/rev_list_spec.rb
|