packaging 0.99.5 → 0.99.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 88e28e28af482a06291f1f585ede34b6426cb3d3
4
- data.tar.gz: 14a563722d00b01bf7237c6395193195f71e8206
3
+ metadata.gz: ba97fcaafa8f44758ff46728fc92b8a9deba25c0
4
+ data.tar.gz: 8237f37fa5bf175ca83a5b0585d5ff3cd4290c86
5
5
  SHA512:
6
- metadata.gz: a667b0640aa6361ddb3b7343404102c8461d290ed4f2651fe1b489b85d04a3dc0f5a4d75fa36f6aa186f8cd3191c8d1fdfe306a05d3219e977e40ad3505087f7
7
- data.tar.gz: 1fd1370fc99e8bafc3881847bd2f909aa6a1d4f8971c654393f62484bf45b2970dec5ec6e0668bdafb8debb37858efe2f812208c409c6252ac57b7836b00482e
6
+ metadata.gz: 574e7666a242a85dacee420f6170b1415f1fec4efa89822c440fb6b2bba352778f671b51cd056a337f265813157a158f3ad915a1b2f89d92f6cb8aa1fb2ad3d6
7
+ data.tar.gz: 1f0154a3631c4400be640c2a93db32225cafb872f57e176b85c66b7baa8f952775dc61a7a1354d986877641398ddeb7642c561ac7a0de05450efd692516e92b8
@@ -14,6 +14,10 @@ module Pkg
14
14
  @files = Pkg::Config.files
15
15
  @target = File.join(Pkg::Config.project_root, "pkg", "#{@project}-#{@version}.tar.gz")
16
16
 
17
+ # If the user did not specify any files, then archive the entire working directory
18
+ # instead
19
+ @files ||= Dir.glob('*')
20
+
17
21
  # We require that the excludes list be a string (which is space
18
22
  # separated, we hope)(deprecated) or an array.
19
23
  #
@@ -30,6 +34,11 @@ module Pkg
30
34
  @excludes = []
31
35
  end
32
36
 
37
+ # If the user has specified things to exclude via config file, they will be
38
+ # honored by the tar class, but we also always exclude the packaging repo
39
+ # and 'pkg' directory.
40
+ @excludes += ['pkg', 'ext/packaging']
41
+
33
42
  # On the other hand, support for explicit templates started with Arrays,
34
43
  # so that's all we support.
35
44
  #
@@ -294,9 +294,13 @@ module Pkg::Util::Net
294
294
  # e.g. 'agent' if only searching for 'puppet'.
295
295
  def remote_create_latest_symlink(package_name, dir, platform_ext, options = {})
296
296
  ls_cmd = "ls -1 *.#{platform_ext} | grep -v latest | grep -v rc | grep #{package_name} "
297
+
298
+ # store this in a separate var to avoid side affects
299
+ full_package_name = String.new(package_name)
300
+
297
301
  if options[:arch]
298
302
  ls_cmd << "| grep #{options[:arch]}"
299
- package_name << "-#{options[:arch]}"
303
+ full_package_name << "-#{options[:arch]}"
300
304
  end
301
305
  if options[:excludes]
302
306
  options[:excludes].each do |excl|
@@ -312,11 +316,11 @@ module Pkg::Util::Net
312
316
  pushd '#{dir}'
