packaging 0.104.0 → 0.106.1

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 (74) 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 -193
  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 +14 -52
  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 +48 -48
  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 +81 -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 +25 -23
  34. data/lib/packaging/util/repo.rb +17 -0
  35. data/lib/packaging/util/serialization.rb +1 -2
  36. data/lib/packaging/util/ship.rb +150 -3
  37. data/lib/packaging/util/sign.rb +47 -0
  38. data/lib/packaging/util/tool.rb +1 -4
  39. data/lib/packaging/util/version.rb +1 -5
  40. data/lib/packaging/util.rb +3 -1
  41. data/lib/packaging.rb +1 -2
  42. data/spec/lib/packaging/config_spec.rb +3 -3
  43. data/spec/lib/packaging/deb/repo_spec.rb +1 -1
  44. data/spec/lib/packaging/paths_spec.rb +2 -3
  45. data/spec/lib/packaging/platforms_spec.rb +6 -6
  46. data/spec/lib/packaging/sign_spec.rb +1 -13
  47. data/spec/lib/packaging/util/git_spec.rb +2 -2
  48. data/spec/lib/packaging/util/git_tag_spec.rb +5 -5
  49. data/spec/lib/packaging/util/ship_spec.rb +0 -2
  50. data/tasks/30_metrics.rake +2 -2
  51. data/tasks/apple.rake +8 -14
  52. data/tasks/archive.rake +1 -2
  53. data/tasks/deb.rake +7 -8
  54. data/tasks/deb_repos.rake +1 -0
  55. data/tasks/doc.rake +5 -3
  56. data/tasks/education.rake +2 -4
  57. data/tasks/fetch.rake +1 -0
  58. data/tasks/gem.rake +20 -12
  59. data/tasks/jenkins.rake +27 -15
  60. data/tasks/jenkins_dynamic.rake +10 -10
  61. data/tasks/load_extras.rake +1 -0
  62. data/tasks/mock.rake +8 -9
  63. data/tasks/nightly_repos.rake +14 -14
  64. data/tasks/pe_ship.rake +10 -17
  65. data/tasks/retrieve.rake +2 -2
  66. data/tasks/rpm.rake +1 -1
  67. data/tasks/rpm_repos.rake +1 -0
  68. data/tasks/ship.rake +24 -12
  69. data/tasks/sign.rake +6 -6
  70. data/tasks/tar.rake +2 -3
  71. data/tasks/update.rake +2 -2
  72. data/tasks/vendor_gems.rake +5 -7
  73. data/tasks/version.rake +2 -2
  74. metadata +42 -40
@@ -4,32 +4,32 @@ require 'spec_helper'
4
4
  describe "Pkg::Util::Git_tag" do
5
5
  context "parse_ref!" do
6
6
  it "fails for a ref that doesn't exist'" do
7
- expect { Pkg::Util::Git_tag.new("git://github.com/puppetlabs/leatherman.git", "garbagegarbage") }.to raise_error(RuntimeError, /ERROR : Not a ref or sha!/)
7
+ expect { Pkg::Util::Git_tag.new("https://github.com/puppetlabs/leatherman.git", "garbagegarbage") }.to raise_error(RuntimeError, /ERROR : Not a ref or sha!/)
8
8
  end
9
9
  end
10
10
 
11
11
  context "sha?" do
12
12
  it "sets ref type as a sha when passed a sha" do
13
- git_tag = Pkg::Util::Git_tag.new("git://github.com/puppetlabs/leatherman.git", "4eef05389ebf418b62af17406c7f9f13fa51f975")
13
+ git_tag = Pkg::Util::Git_tag.new("https://github.com/puppetlabs/leatherman.git", "4eef05389ebf418b62af17406c7f9f13fa51f975")
14
14
  expect(git_tag.sha?).to eq(true)
15
15
  end
16
16
  end
17
17
 
18
18
  context "branch?" do
19
19
  it "sets ref type as a branch when passed a branch" do
20
- git_tag = Pkg::Util::Git_tag.new("git://github.com/puppetlabs/leatherman.git", "main")
20
+ git_tag = Pkg::Util::Git_tag.new("https://github.com/puppetlabs/leatherman.git", "main")
21
21
  expect(git_tag.branch?).to eq(true)
22
22
  end
23
23
  end
24
24
 
25
25
  context "tag?" do
26
26
  it "sets ref type as a tag when passed a tag" do
