packaging 0.108.2 → 0.109.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) 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/sign/msi.rb +6 -8
  10. data/lib/packaging/util/execution.rb +1 -1
  11. data/lib/packaging/util/ezbake.rb +1 -1
  12. data/lib/packaging/util/file.rb +11 -6
  13. data/lib/packaging/util/net.rb +8 -12
  14. data/lib/packaging/util/ship.rb +17 -7
  15. data/lib/packaging/util/tool.rb +1 -1
  16. data/lib/packaging/util/version.rb +7 -5
  17. data/spec/lib/packaging/config_spec.rb +300 -279
  18. data/spec/lib/packaging/deb/repo_spec.rb +138 -76
  19. data/spec/lib/packaging/deb_spec.rb +28 -25
  20. data/spec/lib/packaging/repo_spec.rb +52 -31
  21. data/spec/lib/packaging/rpm/repo_spec.rb +18 -37
  22. data/spec/lib/packaging/sign_spec.rb +22 -43
  23. data/spec/lib/packaging/tar_spec.rb +48 -44
  24. data/spec/lib/packaging/util/execution_spec.rb +32 -32
  25. data/spec/lib/packaging/util/file_spec.rb +112 -75
  26. data/spec/lib/packaging/util/gpg_spec.rb +24 -19
  27. data/spec/lib/packaging/util/jenkins_spec.rb +79 -48
  28. data/spec/lib/packaging/util/misc_spec.rb +13 -8
  29. data/spec/lib/packaging/util/net_spec.rb +193 -152
  30. data/spec/lib/packaging/util/rake_utils_spec.rb +24 -18
  31. data/spec/lib/packaging_spec.rb +7 -9
  32. data/tasks/apple.rake +7 -8
  33. data/tasks/deb.rake +1 -1
  34. data/tasks/fetch.rake +2 -2
  35. data/tasks/mock.rake +3 -3
  36. data/tasks/nightly_repos.rake +11 -9
  37. data/tasks/rpm.rake +2 -3
  38. data/tasks/ship.rake +4 -2
  39. data/tasks/sign.rake +8 -10
  40. data/tasks/z_data_dump.rake +3 -3
  41. metadata +46 -33
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.map(&:uri).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.2
4
+ version: 0.109.1
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-02-08 00:00:00.000000000 Z
11
+ date: 2023-03-01 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
- - spec/lib/packaging/config_spec.rb
299
- - spec/lib/packaging/platforms_spec.rb
300
- - spec/lib/packaging/gem_spec.rb
301
- - spec/lib/packaging/sign_spec.rb
311
+ - spec/lib/packaging_spec.rb
302
312
  - spec/lib/packaging/paths_spec.rb
303
- - spec/lib/packaging/deb/repo_spec.rb
304
313
  - spec/lib/packaging/rpm/repo_spec.rb
305
- - spec/lib/packaging/util/git_spec.rb
314
+ - spec/lib/packaging/util/ship_spec.rb
306
315
  - spec/lib/packaging/util/os_spec.rb
307
- - spec/lib/packaging/util/gpg_spec.rb
316
+ - spec/lib/packaging/util/git_spec.rb
317
+ - spec/lib/packaging/util/jenkins_spec.rb
318
+ - spec/lib/packaging/util/file_spec.rb
319
+ - spec/lib/packaging/util/rake_utils_spec.rb
308
320
  - spec/lib/packaging/util/execution_spec.rb
309
- - spec/lib/packaging/util/git_tag_spec.rb
310
321
  - spec/lib/packaging/util/net_spec.rb
311
- - spec/lib/packaging/util/ship_spec.rb
312
- - spec/lib/packaging/util/rake_utils_spec.rb
313
- - spec/lib/packaging/util/file_spec.rb
314
322
  - spec/lib/packaging/util/version_spec.rb
315
323
  - spec/lib/packaging/util/misc_spec.rb
316
- - spec/lib/packaging/util/jenkins_spec.rb
317
- - spec/lib/packaging/deb_spec.rb
318
- - spec/lib/packaging/tar_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
319
330
  - spec/lib/packaging/repo_spec.rb
331
+ - spec/lib/packaging/deb_spec.rb
332
+ - spec/lib/packaging/platforms_spec.rb
320
333
  - spec/lib/packaging/artifactory_spec.rb
321
- - spec/lib/packaging/retrieve_spec.rb
322
- - spec/lib/packaging_spec.rb
334
+ - spec/lib/packaging/tar_spec.rb
335
+ - spec/lib/packaging/sign_spec.rb