313
317
  link_target=$(#{ls_cmd})
314
318
  if [ -z "$link_target" ] ; then
315
- echo "Unable to find a link target for '#{package_name}' in '#{dir}'; skipping link creation"
319
+ echo "Unable to find a link target for '#{full_package_name}' in '#{dir}'; skipping link creation"
316
320
  exit 0
317
321
  fi
318
322
  echo "creating link to '$link_target'"
319
- ln -sf "$link_target" #{package_name}-latest.#{platform_ext}
323
+ ln -sf "$link_target" #{full_package_name}-latest.#{platform_ext}
320
324
  CMD
321
325
 
322
326
  _, err = Pkg::Util::Net.remote_ssh_cmd(Pkg::Config.staging_server, cmd, true)
@@ -137,12 +137,8 @@ module Pkg::Util::Ship
137
137
  create_rolling_repo_link(Pkg::Platforms.generic_platform_tag('osx'), Pkg::Config.dmg_staging_server, remote_path, opts[:nonfinal])
138
138
 
139
139
  Pkg::Platforms.platform_tags_for_package_format('dmg').each do |platform_tag|
140
- # TODO remove the PC1 links when we no longer need to maintain them
141
- # [written by Melissa, copied by Molly]
142
- _, version, arch = Pkg::Platforms.parse_platform_tag(platform_tag)
143
- Pkg::Util::Net.remote_create_latest_symlink('puppet-agent', "/opt/downloads/mac/#{version}/PC1/#{arch}", 'dmg')
144
140
  # Create the latest symlink for the current supported repo
145
- Pkg::Util::Net.remote_create_latest_symlink('puppet-agent', Pkg::Paths.artifacts_path(platform_tag, remote_path), 'dmg')
141
+ Pkg::Util::Net.remote_create_latest_symlink(Pkg::Config.project, Pkg::Paths.artifacts_path(platform_tag, remote_path), 'dmg')
146
142
  end
147
143
  end
148
144
 
@@ -157,15 +153,8 @@ module Pkg::Util::Ship
157
153
 
158
154
  create_rolling_repo_link(Pkg::Platforms.generic_platform_tag('windows'), Pkg::Config.msi_staging_server, remote_path, opts[:nonfinal])
159
155
  # Create the symlinks for the latest supported repo
160
- Pkg::Util::Net.remote_create_latest_symlink('puppet-agent', Pkg::Paths.artifacts_path(Pkg::Platforms.generic_platform_tag('windows'), remote_path), 'msi', arch: 'x64')
161
- Pkg::Util::Net.remote_create_latest_symlink('puppet-agent', Pkg::Paths.artifacts_path(Pkg::Platforms.generic_platform_tag('windows'), remote_path), 'msi', arch: 'x86')
162
-
163
- # We provide symlinks to the latest package in a given directory. This
164
- # allows users to upgrade more easily to the latest version that we release
165
- # TODO remove the links to PC1 when we no longer ship to that repo [written
166
- # by Melissa, copied by Molly]
167
- Pkg::Util::Net.remote_create_latest_symlink('puppet-agent', '/opt/downloads/windows', 'msi', arch: 'x64')
168
- Pkg::Util::Net.remote_create_latest_symlink('puppet-agent', '/opt/downloads/windows', 'msi', arch: 'x86')
156
+ Pkg::Util::Net.remote_create_latest_symlink(Pkg::Config.project, Pkg::Paths.artifacts_path(Pkg::Platforms.generic_platform_tag('windows'), remote_path), 'msi', arch: 'x64')
157
+ Pkg::Util::Net.remote_create_latest_symlink(Pkg::Config.project, Pkg::Paths.artifacts_path(Pkg::Platforms.generic_platform_tag('windows'), remote_path), 'msi', arch: 'x86')
169
158
  end
170
159
 
171
160
  def ship_gem(local_staging_directory, remote_path, opts = {})
@@ -0,0 +1 @@
1
+ ../params.yaml
@@ -0,0 +1 @@
1
+ ../params.yaml
@@ -20,34 +20,44 @@ describe "tar.rb" do
20
20
  "#{PROJECT_ROOT}/ext/debian/changelog.erb"
21
21
  ]
22
22
  end
23
+ before(:each) do
24
+ Pkg::Config.config_from_hash(
25
+ {
26
+ :templates => templates,
27
+ :project => project,
28
+ :version => version,
29
+ :files => files,
30
+ :project_root => PROJECT_ROOT,
31
+ :packaging_root => "ext/packaging"
32
+ })
33
+ end
34
+
35
+ describe '#initialize' do
36
+ it 'should always mark ext/packaging and pkg directories as excluded files' do
37
+ Pkg::Config.tar_excludes = ['foo']
38
+ expect(Pkg::Tar.new.excludes).to eql(['foo', 'pkg', 'ext/packaging'])
39
+
40
+ Pkg::Config.tar_excludes = []
41
+ expect(Pkg::Tar.new.excludes).to eql(['pkg', 'ext/packaging'])
42
+ end
43
+
44
+ it 'should archive the entire project directory by default' do
45
+ Pkg::Config.files = nil
46
+ expect(Pkg::Tar.new.files).to eql(Dir.glob('*'))
47
+ end
48
+
49
+ it 'should archive the user-specified list of files' do
50
+ expect(Pkg::Tar.new.files).to eql(files)
51
+ end
52
+ end
23
53
 
24
54
  describe "#expand_templates" do