27
- git_tag = Pkg::Util::Git_tag.new("git://github.com/puppetlabs/leatherman.git", "tags/0.6.2")
27
+ git_tag = Pkg::Util::Git_tag.new("https://github.com/puppetlabs/leatherman.git", "tags/0.6.2")
28
28
  expect(git_tag.tag?).to eq(true)
29
29
  end
30
30
 
31
31
  it "sets ref type as a tag when passed a fully qualified tag" do
32
- git_tag = Pkg::Util::Git_tag.new("git://github.com/puppetlabs/leatherman.git", "refs/tags/0.6.2")
32
+ git_tag = Pkg::Util::Git_tag.new("https://github.com/puppetlabs/leatherman.git", "refs/tags/0.6.2")
33
33
  expect(git_tag.tag?).to eq(true)
34
34
  end
35
35
  end
@@ -51,7 +51,6 @@ describe '#Pkg::Util::Ship' do
51
51
  pkg/sles/12/puppet6/ppc64le/puppet-agent-6.19.0-1.sles12.ppc64le.rpm
52
52
  pkg/sles/12/puppet6/x86_64/puppet-agent-6.19.0-1.sles12.x86_64.rpm
53
53
  pkg/sles/15/puppet6/x86_64/puppet-agent-6.19.0-1.sles15.x86_64.rpm
54
- pkg/apple/10.14/puppet6/x86_64/puppet-agent-6.19.0-1.osx10.14.dmg
55
54
  pkg/apple/10.15/puppet6/x86_64/puppet-agent-6.19.0-1.osx10.15.dmg
56
55
  pkg/fedora/32/puppet6/x86_64/puppet-agent-6.19.0-1.fc32.x86_64.rpm
57
56
  pkg/windows/puppet-agent-6.19.0-x64.msi
@@ -71,7 +70,6 @@ describe '#Pkg::Util::Ship' do
71
70
  pkg/puppet6/sles/12/ppc64le/puppet-agent-6.19.0-1.sles12.ppc64le.rpm
72
71
  pkg/puppet6/sles/12/x86_64/puppet-agent-6.19.0-1.sles12.x86_64.rpm
73
72
  pkg/puppet6/sles/15/x86_64/puppet-agent-6.19.0-1.sles15.x86_64.rpm
74
- pkg/mac/puppet6/10.14/x86_64/puppet-agent-6.19.0-1.osx10.14.dmg
75
73
  pkg/mac/puppet6/10.15/x86_64/puppet-agent-6.19.0-1.osx10.15.dmg
76
74
  pkg/puppet6/fedora/32/x86_64/puppet-agent-6.19.0-1.fc32.x86_64.rpm
77
75
  pkg/windows/puppet6/puppet-agent-6.19.0-x64.msi
@@ -1,4 +1,4 @@
1
- @metrics = []
1
+ @metrics = []
2
2
  def add_shipped_metrics(args)
