packaging 0.106.0 → 0.106.3

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.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -4
  3. data/lib/packaging/archive.rb +2 -2
  4. data/lib/packaging/artifactory/extensions.rb +1 -0
  5. data/lib/packaging/artifactory.rb +27 -23
  6. data/lib/packaging/config/params.rb +191 -199
  7. data/lib/packaging/config/validations.rb +0 -2
  8. data/lib/packaging/config.rb +8 -8
  9. data/lib/packaging/deb/repo.rb +11 -14
  10. data/lib/packaging/gem.rb +2 -2
  11. data/lib/packaging/metrics.rb +7 -7
  12. data/lib/packaging/nuget.rb +0 -1
  13. data/lib/packaging/paths.rb +11 -13
  14. data/lib/packaging/platforms.rb +10 -6
  15. data/lib/packaging/repo.rb +11 -12
  16. data/lib/packaging/retrieve.rb +1 -1
  17. data/lib/packaging/rpm/repo.rb +8 -8
  18. data/lib/packaging/sign/dmg.rb +8 -7
  19. data/lib/packaging/sign/ips.rb +64 -32
  20. data/lib/packaging/sign/msi.rb +84 -112
  21. data/lib/packaging/sign/rpm.rb +1 -1
  22. data/lib/packaging/sign.rb +0 -1
  23. data/lib/packaging/tar.rb +2 -4
  24. data/lib/packaging/util/date.rb +0 -1
  25. data/lib/packaging/util/distribution_server.rb +2 -2
  26. data/lib/packaging/util/execution.rb +2 -4
  27. data/lib/packaging/util/file.rb +2 -3
  28. data/lib/packaging/util/git.rb +1 -3
  29. data/lib/packaging/util/git_tags.rb +3 -3
  30. data/lib/packaging/util/gpg.rb +3 -4
  31. data/lib/packaging/util/jenkins.rb +0 -3
  32. data/lib/packaging/util/misc.rb +1 -1
  33. data/lib/packaging/util/net.rb +26 -22
  34. data/lib/packaging/util/repo.rb +0 -1
  35. data/lib/packaging/util/serialization.rb +1 -2
  36. data/lib/packaging/util/ship.rb +3 -3
  37. data/lib/packaging/util/sign.rb +8 -8
  38. data/lib/packaging/util/tool.rb +1 -4
  39. data/lib/packaging/util/version.rb +1 -5
  40. data/lib/packaging/util.rb +1 -1
  41. data/lib/packaging.rb +1 -2
  42. data/spec/lib/packaging/platforms_spec.rb +1 -1
  43. data/spec/lib/packaging/sign_spec.rb +1 -1
  44. data/spec/lib/packaging/util/git_spec.rb +2 -2
  45. data/spec/lib/packaging/util/git_tag_spec.rb +5 -5
  46. data/tasks/30_metrics.rake +2 -2
  47. data/tasks/apple.rake +8 -14
  48. data/tasks/archive.rake +1 -2
  49. data/tasks/deb.rake +7 -8
  50. data/tasks/doc.rake +5 -3
  51. data/tasks/education.rake +2 -4
  52. data/tasks/gem.rake +20 -12
  53. data/tasks/jenkins.rake +27 -15
  54. data/tasks/jenkins_dynamic.rake +10 -10
  55. data/tasks/mock.rake +8 -9
  56. data/tasks/nightly_repos.rake +14 -14
  57. data/tasks/pe_ship.rake +10 -17
  58. data/tasks/retrieve.rake +2 -2
  59. data/tasks/rpm.rake +1 -1
  60. data/tasks/ship.rake +6 -6
  61. data/tasks/sign.rake +5 -5
  62. data/tasks/tar.rake +2 -3
  63. data/tasks/update.rake +2 -2
  64. data/tasks/vendor_gems.rake +5 -7
  65. data/tasks/version.rake +2 -2
  66. metadata +59 -31
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eb8f591fe70bfaa1b456f862d1898608ac697a17fd6875f03bf9ccc3a70aca0f
4
- data.tar.gz: 5d14a9da028019e933ffe9b723170d222bd7684aeacc85081f7002ac683739d6
3
+ metadata.gz: 72bd49df5579d8096b08bbde6347b7bc1165d4547167311d2c46899f87e02941
4
+ data.tar.gz: b2babb4ba9191542f5f3aef1954ef0fc47684dca1065b80a1cf3ef267b94b931
5
5
  SHA512:
6
- metadata.gz: bd7b31167dcd20809a694b8366493be1e2ab67138d97c90ad283ca4852ecca37c6726642bb20e9ac83a0b97d606a780825e4133d9cffa357e602ea0d1e96d779
7
- data.tar.gz: ab8c6af7044c77070b5568023beb9962506622cb90d472d07d795deb8d6b99abea94cf29077e6e5ee71990f20aa1d0672dab83a7c1192a9845c580407a4f3259
6
+ metadata.gz: 62800f36692c45ecffbbb8ba09b1f9423b7b86034dbb2012e8475662debd01e444e220f0f55585c6a85064b1faf6cc9ec8b490f36a9a3efb9421d5703eca2187
7
+ data.tar.gz: 6b5639ae1693e6b241758c2045c6e5a7b70833d0f5140aa6fc4042bfab15f414014c2b60e5411c30b9dd2babe6c8f678951aaf33a27782c93a865d111e4e7214
data/README.md CHANGED
@@ -433,18 +433,18 @@ build_doc: false
433
433
  build_msi:
434
434
  puppet_for_the_win:
435
435
  ref: 'origin/master'
436
- repo: 'git://github.com/puppetlabs/puppet_for_the_win.git'
436
+ repo: 'https://github.com/puppetlabs/puppet_for_the_win.git'
437
437
  facter:
438
438
  ref: 'refs/tags/2.1.0'
439
- repo: 'git://github.com/puppetlabs/facter.git'
439
+ repo: 'https://github.com/puppetlabs/facter.git'
440
440
  hiera:
441
441
  ref: 'refs/tags/1.3.4'
442
- repo: 'git://github.com/puppetlabs/hiera.git'
442
+ repo: 'https://github.com/puppetlabs/hiera.git'
443
443
  sys:
444
444
  ref:
445
445
  x86: 'origin/1.9.3-x86'
446
446
  x64: 'origin/2.0.0-x64'
447
- repo: 'git://github.com/puppetlabs/puppet-win32-ruby.git'
447
+ repo: 'https://github.com/puppetlabs/puppet-win32-ruby.git'
448
448
  # Whether to present the Solaris 11 IPS packaging tasks
449
449
  # This requires suitable IPS packaging artifacts in the project in ext/ips
450
450
  build_ips: false
@@ -3,12 +3,12 @@ module Pkg::Archive
3
3
 
4
4
  # Array of base paths for foss artifacts on weth
5
5
  def base_paths
6
- [Pkg::Config.yum_repo_path, Pkg::Config.apt_repo_staging_path, Pkg::Config.apt_repo_path, '/opt/downloads'].compact.freeze
6
+ [Pkg::Config.yum_repo_path, Pkg::Config.apt_repo_staging_path, Pkg::Config.apt_repo_path, '/opt/downloads'].compact
7
7
  end
8
8
 
9
9
  # Array of paths for temporarily staging artifacts before syncing to release-archives on s3
10
10
  def archive_paths
11
- [Pkg::Config.yum_archive_path, Pkg::Config.apt_archive_path, Pkg::Config.freight_archive_path, Pkg::Config.downloads_archive_path, '/opt/tmp-apt'].compact.freeze
11
+ [Pkg::Config.yum_archive_path, Pkg::Config.apt_archive_path, Pkg::Config.freight_archive_path, Pkg::Config.downloads_archive_path, '/opt/tmp-apt'].compact
12
12
  end
13
13
 
14
14
  # Move yum directories from repo path to archive staging path
@@ -46,6 +46,7 @@ module ArtifactoryExtensions
46
46
  unless repo_uri.include?('/api/storage/')
47
47
  # rubocop:disable Style/PercentLiteralDelimiters
