packaging 0.108.1 → 0.109.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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +0 -2
  3. data/lib/packaging/artifactory.rb +15 -10
  4. data/lib/packaging/config/validations.rb +1 -1
  5. data/lib/packaging/config.rb +5 -5
  6. data/lib/packaging/deb/repo.rb +4 -4
  7. data/lib/packaging/nuget.rb +1 -1
  8. data/lib/packaging/paths.rb +4 -3
  9. data/lib/packaging/rpm/repo.rb +26 -8
  10. data/lib/packaging/sign/msi.rb +6 -8
  11. data/lib/packaging/sign/rpm.rb +8 -6
  12. data/lib/packaging/util/execution.rb +1 -1
  13. data/lib/packaging/util/ezbake.rb +1 -1
  14. data/lib/packaging/util/file.rb +4 -6
  15. data/lib/packaging/util/net.rb +8 -12
  16. data/lib/packaging/util/ship.rb +17 -7
  17. data/lib/packaging/util/tool.rb +1 -1
  18. data/lib/packaging/util/version.rb +7 -5
  19. data/spec/lib/packaging/config_spec.rb +300 -279
  20. data/spec/lib/packaging/deb/repo_spec.rb +138 -76
  21. data/spec/lib/packaging/deb_spec.rb +28 -25
  22. data/spec/lib/packaging/repo_spec.rb +52 -31
  23. data/spec/lib/packaging/rpm/repo_spec.rb +109 -71
  24. data/spec/lib/packaging/sign_spec.rb +22 -43
  25. data/spec/lib/packaging/tar_spec.rb +48 -44
  26. data/spec/lib/packaging/util/execution_spec.rb +32 -32
  27. data/spec/lib/packaging/util/file_spec.rb +112 -75
  28. data/spec/lib/packaging/util/gpg_spec.rb +24 -19
  29. data/spec/lib/packaging/util/jenkins_spec.rb +79 -48
  30. data/spec/lib/packaging/util/misc_spec.rb +13 -8
  31. data/spec/lib/packaging/util/net_spec.rb +193 -152
  32. data/spec/lib/packaging/util/rake_utils_spec.rb +24 -18
  33. data/spec/lib/packaging_spec.rb +7 -9
  34. data/tasks/apple.rake +7 -8
  35. data/tasks/deb.rake +1 -1
  36. data/tasks/fetch.rake +2 -2
  37. data/tasks/mock.rake +3 -3
  38. data/tasks/nightly_repos.rake +11 -9
  39. data/tasks/rpm.rake +2 -3
  40. data/tasks/ship.rake +4 -2
  41. data/tasks/sign.rake +8 -10
  42. data/tasks/z_data_dump.rake +3 -3
  43. metadata +48 -35
data/tasks/fetch.rake CHANGED
@@ -15,8 +15,8 @@ end
15
15
  team_data_branch = Pkg::Config.team
16
16
 
17
17
  if Pkg::Config.build_pe
18
- project_data_branch = 'pe-' + project_data_branch unless project_data_branch =~ /^pe-/
19
- team_data_branch = 'pe-' + team_data_branch unless team_data_branch =~ /^pe-/
18
+ project_data_branch = "pe-#{project_data_branch}" unless project_data_branch =~ /^pe-/
19
+ team_data_branch = "pe-#{team_data_branch}" unless team_data_branch =~ /^pe-/
20
20
  end
21
21
 
22
22
  # The pl:fetch task pulls down two files from the build-data repo that contain additional
data/tasks/mock.rake CHANGED
@@ -158,11 +158,11 @@ def mock_template(mock_config)
158
158
  # for example, pupent-3.4-el5-i386.cfg would become pupent-el5-i386 while pupent-el7-x86_64 would remain unmodified.
159
159
  template = mock_config.sub(/([^-]*)-\d\.\d-([^-]*)-([^-]*)/, '\1-\2-\3')
160
160
  template_location = File.join(File::SEPARATOR, "etc", "mock", "#{template}.cfg.erb")
161
- if File.exists?(template_location)
161
+ if File.exist?(template_location)
162
162
  return template, Pkg::Util::File.erb_file(template_location, nil, false, { :binding => binding })
163
- else
164
- return mock_config
165
163
  end
164
+
165
+ return mock_config
166
166
  end
167
167
 
168
168
  # Determine the appropriate rpm macro definitions based on the mock config name