3
3
  @metrics << {
4
4
  :type => 'shipped',
@@ -19,7 +19,7 @@ def post_shipped_metrics
19
19
  is_rc = metric[:is_rc]
20
20
 
21
21
  uri = URI(Pkg::Config.metrics_url)
22
- res = Net::HTTP.post_form(
22
+ Net::HTTP.post_form(
23
23
  uri,
24
24
  {
25
25
  'type' => type,
data/tasks/apple.rake CHANGED
@@ -18,8 +18,8 @@ PKGBUILD = '/usr/bin/pkgbuild'
18
18
  task :setup do
19
19
  # Read the Apple file-mappings
20
20
  begin
21
- @source_files = Pkg::Util::Serialization.load_yaml('ext/osx/file_mapping.yaml')
22
- rescue => e
21
+ @source_files = Pkg::Util::Serialization.load_yaml('ext/osx/file_mapping.yaml')
22
+ rescue StandardError => e
23
23
  fail "Could not load Apple file mappings from 'ext/osx/file_mapping.yaml'\n#{e}"
24
24
  end
25
25
  @package_name = Pkg::Config.project
@@ -58,11 +58,11 @@ def make_directory_tree
58
58
  end
59
59
 
60
60
  if File.exists?('ext/osx/postflight.erb')
61
- Pkg::Util::File.erb_file 'ext/osx/postflight.erb', "#{@working_tree["scripts"]}/postinstall", false, :binding => binding
61
+ Pkg::Util::File.erb_file 'ext/osx/postflight.erb', "#{@working_tree['scripts']}/postinstall", false, :binding => binding
62
62
  end
63
63
 
64
64
  if File.exists?('ext/osx/preflight.erb')
65
- Pkg::Util::File.erb_file 'ext/osx/preflight.erb', "#{@working_tree["scripts"]}/preinstall", false, :binding => binding
65
+ Pkg::Util::File.erb_file 'ext/osx/preflight.erb', "#{@working_tree['scripts']}/preinstall", false, :binding => binding
66
66
  end
67
67
 
68
68
  if File.exists?('ext/osx/prototype.plist.erb')
@@ -72,7 +72,6 @@ def make_directory_tree
72
72
  if File.exists?('ext/packaging/static_artifacts/PackageInfo.plist')
73
73
  cp 'ext/packaging/static_artifacts/PackageInfo.plist', "#{@scratch}/PackageInfo.plist"
74
74
  end
75
-
76
75
  end
77
76
 
78
77
  # method: build_dmg
@@ -113,14 +112,9 @@ def build_dmg
113
112
  -format #{dmg_format} \
114
113
  #{dmg_file}")
115
114
 
116
- if File.directory?("#{pwd}/pkg/apple")
117
- sh "sudo mv #{pwd}/#{dmg_file} #{pwd}/pkg/apple/#{dmg_file}"
118
- puts "moved: #{dmg_file} has been moved to #{pwd}/pkg/apple/#{dmg_file}"
119
- else
120
- mkdir_p("#{pwd}/pkg/apple")
121
- sh "sudo mv #{pwd}/#{dmg_file} #{pwd}/pkg/apple/#{dmg_file}"
122
- puts "moved: #{dmg_file} has been moved to #{pwd}/pkg/apple/#{dmg_file}"
123
- end
115
+ mkdir_p("#{pwd}/pkg/apple") unless File.directory?("#{pwd}/pkg/apple")
116
+ sh "sudo mv #{pwd}/#{dmg_file} #{pwd}/pkg/apple/#{dmg_file}"
117
+ puts "moved: #{dmg_file} has been moved to #{pwd}/pkg/apple/#{dmg_file}"
124
118
  end
125
119
 
126
120
  # method: pack_source
@@ -131,7 +125,7 @@ end
131
125
  # installed as the package's payload.
132
126
  #
133
127
  def pack_source
134
- work = "#{@working_tree['working']}"
128
+ work = (@working_tree['working']).to_s
135
129
  source = pwd
136
130
 
137
131
  # Make all necessary directories
data/tasks/archive.rake CHANGED
@@ -1,8 +1,7 @@
1
1
  namespace :pl do
2
2
  namespace :remote do
3
-
4
3
  desc "Move packages from repo paths to archive staging paths"
5
- task :stage_archives, [:yum_directories, :apt_directories, :downloads_directories] => 'pl:fetch' do |_t, args|
4
+ task :stage_archives, %i[yum_directories apt_directories downloads_directories] => 'pl:fetch' do |_t, args|
6
5
  yum_directories = args.yum_directories ? args.yum_directories.split(' ') : []
7
6
  apt_directories = args.apt_directories ? args.apt_directories.split(' ') : []
8
7
  downloads_directories = args.downloads_directories ? args.downloads_directories.split(' ') : []
data/tasks/deb.rake CHANGED
@@ -24,7 +24,7 @@ def debuild(args)
24
24
  results_dir = args[:work_dir]
25
25
  begin
26
26
  sh "debuild --no-lintian -uc -us"
27
- rescue => e
27
+ rescue StandardError => e
28
28
  fail "Something went wrong. Hopefully the backscroll or #{results_dir}/#{Pkg::Config.project}_#{Pkg::Config.debversion}.build file has a clue.\n#{e}"
29
29
  end
30
30
  end
@@ -47,12 +47,11 @@ task :prep_deb_tars, :work_dir do |t, args|
47
47
  pkg_dir = "#{work_dir}/#{Pkg::Config.project}-#{Pkg::Config.debversion}"
48
48
  cd 'ext' do
49
49
  Pathname('debian').find do |file|
50
- case
51
- when file.to_s =~ /~$/, file.to_s =~ /^#/
50
+ if file.to_s =~ /~$/ || file.to_s =~ /^#/
52
51
  next
53
- when file.directory?
52
+ elsif file.directory?
54
53
  mkdir_p "#{pkg_dir}/#{file}"
55
- when file.extname == '.erb'
54
+ elsif file.extname == '.erb'
56
55
  Pkg::Util::File.erb_file(file, "#{pkg_dir}/#{file.sub(/\.[^\.]*$/, '')}", false, :binding => Pkg::Config.get_binding)
57
56
  else
58
57
  cp file, "#{pkg_dir}/#{file}"
@@ -70,10 +69,10 @@ task :build_deb, :deb_command, :cow do |t, args|
70
69
  work_dir = Pkg::Util::File.mktemp
71
70
  subdir = 'pe/' if Pkg::Config.build_pe
72
71
  codename = /base-(.*)-(.*)\.cow/.match(cow)[1] unless cow.nil?
73
- dest_dir = File.join(Pkg::Config.project_root, "pkg", "#{subdir}deb", codename.to_s, subrepo.to_s)
72
+ dest_dir = File.join(Pkg::Config.project_root, "pkg", "#{subdir}deb", codename.to_s, subrepo.to_s)
74
73
  Pkg::Util::Tool.check_tool(deb_build)
75
74
  mkdir_p dest_dir
76
- deb_args = { :work_dir => work_dir, :cow => cow }
75
+ deb_args = { :work_dir => work_dir, :cow => cow }
77
76
  Rake::Task[:prep_deb_tars].reenable
78
77
  Rake::Task[:prep_deb_tars].invoke(work_dir)
79
78
  cd "#{work_dir}/#{Pkg::Config.project}-#{Pkg::Config.debversion}" do
@@ -112,7 +111,7 @@ end
112
111
 
113
112
  namespace :pl do
114
113
  desc "Create a deb from this repo using the default cow #{Pkg::Config.default_cow}."
115
- task :deb => "package:tar" do
114
+ task :deb => "package:tar" do
116
115
  Pkg::Util.check_var('PE_VER', Pkg::Config.pe_version) if Pkg::Config.build_pe
117
116
  Rake::Task[:build_deb].invoke('pdebuild', Pkg::Config.default_cow)
118
117
  end
data/tasks/deb_repos.rake CHANGED
@@ -10,6 +10,7 @@
10
10
  #
11
11
  namespace :pl do
12
12
  namespace :jenkins do
13
+ # The equivalent to invoking this task is calling Pkg::Util::Repo.deb_repos
13
14
  desc "Create apt repositories of build DEB packages for this SHA on the distributions erver"
14
15
  task :deb_repos => "pl:fetch" do
15
16
  Pkg::Deb::Repo.create_repos
data/tasks/doc.rake CHANGED
@@ -12,9 +12,11 @@ if Pkg::Config.build_doc
12
12
  RDoc::Task.new(:doc) do |rdoc|
13
13
  rdoc.rdoc_dir = 'doc'
14
14
  rdoc.title = "#{Pkg::Config.project} version #{Pkg::Config.version}"
15
- Pkg::Config.gem_rdoc_options.each do |option|
16
- rdoc.options << option
17
- end unless Pkg::Config.gem_rdoc_options.nil?
15
+ unless Pkg::Config.gem_rdoc_options.nil?
16
+ Pkg::Config.gem_rdoc_options.each do |option|
17
+ rdoc.options << option
18
+ end
19
+ end
18
20
  end
19
21
  end
20
22
  end
data/tasks/education.rake CHANGED
@@ -1,7 +1,6 @@
1
1
  namespace :pl do
2
2
  namespace :jenkins do
3
- task :deploy_learning_vm, [:vm, :md5, :target_bucket, :target_directory] => "pl:fetch" do |t, args|
4
-
3
+ task :deploy_learning_vm, %i[vm md5 target_bucket target_directory] => "pl:fetch" do |t, args|
5
4
  vm = args.vm or fail ":vm is a required argument for #{t}"
6
5
  md5 = args.md5 or fail ":md5 is a required argument for #{t}"
7
6
  target_bucket = args.target_bucket or fail ":target_bucket is a required argument for #{t}"
@@ -13,8 +12,7 @@ namespace :pl do
13
12
  puts "'#{vm}' and '#{md5}' have been shipped via s3 to '#{target_bucket}/#{target_directory}'"
14
13
  end
15
14
 
16
- task :deploy_training_vm, [:vm, :md5, :target_host, :target_directory] => "pl:fetch" do |t, args|
17
-
15
+ task :deploy_training_vm, %i[vm md5 target_host target_directory] => "pl:fetch" do |t, args|
18
16
  vm = args.vm or fail ":vm is a required argument for #{t}"
19
17
  md5 = args.md5 or fail ":md5 is a required argument for #{t}"
20
18
  target_host = args.target_host or fail ":target_host is a required argument for #{t}"
data/tasks/fetch.rake CHANGED
@@ -26,6 +26,7 @@ end
26
26
  # It uses curl to download the files, and places them in a temporary
27
27
  # directory, e.g. /tmp/somedirectory/{project,team}/Pkg::Config.builder_data_file
28
28
  namespace :pl do
29
+ # The equivalent to invoking this task is calling Pkg::Util::File.fetch
29
30
  desc "retrieve build-data configurations to override/extend local build_defaults"
30
31
  task :fetch do
31
32
  # Remove .packaging directory from old-style extras loading
data/tasks/gem.rake CHANGED
@@ -57,18 +57,24 @@ def create_default_gem_spec
57
57
  s.test_files = FileList[Pkg::Config.gem_test_files.split(' ')] unless Pkg::Config.gem_test_files.nil?
58
58
  s.license = Pkg::Config.gem_license unless Pkg::Config.gem_license.nil?
59
59
  s.rubyforge_project = Pkg::Config.gem_forge_project unless Pkg::Config.gem_forge_project.nil?
60
- Pkg::Config.gem_rdoc_options.each do |option|
61
- s.rdoc_options << option
62
- end unless Pkg::Config.gem_rdoc_options.nil?
60
+ unless Pkg::Config.gem_rdoc_options.nil?
61
+ Pkg::Config.gem_rdoc_options.each do |option|
62
+ s.rdoc_options << option
63
+ end
64
+ end
63
65
  end
64
66
 
65
- Pkg::Config.gem_runtime_dependencies.each do |gem, version|
66
- spec = add_gem_dependency(:spec => spec, :gem => gem, :version => version, :type => :runtime)
67
- end unless Pkg::Config.gem_runtime_dependencies.nil?
67
+ unless Pkg::Config.gem_runtime_dependencies.nil?
68
+ Pkg::Config.gem_runtime_dependencies.each do |gem, version|
69
+ spec = add_gem_dependency(:spec => spec, :gem => gem, :version => version, :type => :runtime)
70
+ end
71
+ end
68
72
 
69
- Pkg::Config.gem_development_dependencies.each do |gem, version|
70
- spec = add_gem_dependency(:spec => spec, :gem => gem, :version => version, :type => :development)
71
- end unless Pkg::Config.gem_development_dependencies.nil?
73
+ unless Pkg::Config.gem_development_dependencies.nil?
74
+ Pkg::Config.gem_development_dependencies.each do |gem, version|
75
+ spec = add_gem_dependency(:spec => spec, :gem => gem, :version => version, :type => :development)
76
+ end
77
+ end
72
78
  spec
73
79
  end
74
80
 
@@ -107,9 +113,11 @@ def create_platform_specific_gems
107
113
  Pkg::Config.gem_platform_dependencies.each do |platform, dependency_hash|
108
114
  spec = create_default_gem_spec
109
115
  pf = Gem::Platform.new(platform)
110
- fail "
111
- Platform: '#{platform}' is not recognized by rubygems.
112
- This is probably an erroneous 'gem_platform_dependencies' entry!" if unknown_gems_platform?(pf)
116
+ if unknown_gems_platform?(pf)
117
+ fail "
118
+ Platform: '#{platform}' is not recognized by rubygems.
119
+ This is probably an erroneous 'gem_platform_dependencies' entry!"
120
+ end
113
121
  spec.platform = pf
114
122
  dependency_hash.each do |type, gems|
115
123
  t = case type
data/tasks/jenkins.rake CHANGED
@@ -103,7 +103,7 @@ namespace :pl do
103
103
  # a PE build, so we always this along as an environment variable task
104
104
  # argument if its the case.
105
105
  #
106
- Pkg::Config.task = { :task => "#{build_task}", :args => nil }
106
+ Pkg::Config.task = { :task => build_task.to_s, :args => nil }
107
107
  Pkg::Config.task[:args] = ["PE_BUILD=true"] if @build_pe
108
108
  #
109
109
  # Determine the type of build we're doing to inform jenkins
@@ -150,9 +150,9 @@ namespace :pl do
150
150
  # Construct the parameters, which is an array of hashes we turn into JSON
151
151
  parameters = [{ "name" => "BUILD_PROPERTIES", "file" => "file0" },
152
152
  { "name" => "PROJECT_BUNDLE", "file" => "file1" },
153
- { "name" => "PROJECT", "value" => "#{Pkg::Config.project}" },
154
- { "name" => "BUILD_TYPE", "label" => "#{build_type}" },
155
- { "name" => "METRICS", "value" => "#{metrics}" }]
153
+ { "name" => "PROJECT", "value" => Pkg::Config.project.to_s },
154
+ { "name" => "BUILD_TYPE", "label" => build_type.to_s },
155
+ { "name" => "METRICS", "value" => metrics.to_s }]
156
156
 
157
157
  # Initialize the args array that will hold all of the arguments we pass
158
158
  # to the curl utility method.
@@ -172,7 +172,7 @@ namespace :pl do
172
172
  # Construct the remaining form arguments. For visual clarity, params that are tied
173
173
  # together are on the same line.
174
174
  #
175
- args << [
175
+ args << [
176
176
  "-Fname=BUILD_PROPERTIES", "-Ffile0=@#{properties}",
177
177
  "-Fname=PROJECT_BUNDLE", "-Ffile1=@#{bundle}",
178
178
  "-Fname=PROJECT", "-Fvalue=#{Pkg::Config.project}",
@@ -250,7 +250,7 @@ namespace :pl do
250
250
  end
251
251
 
252
252
  task :uber_ship_lite => "pl:fetch" do
253
- tasks = %w(
253
+ tasks = %w[
254
254
  jenkins:retrieve
255
255
  jenkins:sign_all
256
256
  ship_rpms
@@ -260,9 +260,9 @@ namespace :pl do
260
260
  ship_tar
261
261
  ship_msi
262
262
  ship_gem
263
- )
263
+ ]
264
264
  tasks.map { |t| "pl:#{t}" }.each do |t|
265
- puts "Running #{t} . . ."
265
+ puts "Running \"#{t}\""
266
266
  Rake::Task[t].invoke
267
267
  end
268
268
  # mark the build as successfully shipped
@@ -270,13 +270,16 @@ namespace :pl do
270
270
  # add the release to release-metrics
271
271
  begin
272
272
  Rake::Task["pl:update_release_metrics"].invoke
273
- rescue => e
273
+ rescue StandardError => e
274
274
  fail "Error updating release-metrics:\n#{e}\nYou will need to add this release manually."
275
275
  end
276
276
  end
277
277
 
278
278
  task :stage_nightlies => "pl:fetch" do
279
- tasks = %w(
279
+ # debian weirdness: ship_nightly_debs uses the old methodology that posts to
280
+ # apt.puppet.com; stage_nightly_debs uses the updated methodology that posts to
281
+ # apt.repos.puppet.com
282
+ tasks = %w[
280
283
  jenkins:retrieve
281
284
  jenkins:sign_all
282
285
  ship_nightly_rpms
@@ -284,17 +287,26 @@ namespace :pl do
284
287
  ship_nightly_dmg
285
288
  ship_nightly_swix
286
289
  ship_nightly_msi
287
- )
290
+ ]
288
291
  tasks.map { |t| "pl:#{t}" }.each do |t|
289
- puts "Running #{t}:"
292
+ puts "Running \"#{t}\""
290
293
  Rake::Task[t].invoke
291
294
  end
292
295
  end
293
296
 
294
297
  task :ship_nightlies => "pl:fetch" do
298
+ ## nightlies.puppet.com
295
299
  Rake::Task['pl:jenkins:stage_nightlies'].invoke
296
300
  Rake::Task['pl:remote:update_nightly_repos'].invoke
297
301
  Rake::Task['pl:remote:deploy_nightlies_to_s3'].invoke
302
+
303
+ # This serves as a cheap feature toggle to avoid things not ready to
304
+ # use it. It should be removed in future versions.
305
+ if ENV['NIGHTLY_SHIP_TO_GCP']
306
+ ## apt.repos.puppet.com
307
+ Rake::Task['pl:stage_nightly_debs'].invoke
308
+ Rake::Task['pl:remote:sync_apt_repo_to_gcp'].invoke
309
+ end
298
310
  end
299
311
 
300
312
  task :ship_final => "pl:fetch" do
@@ -324,7 +336,7 @@ namespace :pl do
324
336
 
325
337
  desc "Retrieve packages built by jenkins, sign, and ship all!"
326
338
  task :uber_ship => "pl:fetch" do
327
- uber_tasks = %w(
339
+ uber_tasks = %w[
328
340
  jenkins:retrieve
329
341
  jenkins:sign_all
330
342
  uber_ship
@@ -342,7 +354,7 @@ namespace :pl do
342
354
  remote:deploy_yum_repo_to_s3
343
355
  remote:deploy_downloads_to_s3
344
356
  remote:deploy_to_rsync_server
345
- )
357
+ ]
346
358
 
347
359
  if Pkg::Util.boolean_value(Pkg::Config.answer_override) && !Pkg::Config.foss_only
348
360
  fail "Using ANSWER_OVERRIDE without FOSS_ONLY=true is dangerous!"
@@ -518,7 +530,7 @@ namespace :pl do
518
530
  end
519
531
 
520
532
  # Assemble the JSON string for the JSON parameter
521
- json = JSON.generate("parameter" => [{ "name" => "SHA", "value" => "#{Pkg::Config.ref}" }])
533
+ json = JSON.generate("parameter" => [{ "name" => "SHA", "value" => Pkg::Config.ref.to_s }])
522
534
 
523
535
  # Assemble our arguments to the post
524
536
  args = [
@@ -36,27 +36,27 @@ namespace :pl do
36
36
 
37
37
  # Generate an XML file for every job configuration erb and attempt to
38
38
  # create a jenkins job from that XML config
39
- templates.each do |t|
40
- erb_template = File.join(template_dir, t)
41
- xml_file = File.join(work_dir, t.gsub('.erb', ''))
39
+ templates.each do |template|
40
+ erb_template = File.join(template_dir, template)
41
+ xml_file = File.join(work_dir, template.gsub('.erb', ''))
42
42
  Pkg::Util::File.erb_file(erb_template, xml_file, nil, :binding => Pkg::Config.get_binding)
43
43
  # If we're creating a job meant to run on a windows box, we need to limit the path length
44
44
  # Max path length allowed is 260 chars, which we manage to exceed with this job name. Luckily,
45
45
  # simply using the short sha rather than the long sha gets us just under the length limit. Gross fix,
46
46
  # I know, but hey, it works for now.
47
- if t == "msi.xml.erb"
47
+ if template == "msi.xml.erb"
48
48
  ref = Pkg::Config.short_ref
49
49
  else
50
50
  ref = Pkg::Config.ref
51
51
  end
52
- job_name = "#{Pkg::Config.project}-#{t.gsub('.xml.erb', '')}-#{Pkg::Config.build_date}-#{ref}"
52
+ job_name = "#{Pkg::Config.project}-#{template.gsub('.xml.erb', '')}-#{Pkg::Config.build_date}-#{ref}"
53
53
  puts "Checking for existence of #{job_name}..."
54
54
  if Pkg::Util::Jenkins.jenkins_job_exists?(job_name)
55
55
  raise "Job #{job_name} already exists on #{Pkg::Config.jenkins_build_host}"
56
56
  else
57
57
  Pkg::Util::Execution.retry_on_fail(:times => 3) do
58
58
  url = Pkg::Util::Jenkins.create_jenkins_job(job_name, xml_file)
59
- if t == "packaging.xml.erb"
59
+ if template == "packaging.xml.erb"
60
60
  ENV["PACKAGE_BUILD_URL"] = url
61
61
  end
62
62
  puts "Verifying job created successfully..."
@@ -71,7 +71,7 @@ namespace :pl do
71
71
  packaging_name = "#{Pkg::Config.project}-packaging-#{Pkg::Config.build_date}-#{Pkg::Config.ref}"
72
72
  Pkg::Util::RakeUtils.invoke_task("pl:jenkins:trigger_dynamic_job", packaging_name)
73
73
 
74
- if poll_interval > 0
74
+ if poll_interval.positive?
75
75
  ##
76
76
  # Wait for the '*packaging*' job to finish.
77
77
  #
@@ -155,15 +155,15 @@ namespace :pl do
155
155
  # Construct the parameters, which is an array of hashes we turn into JSON
156
156
  parameters = [{ "name" => "BUILD_PROPERTIES", "file" => "file0" },
157
157
  { "name" => "PROJECT_BUNDLE", "file" => "file1" },
158
- { "name" => "PROJECT", "value" => "#{Pkg::Config.project}" },
159
- { "name" => "METRICS", "value" => "#{metrics}" }]
158
+ { "name" => "PROJECT", "value" => Pkg::Config.project.to_s },
159
+ { "name" => "METRICS", "value" => metrics.to_s }]
160
160
 
161
161
  # Contruct the json string
162
162
  json = JSON.generate("parameter" => parameters)
163
163
 
164
164
  # The args array that holds all of the arguments we pass
165
165
  # to the curl utility method.
166
- curl_args = [
166
+ curl_args = [
167
167
  "-Fname=BUILD_PROPERTIES", "-Ffile0=@#{properties}",
168
168
  "-Fname=PROJECT_BUNDLE", "-Ffile1=@#{bundle}",
169
169
  "-Fname=PROJECT", "-Fvalue=#{Pkg::Config.project}",
@@ -6,6 +6,7 @@
6
6
  # generic tasks with data not generally useful outside the
7
7
  # PL Release team
8
8
  namespace :pl do
9
+ # The equivalent to invoking this task is calling Pkg::Util::File.load_extras(temp_directory)
9
10
  task :load_extras, :tempdir do |t, args|
10
11
  unless ENV['PARAMS_FILE'] && ENV['PARAMS_FILE'] != ''
11
12
  tempdir = args.tempdir
data/tasks/mock.rake CHANGED
@@ -37,17 +37,16 @@ def mock_artifact(mock_config, cmd_args, mockfile)
37
37
 
38
38
  # Return a FileList of the build artifacts
39
39
  return FileList[File.join(result_dir, '*.rpm')]
40
-
41
40
  rescue RuntimeError => error
42
41
  build_log = File.join(result_dir, 'build.log')
43
42
  root_log = File.join(result_dir, 'root.log')
44
43
  content = File.read(build_log) if File.readable?(build_log)
45
44
 
46
45
  if File.readable?(root_log)
47
- $stderr.puts File.read(root_log)
46
+ warn File.read(root_log)
48
47
  end
49
48
  if content and content.lines.count > 2
50
- $stderr.puts content
49
+ warn content
51
50
  end
52
51
 
53
52
  # Any useful info has now been gleaned from the logs in the case of a
@@ -99,7 +98,7 @@ def mock_el_family(mock_config)
99
98
  family = mock_config.match(/^pupent-(\d\.\d-)?([a-z]+)([0-9]+)-(.*)$/)[2]
100
99
  else
101
100
  first, second = mock_config.split('-')
102
- if first == 'el' || first == 'fedora'
101
+ if ['el', 'fedora'].include?(first)
103
102
  family = first
104
103
  elsif first == 'pl'
105
104
  if second.match(/^\d+$/)
@@ -122,7 +121,7 @@ def mock_el_ver(mock_config)
122
121
  version = mock_config.match(/^pupent-(\d\.\d-)?([a-z]+)([0-9]+)-(.*)$/)[3]
123
122
  else
124
123
  first, second, third = mock_config.split('-')
125
- if (first == 'el' || first == 'fedora') || (first == 'pl' && second.match(/^\d+$/))
124
+ if ['el', 'fedora'].include?(first) || (first == 'pl' && second.match(/^\d+$/))
126
125
  version = second
127
126
  else
128
127
  version = third
@@ -138,11 +137,11 @@ end
138
137
  def rpm_family_and_version
139
138
  if Pkg::Config.vanagon_project
140
139
  Pkg::Config.rpm_targets.split(' ').map do |target|
141
- rpm_el_family, rpm_el_version, arch = target.split('-')
140
+ rpm_el_family, rpm_el_version, = target.split('-')
142
141
  "#{rpm_el_family}-#{rpm_el_version}"
143
142
  end
144
143
  else
145
- Pkg::Config.final_mocks.split.map { |mock| "#{mock_el_family(mock)}-#{mock_el_ver(mock) }" }
144
+ Pkg::Config.final_mocks.split.map { |mock| "#{mock_el_family(mock)}-#{mock_el_ver(mock)}" }
146
145
  end
147
146
  end
148
147
 
@@ -174,7 +173,7 @@ def mock_defines(mock_config)
174
173
  version = mock_el_ver(mock_config)
175
174
  defines = ""
176
175
  if version =~ /^(4|5)$/ or family == "sles"
177
- defines = %Q(--define "dist .#{family}#{version}" \
176
+ defines = %(--define "dist .#{family}#{version}" \
178
177
  --define "_source_filedigest_algorithm 1" \
179
178
  --define "_binary_filedigest_algorithm 1" \
180
179
  --define "_binary_payload w9.gzdio" \
@@ -318,7 +317,7 @@ end
318
317
  def randomize_mock_config_dir(mock_config, mockfile)
319
318
  # basedir will be the location of our temporary mock root
320
319
  basedir = Pkg::Util::File.mktemp
321
- chown("#{ENV['USER']}", "mock", basedir)
320
+ chown((ENV['USER']).to_s, "mock", basedir)
322
321
  # Mock requires the sticky bit be set on the basedir
323
322
  chmod(02775, basedir)
324
323
  mockfile ||= File.join('/', 'etc', 'mock', "#{mock_config}.cfg")