25
55
  it "should be invoked when Pkg::Config.templates is set" do
26
- Pkg::Config.config_from_hash(
27
- {
28
- :templates => templates,
29
- :project => project,
30
- :version => version,
31
- :files => files,
32
- :project_root => PROJECT_ROOT,
33
- :packaging_root => "ext/packaging"
34
- })
35
-
36
56
  Pkg::Tar.any_instance.should_receive(:expand_templates)
37
57
  Pkg::Tar.new
38
58
  end
39
59
 
40
60
  it "packaging templates should be filtered and paths should be expanded" do
41
- Pkg::Config.config_from_hash(
42
- {
43
- :templates => templates,
44
- :project => project,
45
- :version => version,
46
- :files => files,
47
- :project_root => PROJECT_ROOT,
48
- :packaging_root => "ext/packaging"
49
- })
50
-
51
61
  templates.each do |temp|
52
62
  if temp.is_a?(String)
53
63
  Dir.stub(:glob).with(File.join(PROJECT_ROOT, temp)).and_return(File.join(PROJECT_ROOT, temp))
@@ -62,17 +72,11 @@ describe "tar.rb" do
62
72
  end
63
73
 
64
74
  describe "#template" do
65
- it "should handle hashes and strings correctly" do
66
- Pkg::Config.config_from_hash(
67
- {
68
- :templates => expanded_templates,
69
- :project => project,
70
- :version => version,
71
- :files => files,
72
- :project_root => PROJECT_ROOT,
73
- :packaging_root => "ext/packaging"
74
- })
75
+ before(:each) do
76
+ Pkg::Config.templates = expanded_templates
77
+ end
75
78
 
79
+ it "should handle hashes and strings correctly" do
76
80
  # Set up correct stubs and expectations
77
81
  expanded_templates.each do |temp|
78
82
  if temp.is_a?(String)
@@ -92,16 +96,6 @@ describe "tar.rb" do
92
96
  end
93
97
 
94
98
  it "should raise an error if the template source can't be found" do
95
- Pkg::Config.config_from_hash(
96
- {
97
- :templates => expanded_templates,
98
- :project => project,
99
- :version => version,
100
- :files => files,
101
- :project_root => PROJECT_ROOT,
102
- :packaging_root => "ext/packaging"
103
- })
104
-
105
99
  # Set up correct stubs and expectations
106
100
  expanded_templates.each do |temp|
107
101
  if temp.is_a?(String)
@@ -259,11 +259,14 @@ namespace :pl do
259
259
  ship_swix
260
260
  ship_tar
261
261
  ship_msi
262
+ ship_gem
262
263
  )
263
264
  tasks.map { |t| "pl:#{t}" }.each do |t|
264
265
  puts "Running #{t} . . ."
265
266
  Rake::Task[t].invoke
266
267
  end
268
+ # mark the build as successfully shipped
269
+ Rake::Task["pl:jenkins:ship"].invoke("shipped")
267
270
  end
268
271
 
269
272
  task :stage_nightlies => "pl:fetch" do
@@ -16,12 +16,6 @@ namespace :package do
16
16
  #
17
17
  tar.templates ||= Dir[File.join(Pkg::Config.project_root, "ext", "**", "*.erb")].select { |i| i !~ /ext\/packaging|ext\/osx/ }
18
18
 
19
-
20
- # If the user has specified things to exclude via config file, they will be
21
- # honored by the tar class, but we also always exclude the packaging repo.
22
- #
23
- tar.excludes << "ext/packaging"
24
-
25
19
  tar.pkg!
26
20
 
27
21
  puts "Wrote #{`pwd`.strip}/pkg/#{Pkg::Config.project}-#{Pkg::Config.version}.tar.gz"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packaging
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.99.5
4
+ version: 0.99.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Puppet Labs
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-09 00:00:00.000000000 Z
11
+ date: 2018-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -208,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
208
  version: '0'
209
209
  requirements: []
210
210
  rubyforge_project:
211
- rubygems_version: 2.4.5.1
211
+ rubygems_version: 2.5.2.1
212
212
  signing_key:
213
213
  specification_version: 4
214
214
  summary: Puppet Labs' packaging automation
@@ -1,2 +0,0 @@
1
- ---
2
- :apt_host: foo
@@ -1,2 +0,0 @@
1
- ---
2
- :apt_host: foo