@@ -75,13 +75,14 @@ namespace :pl do
75
75
  mkdir("pkg")
76
76
 
77
77
  Dir.chdir("pkg") do
78
- if versioning == 'ref'
78
+ case versioning
79
+ when 'ref'
79
80
  local_target = File.join(Pkg::Config.project, Pkg::Config.ref)
80
- elsif versioning == 'version'
81
+ when 'version'
81
82
  local_target = File.join(Pkg::Config.project, Pkg::Util::Version.dot_version)
82
83
  end
83
84
 
84
- FileUtils.mkdir_p([local_target, Pkg::Config.project + "-latest"])
85
+ FileUtils.mkdir_p([local_target, "#{Pkg::Config.project}-latest"])
85
86
 
86
87
  # Rake task dependencies with arguments are nuts, so we just directly
87
88
  # invoke them here. We want the signed_* directories staged as
@@ -106,7 +107,7 @@ namespace :pl do
106
107
  # names stay the same between runs. Their contents have the ref
107
108
  # stripped off and the project replaced by $project-latest. Then the
108
109
  # repos directory is a symlink to the last pushed ref's repos.
109
- FileUtils.cp_r(File.join(local_target, "repo_configs"), Pkg::Config.project + "-latest", { :preserve => true })
110
+ FileUtils.cp_r(File.join(local_target, "repo_configs"), "#{Pkg::Config.project}-latest", { :preserve => true })
110
111
 
111
112
  # Now we need to remove the ref and replace $project with
112
113
  # $project-latest so that it will work as a pinned latest repo
@@ -114,7 +115,7 @@ namespace :pl do
114
115
  Dir.glob("#{Pkg::Config.project}-latest/repo_configs/**/*").select { |t_config| File.file?(t_config) }.each do |config|
115
116
  new_contents = File.read(config)