48
48
  repo_uri.sub!(%r(/#{params[:repo]}$), "/api/storage/#{params[:repo]}")
49
+ # rubocop:enable Style/PercentLiteralDelimiters
49
50
  end
50
51
  response['files'].map do |file_path|
51
52
  from_url("#{repo_uri}/#{file_path}", client: client)
@@ -5,13 +5,11 @@ require 'digest'
5
5
  require 'packaging/artifactory/extensions'
6
6
 
7
7
  module Pkg
8
-
9
8
  # The Artifactory class
10
9
  # This class provides automation to access the artifactory repos maintained
11
10
  # by the Release Engineering team at Puppet. It has the ability to both push
12
11
  # artifacts to the repos, and to retrieve them back from the repos.
13
12
  class ManageArtifactory
14
-
15
13
  # The Artifactory property that the artifactCleanup user plugin
16
14
  # {https://github.com/jfrog/artifactory-user-plugins/tree/master/cleanup/artifactCleanup}
17
15
  # uses to tell it to not clean a particular artifact
@@ -233,8 +231,8 @@ module Pkg
233
231
  # @return [String] The contents of the YAML file
234
232
  def retrieve_yaml_data(pkg, ref)
235
233
  yaml_url = "#{@artifactory_uri}/#{DEFAULT_REPO_TYPE}/#{DEFAULT_REPO_BASE}/#{pkg}/#{ref}/#{ref}.yaml"
236
- open(yaml_url) { |f| f.read }
237
- rescue
234
+ URI.open(yaml_url, &:read)
235
+ rescue StandardError
238
236
  raise "Failed to load YAML data for #{pkg} at #{ref} from #{yaml_url}!"
239
237
  end
240
238
 
@@ -245,7 +243,7 @@ module Pkg
245
243
  # project_version, and platform_tag
246
244
  def package_name(platform_data, platform_tag)
247
245
  return File.basename(platform_data[platform_tag][:artifact])
248
- rescue
246
+ rescue StandardError
249
247
  fail_message = <<-DOC
250
248
  Package name could not be found from loaded yaml data. Either this package
251
249
  does not exist, or '#{platform_tag}' is not present in this dataset.
@@ -267,7 +265,7 @@ module Pkg
267
265
  packages.flatten!
268
266
  packages.reject! { |package| package.nil? || package.empty? }
269
267
  packages.map { |package| File.basename(package) }
270
- rescue
268
+ rescue StandardError
271
269
  fail_message = <<-DOC
272
270
  Package name could not be found from loaded yaml data. Either this package
273
271
  does not exist, or '#{platform_tag}' is not present in this dataset.
@@ -294,13 +292,14 @@ module Pkg
294
292
  def promote_package(pkg, ref, platform_tag, repository, debian_component = nil)
295
293
  # load package metadata
296
294
  yaml_content = retrieve_yaml_data(pkg, ref)
297
- yaml_data = YAML::load(yaml_content)
295
+ yaml_data = YAML::safe_load(yaml_content, [Symbol])
298
296
 
299
297
  # get the artifact name
300
298
  artifact_names = all_package_names(yaml_data[:platform_data], platform_tag)
301
299
  artifact_names.each do |artifact_name|
302
300
  artifact_search_results = Artifactory::Resource::Artifact.search(
303
- name: artifact_name, :artifactory_uri => @artifactory_uri)
301
+ name: artifact_name, :artifactory_uri => @artifactory_uri
302
+ )
304
303
 
305
304
  if artifact_search_results.empty?
306
305
  raise "Error: could not find PKG=#{pkg} at REF=#{ref} for #{platform_tag}"
@@ -332,10 +331,10 @@ module Pkg
332
331
  if e.message =~ /(destination and source are the same|user doesn't have permissions to override)/i
333
332
  puts "Skipping promotion of #{artifact_name}; it has already been promoted"
334
333
  else
335
- puts "#{e.message}"
334
+ puts e.message.to_s
336
335
  raise e
337
336
  end
338
- rescue => e
337
+ rescue StandardError => e
339
338
  puts "Something went wrong promoting #{artifact_name}!"
340
339
  raise e
341
340
  end
@@ -352,17 +351,21 @@ module Pkg
352
351
  # Used to specify which subdirectories packages will be downloaded from.
353
352
  def download_packages(staging_directory, manifest, remote_path = '')
354
353
  check_authorization
355
- download_repositories = %w(rpm_enterprise__local debian_enterprise__local)
354
+ download_repositories = %w[rpm_enterprise__local debian_enterprise__local]
356
355
  manifest.each do |dist, packages|
356
+ if packages.nil?
357
+ warn "Package list for #{dist} is empty, skipping"
358
+ next
359
+ end
357
360
  packages.each do |name, info|
358
361
  package_file_name = info['filename']
359
362
  puts format(
360
- "Searching Artifactory [%s]%s for %s (md5: %s)",
363
+ "Searching Artifactory [%s]%s for %s (md5: %s)",
361
364
  download_repositories.join(', '),
362
365
  remote_path.empty? ? '' : "/#{remote_path}",
363
366
  package_file_name,
364
367
  info['md5']
365
- )
368
+ )
366
369
  artifacts = Artifactory::Resource::Artifact.checksum_search(
367
370
  md5: info['md5'],
368
371
  repos: download_repositories,
@@ -418,14 +421,15 @@ module Pkg
418
421
  check_authorization
419
422
  ship_paths.each do |path|
420
423
  Dir.foreach(local_tarball_directory) do |pe_tarball|
421
- next if pe_tarball == '.' || pe_tarball == ".."
424
+ next if ['.', '..'].include?(pe_tarball)
422
425
  begin
423
426
  puts "Uploading #{pe_tarball} to #{target_repo}/#{path}#{pe_tarball}"
424
427
  artifact = Artifactory::Resource::Artifact.new(
425
- local_path: "#{local_tarball_directory}/#{pe_tarball}")
428
+ local_path: "#{local_tarball_directory}/#{pe_tarball}"
429
+ )
426
430
  artifact.upload(target_repo, "#{path}#{pe_tarball}")
427
431
  rescue Errno::EPIPE
428
- STDERR.puts "Warning: Could not upload #{pe_tarball} to #{target_repo}/#{path}. Skipping."
432
+ warn "Warning: Could not upload #{pe_tarball} to #{target_repo}/#{path}. Skipping."
429
433
  next
430
434
  end
431
435
  end
@@ -449,7 +453,7 @@ module Pkg
449
453
  begin
450
454
  puts "Uploading #{local_path} to #{target_repo}/#{full_upload_path} . . ."
451
455
  artifact.upload(target_repo, full_upload_path, properties, headers)
452
- rescue Artifactory::Error::HTTPError => e
456
+ rescue Artifactory::Error::HTTPError
453
457
  fail "Error: Upload failed. Ensure path #{target_path} exists in the #{target_repo} repository."
454
458
  end
455
459
  end
@@ -584,7 +588,7 @@ module Pkg
584
588
  begin
585
589
  artifact.copy(artifactory_target_path)
586
590
  rescue Artifactory::Error::HTTPError
587
- STDERR.puts "Could not copy #{artifactory_target_path}. Source and destination are the same. Skipping..."
591
+ warn "Could not copy #{artifactory_target_path}. Source and destination are the same. Skipping..."
588
592
  end
589
593
 
590
594
  if File.extname(filename) == '.deb'
@@ -606,9 +610,9 @@ module Pkg
606
610
  puts "Copying #{dist} packages..."
607
611
  packages.each do |name, info|
608
612
  filename = info["filename"]
609
- artifact = Artifactory::Resource::Artifact.checksum_search(md5: "#{info["md5"]}", repos: ["rpm_enterprise__local", "debian_enterprise__local"], name: filename).first
613
+ artifact = Artifactory::Resource::Artifact.checksum_search(md5: (info['md5']).to_s, repos: ["rpm_enterprise__local", "debian_enterprise__local"], name: filename).first
610
614
  if artifact.nil?
611
- raise "Error: what the hell, could not find package #{filename} with md5sum #{info["md5"]}"
615
+ raise "Error: what the hell, could not find package #{filename} with md5sum #{info['md5']}"
612
616
  end
613
617
  copy_artifact(artifact, artifact.repo, "#{target_path}/#{dist}/#{filename}")
614
618
  end
@@ -640,7 +644,7 @@ module Pkg
640
644
  packages.each do |package_name, info|
641
645
  next unless package_name == package
642
646
  filename = info["filename"]
643
- artifacts = Artifactory::Resource::Artifact.checksum_search(md5: "#{info["md5"]}", repos: repos, name: filename)
647
+ artifacts = Artifactory::Resource::Artifact.checksum_search(md5: (info['md5']).to_s, repos: repos, name: filename)
644
648
  artifacts.each do |artifact|
645
649
  next unless artifact.download_uri.include? remote_path
646
650
  puts "Removing reverted package #{artifact.download_uri}"
@@ -658,7 +662,7 @@ module Pkg
658
662
  def purge_copied_pe_tarballs(tarball_path, pe_repo)
659
663
  check_authorization
660
664
  Dir.foreach("#{tarball_path}/") do |pe_tarball|
661
- next if pe_tarball == '.' || pe_tarball == ".."
665
+ next if ['.', '..'].include?(pe_tarball)
662
666
  md5 = Digest::MD5.file("#{tarball_path}/#{pe_tarball}").hexdigest
663
667
  artifacts_to_delete = Artifactory::Resource::Artifact.checksum_search(md5: md5, repos: pe_repo, name: pe_tarball)
664
668
  next if artifacts_to_delete.nil?
@@ -668,7 +672,7 @@ module Pkg
668
672
  artifact.delete
669
673
  end
670
674
  rescue Artifactory::Error::HTTPError
671
- STDERR.puts "Error: cannot remove #{pe_tarball}, do you have the right permissions?"
675
+ warn "Error: cannot remove #{pe_tarball}, do you have the right permissions?"
672
676
  end
673
677
  end
674
678
  end