packaging 0.99.4 → 0.99.5
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.
- checksums.yaml +4 -4
- data/lib/packaging/config/params.rb +1 -6
- data/lib/packaging/gem.rb +0 -78
- data/lib/packaging/nuget.rb +1 -1
- data/lib/packaging/retrieve.rb +2 -1
- data/spec/fixtures/config/ext/build_defaults.yaml +2 -0
- data/spec/fixtures/config/ext/project_data.yaml +2 -0
- data/tasks/jenkins.rake +1 -0
- data/tasks/pe_ship.rake +6 -5
- data/tasks/retrieve.rake +6 -0
- data/tasks/ship.rake +6 -32
- data/tasks/sign.rake +2 -2
- metadata +3 -3
- data/spec/fixtures/config/ext/build_defaults.yaml +0 -1
- data/spec/fixtures/config/ext/project_data.yaml +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88e28e28af482a06291f1f585ede34b6426cb3d3
|
4
|
+
data.tar.gz: 14a563722d00b01bf7237c6395193195f71e8206
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a667b0640aa6361ddb3b7343404102c8461d290ed4f2651fe1b489b85d04a3dc0f5a4d75fa36f6aa186f8cd3191c8d1fdfe306a05d3219e977e40ad3505087f7
|
7
|
+
data.tar.gz: 1fd1370fc99e8bafc3881847bd2f909aa6a1d4f8971c654393f62484bf45b2970dec5ec6e0668bdafb8debb37858efe2f812208c409c6252ac57b7836b00482e
|
@@ -76,8 +76,6 @@ module Pkg::Params
|
|
76
76
|
:gpg_name,
|
77
77
|
:homepage,
|
78
78
|
:internal_gem_host,
|
79
|
-
:internal_nexus_host,
|
80
|
-
:internal_stickler_host,
|
81
79
|
:ips_build_host,
|
82
80
|
:ips_host,
|
83
81
|
:ips_inter_cert,
|
@@ -268,6 +266,7 @@ module Pkg::Params
|
|
268
266
|
{ :var => :pe_feature_branch, :envvar => :PE_FEATURE_BRANCH },
|
269
267
|
{ :var => :pe_version, :envvar => :PE_VER },
|
270
268
|
{ :var => :privatekey_pem, :envvar => :PRIVATE_PEM },
|
269
|
+
{ :var => :project, :envvar => :PROJECT_OVERRIDE },
|
271
270
|
{ :var => :project_root, :envvar => :PROJECT_ROOT },
|
272
271
|
{ :var => :random_mockroot, :envvar => :RANDOM_MOCKROOT, :type => :bool },
|
273
272
|
{ :var => :rc_mocks, :envvar => :MOCK },
|
@@ -292,8 +291,6 @@ module Pkg::Params
|
|
292
291
|
{ :var => :yum_repo_path, :envvar => :YUM_REPO },
|
293
292
|
{ :var => :yum_staging_server, :envvar => :YUM_STAGING_SERVER },
|
294
293
|
{ :var => :internal_gem_host, :envvar => :INTERNAL_GEM_HOST },
|
295
|
-
{ :var => :internal_nexus_host, :envvar => :INTERNAL_NEXUS_HOST },
|
296
|
-
{ :var => :internal_stickler_host, :envvar => :INTERNAL_STICKLER_HOST },
|
297
294
|
]
|
298
295
|
# Default values that are supplied if the user does not supply them
|
299
296
|
#
|
@@ -332,8 +329,6 @@ module Pkg::Params
|
|
332
329
|
# in case it is not set.
|
333
330
|
#
|
334
331
|
REASSIGNMENTS = [
|
335
|
-
{ :oldvar => :internal_gem_host, :newvar => :internal_nexus_host },
|
336
|
-
{ :oldvar => :internal_gem_host, :newvar => :internal_stickler_host },
|
337
332
|
# These are fall-through values for shipping endpoints
|
338
333
|
{ :oldvar => :staging_server, :newvar => :apt_staging_server },
|
339
334
|
{ :oldvar => :staging_server, :newvar => :dmg_staging_server },
|
data/lib/packaging/gem.rb
CHANGED
@@ -1,91 +1,13 @@
|
|
1
1
|
module Pkg::Gem
|
2
|
-
@nexus_config = "#{ENV['HOME']}/.gem/nexus"
|
3
|
-
|
4
2
|
class << self
|
5
3
|
# This is preserved because I don't want to update the deprecated code path
|
6
4
|
# yet; I'm not entirely sure I've fixed everything that might attempt
|
7
5
|
# to call this method so this is now a wrapper for a wrapper.
|
8
6
|
def ship(file)
|
9
|
-
ship_to_stickler(file)
|
10
|
-
ship_to_nexus(file)
|
11
7
|
rsync_to_downloads(file)
|
12
8
|
ship_to_rubygems(file)
|
13
9
|
end
|
14
10
|
|
15
|
-
def load_nexus_config
|
16
|
-
if Pkg::Util::File.file_exists?(@nexus_config)
|
17
|
-
config = YAML.load_file(@nexus_config)
|
18
|
-
end
|
19
|
-
config || {}
|
20
|
-
end
|
21
|
-
|
22
|
-
def write_nexus_config
|
23
|
-
hash = load_nexus_config
|
24
|
-
if hash["GEM_INTERNAL"].nil? || hash["GEM_INTERNAL"][:authorization].nil?
|
25
|
-
puts "Please enter nexus username:"
|
26
|
-
username = Pkg::Util.get_input
|
27
|
-
puts "Please enter nexus password:"
|
28
|
-
password = Pkg::Util.get_input(false)
|
29
|
-
hash["GEM_INTERNAL"] = { :authorization => "Basic #{Pkg::Util.base64_encode("#{username}:#{password}")}" }
|
30
|
-
end
|
31
|
-
if hash["GEM_INTERNAL"][:url].nil? || hash["GEM_INTERNAL"][:url] != Pkg::Config.internal_nexus_host
|
32
|
-
hash["GEM_INTERNAL"][:url] = Pkg::Config.internal_nexus_host
|
33
|
-
end
|
34
|
-
File.open(@nexus_config, "w") do |file|
|
35
|
-
file.write(hash.to_yaml)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
# Ship a Ruby gem file to a Nexus server, because
|
40
|
-
# you've lost the ability to feel joy anymore.
|
41
|
-
def ship_to_nexus(file)
|
42
|
-
write_nexus_config
|
43
|
-
cmd = "gem nexus #{file} --repo GEM_INTERNAL"
|
44
|
-
if ENV['DRYRUN']
|
45
|
-
puts "[DRY-RUN] #{cmd}"
|
46
|
-
else
|
47
|
-
stdout, _, _ = Pkg::Util::Execution.capture3(cmd, true)
|
48
|
-
# The `gem nexus` command always returns `0` regardless of what the
|
49
|
-
# command results in. In order to properly handle fail cases, this
|
50
|
-
# checks for the success case and fails otherwise. The `ex` command
|
51
|
-
# above will print any output, so the user should have enough info
|
52
|
-
# to debug the failure, and potentially update this fail case if
|
53
|
-
# needed.
|
54
|
-
fail unless stdout.include? "Created"
|
55
|
-
puts "#{file} pushed to nexus server at #{Pkg::Config.internal_nexus_host}"
|
56
|
-
end
|
57
|
-
rescue => e
|
58
|
-
puts "###########################################"
|
59
|
-
puts "# Nexus failed, ensure the nexus gem is installed,"
|
60
|
-
puts "# you have access to #{Pkg::Config.internal_nexus_host}"
|
61
|
-
puts "# and your settings in #{@nexus_config} are correct"
|
62
|
-
puts "###########################################"
|
63
|
-
puts
|
64
|
-
puts e
|
65
|
-
raise e
|
66
|
-
end
|
67
|
-
|
68
|
-
# Ship a Ruby gem file to a Stickler server, because
|
69
|
-
# you've lost the ability to feel joy anymore.
|
70
|
-
def ship_to_stickler(file)
|
71
|
-
Pkg::Util::Tool.check_tool("stickler")
|
72
|
-
cmd = "stickler push #{file} --server=#{Pkg::Config.internal_stickler_host} 2>/dev/null"
|
73
|
-
if ENV['DRYRUN']
|
74
|
-
puts "[DRY-RUN] #{cmd}"
|
75
|
-
else
|
76
|
-
Pkg::Util::Execution.capture3(cmd)
|
77
|
-
puts "#{file} pushed to stickler server at #{Pkg::Config.internal_stickler_host}"
|
78
|
-
end
|
79
|
-
rescue => e
|
80
|
-
puts "###########################################"
|
81
|
-
puts "# Stickler failed, ensure it's installed"
|
82
|
-
puts "# and you have access to #{Pkg::Config.internal_stickler_host}"
|
83
|
-
puts "###########################################"
|
84
|
-
puts
|
85
|
-
puts e
|
86
|
-
raise e
|
87
|
-
end
|
88
|
-
|
89
11
|
# Use rsync to deploy a file and any associated detached signatures,
|
90
12
|
# checksums, or other glob-able artifacts to an external download server.
|
91
13
|
def rsync_to_downloads(file)
|
data/lib/packaging/nuget.rb
CHANGED
@@ -2,7 +2,7 @@ module Pkg::Nuget
|
|
2
2
|
class << self
|
3
3
|
def ship(packages)
|
4
4
|
#
|
5
|
-
# Support shipping of Nuget style packages to
|
5
|
+
# Support shipping of Nuget style packages to an Artifactory based nuget feed
|
6
6
|
# Using curl to submit the packages rather than windows based choco/mono.
|
7
7
|
# This approach gives more flexibility and fits in with the current Puppet
|
8
8
|
# release automation practices using linux/mac systems.
|
data/lib/packaging/retrieve.rb
CHANGED
@@ -55,7 +55,8 @@ module Pkg::Retrieve
|
|
55
55
|
end
|
56
56
|
platform_data = Pkg::Util::Serialization.load_yaml(yaml_path)[:platform_data]
|
57
57
|
platform_data.each do |platform, paths|
|
58
|
-
|
58
|
+
path_to_retrieve = File.dirname(paths[:artifact])
|
59
|
+
default_wget(local_target, "#{build_url}/#{path_to_retrieve}/") if Pkg::Config.foss_platforms.include?(platform)
|
59
60
|
end
|
60
61
|
end
|
61
62
|
|
data/tasks/jenkins.rake
CHANGED
data/tasks/pe_ship.rake
CHANGED
@@ -14,9 +14,9 @@ if Pkg::Config.build_pe
|
|
14
14
|
end
|
15
15
|
if Pkg::Config.team == 'release'
|
16
16
|
|
17
|
-
# If this is not a feature branch, we need to link the
|
18
|
-
#
|
19
|
-
unless Pkg::Config.pe_feature_branch
|
17
|
+
# If this is not a feature branch or release branch, we need to link the
|
18
|
+
# shipped packages into the feature repos and update their metadata.
|
19
|
+
unless Pkg::Config.pe_feature_branch || Pkg::Config.pe_release_branch
|
20
20
|
puts "Linking RPMs to feature repo"
|
21
21
|
Pkg::Util::RakeUtils.invoke_task("pe:remote:link_shipped_rpms_to_feature_repo")
|
22
22
|
Pkg::Util::RakeUtils.invoke_task("pe:remote:update_yum_repo")
|
@@ -126,8 +126,9 @@ if Pkg::Config.build_pe
|
|
126
126
|
files += Dir["pkg/pe/deb/#{dist}/*"].select { |f| f !~ /^.*\.deb$/ }.map { |f| "#{base_path}/#{dist}-source/#{File.basename(f)}" }
|
127
127
|
end
|
128
128
|
end
|
129
|
-
# If this is not a feature branch, we need to link the
|
130
|
-
|
129
|
+
# If this is not a feature branch or release branch, we need to link the
|
130
|
+
# shipped packages into the feature repos
|
131
|
+
unless Pkg::Config.pe_feature_branch || Pkg::Config.pe_release_branch
|
131
132
|
puts "Linking DEBs to feature repo"
|
132
133
|
Pkg::Util::RakeUtils.invoke_task("pe:remote:link_shipped_debs_to_feature_repo")
|
133
134
|
end
|
data/tasks/retrieve.rake
CHANGED
@@ -14,6 +14,9 @@ namespace :pl do
|
|
14
14
|
namespace :jenkins do
|
15
15
|
desc "Retrieve packages from the distribution server\. Check out commit to retrieve"
|
16
16
|
task :retrieve, [:remote_target, :local_target] => 'pl:fetch' do |t, args|
|
17
|
+
unless Pkg::Config.project
|
18
|
+
fail "You must set the 'project' in build_defaults.yaml or with the 'PROJECT' environment variable."
|
19
|
+
end
|
17
20
|
remote_target = args.remote_target || "artifacts"
|
18
21
|
local_target = args.local_target || "pkg"
|
19
22
|
mkdir_p local_target
|
@@ -35,6 +38,9 @@ if Pkg::Config.build_pe
|
|
35
38
|
namespace :jenkins do
|
36
39
|
desc "Retrieve packages from the distribution server\. Check out commit to retrieve"
|
37
40
|
task :retrieve, [:remote_target, :local_target] => 'pl:fetch' do |t, args|
|
41
|
+
unless Pkg::Config.project
|
42
|
+
fail "You must set the 'project' in build_defaults.yaml or with the 'PROJECT' environment variable."
|
43
|
+
end
|
38
44
|
remote_target = args.remote_target || "artifacts"
|
39
45
|
local_target = args.local_target || "pkg"
|
40
46
|
build_url = "http://#{Pkg::Config.builds_server}/#{Pkg::Config.project}/#{Pkg::Config.ref}/#{remote_target}"
|
data/tasks/ship.rake
CHANGED
@@ -309,22 +309,6 @@ namespace :pl do
|
|
309
309
|
unless Pkg::Config.internal_gem_host
|
310
310
|
warn 'Value `Pkg::Config.internal_gem_host` not defined; skipping internal ship'
|
311
311
|
end
|
312
|
-
|
313
|
-
puts "Do you want to ship #{args[:file]} to the internal stickler server(#{Pkg::Config.internal_stickler_host})?"
|
314
|
-
if Pkg::Util.ask_yes_or_no
|
315
|
-
puts "Shipping gem #{args[:file]} to internal Gem server (#{Pkg::Config.internal_stickler_host})"
|
316
|
-
Pkg::Util::Execution.retry_on_fail(times: 3) do
|
317
|
-
Pkg::Gem.ship_to_stickler(args[:file])
|
318
|
-
end
|
319
|
-
end
|
320
|
-
|
321
|
-
puts "Do you want to ship #{args[:file]} to the internal nexus server(#{Pkg::Config.internal_nexus_host})?"
|
322
|
-
if Pkg::Util.ask_yes_or_no
|
323
|
-
puts "Shipping gem #{args[:file]} to internal Gem server (#{Pkg::Config.internal_nexus_host})"
|
324
|
-
Pkg::Util::Execution.retry_on_fail(times: 3) do
|
325
|
-
Pkg::Gem.ship_to_nexus(args[:file])
|
326
|
-
end
|
327
|
-
end
|
328
312
|
end
|
329
313
|
|
330
314
|
desc "Ship built gems to public Downloads server (#{Pkg::Config.gem_host})"
|
@@ -511,22 +495,6 @@ namespace :pl do
|
|
511
495
|
end
|
512
496
|
|
513
497
|
if Pkg::Config.build_gem
|
514
|
-
# Do we have stickler and nexus?
|
515
|
-
if Pkg::Util::Misc.check_gem('stickler')
|
516
|
-
`stickler list --server #{Pkg::Config.internal_stickler_host} > /dev/null 2>&1`
|
517
|
-
unless $CHILD_STATUS.zero?
|
518
|
-
errs << "Listing gems at the stickler server #{Pkg::Config.internal_stickler_host} failed!"
|
519
|
-
end
|
520
|
-
else
|
521
|
-
errs << 'gem stickler not found'
|
522
|
-
end
|
523
|
-
|
524
|
-
errs << 'gem nexus not found' unless Pkg::Util::Misc.check_gem('nexus')
|
525
|
-
`gem list --source #{Pkg::Config.internal_nexus_host} > /dev/null 2>&1`
|
526
|
-
unless $CHILD_STATUS.zero?
|
527
|
-
errs << "Listing gems at the nexus server #{Pkg::Config.internal_nexus_host} failed!"
|
528
|
-
end
|
529
|
-
|
530
498
|
# Do we have rubygems access set up
|
531
499
|
if Pkg::Util::File.file_exists?("#{ENV['HOME']}/.gem/credentials")
|
532
500
|
# Do we have permissions to publish this gem on rubygems
|
@@ -559,6 +527,9 @@ namespace :pl do
|
|
559
527
|
desc 'ship pkg directory contents to artifactory'
|
560
528
|
task :ship_to_artifactory, :local_dir do |_t, args|
|
561
529
|
Pkg::Util::RakeUtils.invoke_task('pl:fetch')
|
530
|
+
unless Pkg::Config.project
|
531
|
+
fail "You must set the 'project' in build_defaults.yaml or with the 'PROJECT' environment variable."
|
532
|
+
end
|
562
533
|
artifactory = Pkg::ManageArtifactory.new(Pkg::Config.project, Pkg::Config.ref)
|
563
534
|
|
564
535
|
local_dir = args.local_dir || 'pkg'
|
@@ -570,6 +541,9 @@ namespace :pl do
|
|
570
541
|
desc 'Ship pkg directory contents to distribution server'
|
571
542
|
task :ship, :target, :local_dir do |_t, args|
|
572
543
|
Pkg::Util::RakeUtils.invoke_task('pl:fetch')
|
544
|
+
unless Pkg::Config.project
|
545
|
+
fail "You must set the 'project' in build_defaults.yaml or with the 'PROJECT' environment variable."
|
546
|
+
end
|
573
547
|
target = args.target || 'artifacts'
|
574
548
|
local_dir = args.local_dir || 'pkg'
|
575
549
|
project_basedir = "#{Pkg::Config.jenkins_repo_path}/#{Pkg::Config.project}/#{Pkg::Config.ref}"
|
data/tasks/sign.rake
CHANGED
@@ -162,7 +162,7 @@ namespace :pl do
|
|
162
162
|
end
|
163
163
|
|
164
164
|
##
|
165
|
-
# This crazy piece of work establishes a remote repo on the
|
165
|
+
# This crazy piece of work establishes a remote repo on the signing
|
166
166
|
# server, ships our packages out to it, signs them, and brings them back.
|
167
167
|
#
|
168
168
|
namespace :jenkins do
|
@@ -212,4 +212,4 @@ DOC
|
|
212
212
|
puts "Signed packages staged in #{$DEFAULT_DIRECTORY}/ directory"
|
213
213
|
end
|
214
214
|
end
|
215
|
-
end
|
215
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: packaging
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.99.
|
4
|
+
version: 0.99.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -208,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
208
208
|
version: '0'
|
209
209
|
requirements: []
|
210
210
|
rubyforge_project:
|
211
|
-
rubygems_version: 2.
|
211
|
+
rubygems_version: 2.4.5.1
|
212
212
|
signing_key:
|
213
213
|
specification_version: 4
|
214
214
|
summary: Puppet Labs' packaging automation
|
@@ -1 +0,0 @@
|
|
1
|
-
spec/fixtures/config/ext/../params.yaml
|
@@ -1 +0,0 @@
|
|
1
|
-
spec/fixtures/config/ext/../params.yaml
|