116
117
  new_contents.gsub!(%r{#{Pkg::Config.ref}/}, "")
117
- new_contents.gsub!(%r{#{Pkg::Config.project}/}, Pkg::Config.project + "-latest/")
118
+ new_contents.gsub!(%r{#{Pkg::Config.project}/}, "#{Pkg::Config.project}-latest/")
118
119
  new_contents.gsub!(Pkg::Config.ref, "latest")
119
120
 
120
121
  File.open(config, "w") { |file| file.puts new_contents }
@@ -136,7 +137,7 @@ namespace :pl do
136
137
  end
137
138
 
138
139
  # Make a latest symlink for the project
139
- FileUtils.ln_sf(File.join("..", local_target, "repos"), File.join(Pkg::Config.project + "-latest"), :verbose => true)
140
+ FileUtils.ln_sf(File.join("..", local_target, "repos"), File.join("#{Pkg::Config.project}-latest"), :verbose => true)
140
141
  end
141
142
  end
142
143
 
@@ -231,10 +232,11 @@ namespace :pl do
231
232
  versioning = args.versioning or fail ":versioning is a required argument for #{t}"
232
233
  pe_version = args.pe_version or fail ":pe_version is a required argument for #{t}"
233
234
 
234
- if versioning == 'ref'
235
+ case versioning
236
+ when 'ref'
235
237
  version_string = Pkg::Config.ref
236
- elsif versioning == 'version'
237
- version_string = Pkg::Util::Version.dot_version
238
+ when 'version'
239
+ version_string = Pkg::Util::Version.dot_version
238
240
  end
239
241
 
240
242
  pa_source = File.join(remote_dir, Pkg::Config.project)
data/tasks/rpm.rake CHANGED
@@ -15,7 +15,7 @@ def prep_rpm_build_dir
15
15
  if $?.success?
16
16
  sh "tar -C #{temp} -xzf #{File.join(temp, tarball)} #{Pkg::Config.project}-#{Pkg::Config.version}/ext/redhat/#{Pkg::Config.project}.spec"
17
17
  cp("#{temp}/#{Pkg::Config.project}-#{Pkg::Config.version}/ext/redhat/#{Pkg::Config.project}.spec", "#{temp}/SPECS/")
18
- elsif File.exists?("ext/redhat/#{Pkg::Config.project}.spec.erb")
18
+ elsif File.exist?("ext/redhat/#{Pkg::Config.project}.spec.erb")
19
19
  Pkg::Util::File.erb_file("ext/redhat/#{Pkg::Config.project}.spec.erb", "#{temp}/SPECS/#{Pkg::Config.project}.spec", nil, :binding => Pkg::Config.get_binding)
20
20
  else
21
21
  fail "Could not locate redhat spec ext/redhat/#{Pkg::Config.project}.spec or ext/redhat/#{Pkg::Config.project}.spec.erb"
@@ -30,7 +30,7 @@ def build_rpm(buildarg = "-bs")
30
30
  rpm_old_version = '--define "_source_filedigest_algorithm 1" --define "_binary_filedigest_algorithm 1" \
31
31
  --define "_binary_payload w9.gzdio" --define "_source_payload w9.gzdio" \
32
32
  --define "_default_patch_fuzz 2"'
33
- args = rpm_define + ' ' + rpm_old_version
33
+ args = "#{rpm_define} #{rpm_old_version}"
34
34
  FileUtils.mkdir_p('pkg/srpm')
35
35
  if buildarg == '-ba'
36
36
  FileUtils.mkdir_p('pkg/rpm')
@@ -63,4 +63,3 @@ namespace :package do
63
63
  build_rpm("-ba")
64
64
  end
65
65
  end
66
-
data/tasks/ship.rake CHANGED
@@ -680,8 +680,10 @@ namespace :pl do
680
680
  end
681
681
 
682
682
  # Don't deploy if the package already exists
683
- if artifactory.package_exists_on_artifactory?(artifact)
684
- warn "Attempt to upload '#{artifact}' failed. Package already exists."
683
+ existing_artifacts = artifactory.artifact_paths(artifact)
684
+ unless existing_artifacts.empty?
685
+ warn "Uploading '#{artifact}' to Artifactory refused. Artifact already exists here: ",
686
+ existing_artifacts.join(', ')
685
687
  next
686
688
  end
687
689
 
data/tasks/sign.rake CHANGED
@@ -78,18 +78,16 @@ namespace :pl do
78
78
 
79
79
  desc "Sign generated debian changes files. Defaults to PL Key, pass GPG_KEY to override"
80
80
  task :sign_deb_changes, :root_dir do |_t, args|
81
- begin
82
- deb_dir = args.root_dir || $DEFAULT_DIRECTORY
83
- change_files = Dir["#{deb_dir}/**/*.changes"]
84
- unless change_files.empty?
85
- Pkg::Util::Gpg.load_keychain if Pkg::Util::Tool.find_tool('keychain')
86
- change_files.each do |file|
87
- Pkg::Sign::Deb.sign_changes(file)
88
- end
81
+ deb_dir = args.root_dir || $DEFAULT_DIRECTORY
82
+ change_files = Dir["#{deb_dir}/**/*.changes"]
83
+ unless change_files.empty?
84
+ Pkg::Util::Gpg.load_keychain if Pkg::Util::Tool.find_tool('keychain')
85
+ change_files.each do |file|
86
+ Pkg::Sign::Deb.sign_changes(file)
89
87
  end
90
- ensure
91
- Pkg::Util::Gpg.kill_keychain
92
88
  end
89
+ ensure
90
+ Pkg::Util::Gpg.kill_keychain
93
91
  end
94
92
 
95
93
  desc "Sign OSX packages"
@@ -37,10 +37,11 @@ namespace :pl do
37
37
  # We want a string that is the from "@<param name>"
38
38
  if param = args.param
39
39
  getter = param.dup
40
- if param[0] == ':'
40
+ case param[0]
41
+ when ':'
41
42
  getter = param[1..-1]
42
43
  param[0] = "@"
43
- elsif param[0] == "@"
44
+ when "@"
44
45
  getter = param[1..-1]
45
46
  else
46
47
  param.insert(0, "@")
@@ -62,4 +63,3 @@ namespace :pl do
62
63
  end
63
64
  end
64
65
  end
65
-
metadata CHANGED
@@ -1,43 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: packaging
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.108.1
4
+ version: 0.109.0
5
5
  platform: ruby
6
6
  authors:
7
- - Puppet Labs
7
+ - Puppet By Perforce
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-01-04 00:00:00.000000000 Z
11
+ date: 2023-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: debug
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.0.0
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.0.0
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rspec
15
29
  requirement: !ruby/object:Gem::Requirement
16
30
  requirements:
17
- - - "~>"
31
+ - - ">="
18
32
  - !ruby/object:Gem::Version
19
- version: 2.14.1
33
+ version: '0'
20
34
  type: :development
21
35
  prerelease: false
22
36
  version_requirements: !ruby/object:Gem::Requirement
23
37
  requirements:
24
- - - "~>"
38
+ - - ">="
25
39
  - !ruby/object:Gem::Version
26
- version: 2.14.1
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rubocop
29
43
  requirement: !ruby/object:Gem::Requirement
30
44
  requirements:
31
- - - "~>"
45
+ - - ">="
32
46
  - !ruby/object:Gem::Version
33
- version: '0.49'
47
+ version: '0'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
- - - "~>"
52
+ - - ">="
39
53
  - !ruby/object:Gem::Version
40
- version: '0.49'
54
+ version: '0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: apt_stage_artifacts
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -70,14 +84,14 @@ dependencies:
70
84
  name: csv
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - '='
87
+ - - ">="
74
88
  - !ruby/object:Gem::Version
75
89
  version: 3.1.5
76
90
  type: :runtime
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - '='
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
96
  version: 3.1.5
83
97
  - !ruby/object:Gem::Dependency
@@ -136,9 +150,8 @@ dependencies:
136
150
  - - ">="
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
139
- description: Packaging automation written in Rake and Ruby. Easily build native packages
140
- for most platforms with a few data files and git.
141
- email: info@puppetlabs.com
153
+ description: Packaging automation for Puppet FOSS projects
154
+ email: release@puppet.com
142
155
  executables: []
143
156
  extensions: []
144
157
  extra_rdoc_files: []
@@ -293,30 +306,30 @@ requirements: []
293
306
  rubygems_version: 3.0.3
294
307
  signing_key:
295
308
  specification_version: 4
296
- summary: Puppet Labs' packaging automation
309
+ summary: Puppet by Perforce packaging automation
297
310
  test_files:
298
311
  - spec/lib/packaging_spec.rb
299
- - spec/lib/packaging/sign_spec.rb
300
- - spec/lib/packaging/artifactory_spec.rb
301
- - spec/lib/packaging/retrieve_spec.rb
302
- - spec/lib/packaging/config_spec.rb
303
- - spec/lib/packaging/rpm/repo_spec.rb
304
- - spec/lib/packaging/deb_spec.rb
305
- - spec/lib/packaging/repo_spec.rb
306
- - spec/lib/packaging/gem_spec.rb
307
- - spec/lib/packaging/deb/repo_spec.rb
308
- - spec/lib/packaging/tar_spec.rb
309
312
  - spec/lib/packaging/paths_spec.rb
310
- - spec/lib/packaging/platforms_spec.rb
311
- - spec/lib/packaging/util/jenkins_spec.rb
313
+ - spec/lib/packaging/rpm/repo_spec.rb
312
314
  - spec/lib/packaging/util/ship_spec.rb
313
- - spec/lib/packaging/util/version_spec.rb
314
315
  - spec/lib/packaging/util/os_spec.rb
315
- - spec/lib/packaging/util/git_tag_spec.rb
316
- - spec/lib/packaging/util/rake_utils_spec.rb
317
- - spec/lib/packaging/util/gpg_spec.rb
316
+ - spec/lib/packaging/util/git_spec.rb
317
+ - spec/lib/packaging/util/jenkins_spec.rb
318
318
  - spec/lib/packaging/util/file_spec.rb
319
+ - spec/lib/packaging/util/rake_utils_spec.rb
320
+ - spec/lib/packaging/util/execution_spec.rb
319
321
  - spec/lib/packaging/util/net_spec.rb
322
+ - spec/lib/packaging/util/version_spec.rb
320
323
  - spec/lib/packaging/util/misc_spec.rb
321
- - spec/lib/packaging/util/execution_spec.rb
322
- - spec/lib/packaging/util/git_spec.rb
324
+ - spec/lib/packaging/util/gpg_spec.rb
325
+ - spec/lib/packaging/util/git_tag_spec.rb
326
+ - spec/lib/packaging/deb/repo_spec.rb
327
+ - spec/lib/packaging/retrieve_spec.rb
328
+ - spec/lib/packaging/gem_spec.rb
329
+ - spec/lib/packaging/config_spec.rb
330
+ - spec/lib/packaging/repo_spec.rb
331
+ - spec/lib/packaging/deb_spec.rb
332
+ - spec/lib/packaging/platforms_spec.rb
333
+ - spec/lib/packaging/artifactory_spec.rb
334
+ - spec/lib/packaging/tar_spec.rb
335
+ - spec/lib/packaging/sign_spec.rb