packaging 0.104.0 → 0.106.1

Sign up to get free protection for your applications and to get access to all the features.
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")