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.
- checksums.yaml +4 -4
- data/README.md +4 -4
- data/lib/packaging/archive.rb +2 -2
- data/lib/packaging/artifactory/extensions.rb +1 -0
- data/lib/packaging/artifactory.rb +27 -23
- data/lib/packaging/config/params.rb +191 -193
- data/lib/packaging/config/validations.rb +0 -2
- data/lib/packaging/config.rb +8 -8
- data/lib/packaging/deb/repo.rb +11 -14
- data/lib/packaging/gem.rb +2 -2
- data/lib/packaging/metrics.rb +7 -7
- data/lib/packaging/nuget.rb +0 -1
- data/lib/packaging/paths.rb +11 -13
- data/lib/packaging/platforms.rb +14 -52
- data/lib/packaging/repo.rb +11 -12
- data/lib/packaging/retrieve.rb +1 -1
- data/lib/packaging/rpm/repo.rb +8 -8
- data/lib/packaging/sign/dmg.rb +8 -7
- data/lib/packaging/sign/ips.rb +64 -32
- data/lib/packaging/sign/msi.rb +48 -48
- data/lib/packaging/sign/rpm.rb +1 -1
- data/lib/packaging/sign.rb +0 -1
- data/lib/packaging/tar.rb +2 -4
- data/lib/packaging/util/date.rb +0 -1
- data/lib/packaging/util/distribution_server.rb +2 -2
- data/lib/packaging/util/execution.rb +2 -4
- data/lib/packaging/util/file.rb +81 -3
- data/lib/packaging/util/git.rb +1 -3
- data/lib/packaging/util/git_tags.rb +3 -3
- data/lib/packaging/util/gpg.rb +3 -4
- data/lib/packaging/util/jenkins.rb +0 -3
- data/lib/packaging/util/misc.rb +1 -1
- data/lib/packaging/util/net.rb +25 -23
- data/lib/packaging/util/repo.rb +17 -0
- data/lib/packaging/util/serialization.rb +1 -2
- data/lib/packaging/util/ship.rb +150 -3
- data/lib/packaging/util/sign.rb +47 -0
- data/lib/packaging/util/tool.rb +1 -4
- data/lib/packaging/util/version.rb +1 -5
- data/lib/packaging/util.rb +3 -1
- data/lib/packaging.rb +1 -2
- data/spec/lib/packaging/config_spec.rb +3 -3
- data/spec/lib/packaging/deb/repo_spec.rb +1 -1
- data/spec/lib/packaging/paths_spec.rb +2 -3
- data/spec/lib/packaging/platforms_spec.rb +6 -6
- data/spec/lib/packaging/sign_spec.rb +1 -13
- data/spec/lib/packaging/util/git_spec.rb +2 -2
- data/spec/lib/packaging/util/git_tag_spec.rb +5 -5
- data/spec/lib/packaging/util/ship_spec.rb +0 -2
- data/tasks/30_metrics.rake +2 -2
- data/tasks/apple.rake +8 -14
- data/tasks/archive.rake +1 -2
- data/tasks/deb.rake +7 -8
- data/tasks/deb_repos.rake +1 -0
- data/tasks/doc.rake +5 -3
- data/tasks/education.rake +2 -4
- data/tasks/fetch.rake +1 -0
- data/tasks/gem.rake +20 -12
- data/tasks/jenkins.rake +27 -15
- data/tasks/jenkins_dynamic.rake +10 -10
- data/tasks/load_extras.rake +1 -0
- data/tasks/mock.rake +8 -9
- data/tasks/nightly_repos.rake +14 -14
- data/tasks/pe_ship.rake +10 -17
- data/tasks/retrieve.rake +2 -2
- data/tasks/rpm.rake +1 -1
- data/tasks/rpm_repos.rake +1 -0
- data/tasks/ship.rake +24 -12
- data/tasks/sign.rake +6 -6
- data/tasks/tar.rake +2 -3
- data/tasks/update.rake +2 -2
- data/tasks/vendor_gems.rake +5 -7
- data/tasks/version.rake +2 -2
- metadata +42 -40
data/tasks/nightly_repos.rake
CHANGED
@@ -21,11 +21,11 @@ namespace :pl do
|
|
21
21
|
remote_repo = Pkg::Util::Net.remote_unpack_git_bundle(signing_server, 'HEAD', nil, signing_bundle)
|
22
22
|
build_params = Pkg::Util::Net.remote_buildparams(signing_server, Pkg::Config)
|
23
23
|
Pkg::Util::Net.rsync_to('repos', signing_server, remote_repo)
|
24
|
-
rake_command =
|
25
|
-
cd #{remote_repo} ;
|
26
|
-
#{Pkg::Util::Net.remote_bundle_install_command}
|
27
|
-
bundle exec rake pl:jenkins:sign_repos GPG_KEY=#{Pkg::Util::Gpg.key} PARAMS_FILE=#{build_params}
|
28
|
-
DOC
|
24
|
+
rake_command = <<~DOC
|
25
|
+
cd #{remote_repo} ;
|
26
|
+
#{Pkg::Util::Net.remote_bundle_install_command}
|
27
|
+
bundle exec rake pl:jenkins:sign_repos GPG_KEY=#{Pkg::Util::Gpg.key} PARAMS_FILE=#{build_params}
|
28
|
+
DOC
|
29
29
|
Pkg::Util::Net.remote_execute(signing_server, rake_command)
|
30
30
|
Pkg::Util::Net.rsync_from("#{remote_repo}/repos/", signing_server, target)
|
31
31
|
Pkg::Util::Net.remote_execute(signing_server, "rm -rf #{remote_repo}")
|
@@ -54,7 +54,7 @@ DOC
|
|
54
54
|
end
|
55
55
|
|
56
56
|
# This task should be invoked after prepare_signed_repos, so that there are repos to pack up.
|
57
|
-
task :pack_signed_repo, [
|
57
|
+
task :pack_signed_repo, %i[path_to_repo name_of_archive versioning] => ["pl:fetch"] do |t, args|
|
58
58
|
# path_to_repo should be relative to ./pkg
|
59
59
|
path_to_repo = args.path_to_repo or fail ":path_to_repo is a required argument for #{t}"
|
60
60
|
name_of_archive = args.name_of_archive or fail ":name_of_archive is a required argument for #{t}"
|
@@ -62,13 +62,13 @@ DOC
|
|
62
62
|
Pkg::Repo.create_signed_repo_archive(path_to_repo, name_of_archive, versioning)
|
63
63
|
end
|
64
64
|
|
65
|
-
task :pack_all_signed_repos_individually, [
|
65
|
+
task :pack_all_signed_repos_individually, %i[name_of_archive versioning] => ["pl:fetch"] do |t, args|
|
66
66
|
name_of_archive = args.name_of_archive or fail ":name_of_archive is a required argument for #{t}"
|
67
67
|
versioning = args.versioning or fail ":versioning is a required argument for #{t}"
|
68
68
|
Pkg::Repo.create_all_repo_archives(name_of_archive, versioning)
|
69
69
|
end
|
70
70
|
|
71
|
-
task :prepare_signed_repos, [
|
71
|
+
task :prepare_signed_repos, %i[target_host target_prefix versioning] => ["clean", "pl:fetch"] do |t, args|
|
72
72
|
target_host = args.target_host or fail ":target_host is a required argument to #{t}"
|
73
73
|
target_prefix = args.target_prefix or fail ":target_prefix is a required argument for #{t}"
|
74
74
|
versioning = args.versioning or fail ":versioning is a required argument for #{t}"
|
@@ -140,7 +140,7 @@ DOC
|
|
140
140
|
end
|
141
141
|
end
|
142
142
|
|
143
|
-
task :deploy_signed_repos, [
|
143
|
+
task :deploy_signed_repos, %i[target_host target_basedir foss_only] => "pl:fetch" do |t, args|
|
144
144
|
target_host = args.target_host or fail ":target_host is a required argument to #{t}"
|
145
145
|
target_basedir = args.target_basedir or fail ":target_basedir is a required argument to #{t}"
|
146
146
|
include_paths = []
|
@@ -158,11 +158,11 @@ DOC
|
|
158
158
|
|
159
159
|
# Get the directories together - we need to figure out which bits to ship based on the include_path
|
160
160
|
# First we get the build itself
|
161
|
-
Pkg::Util::Execution.capture3(%(find #{include_paths.map { |path| "pkg/#{Pkg::Config.project}/**/#{path}" }.join(' ')
|
161
|
+
Pkg::Util::Execution.capture3(%(find #{include_paths.map { |path| "pkg/#{Pkg::Config.project}/**/#{path}" }.join(' ')} | sort > include_file))
|
162
162
|
Pkg::Util::Execution.capture3(%(mkdir -p tmp && tar -T include_file -cf - | (cd ./tmp && tar -xf -)))
|
163
163
|
|
164
164
|
# Then we find grab the appropriate meta-data only
|
165
|
-
Pkg::Util::Execution.capture3(%(find #{include_paths.map { |path| "pkg/#{Pkg::Config.project}-latest/#{path}" unless path.include?
|
165
|
+
Pkg::Util::Execution.capture3(%(find #{include_paths.map { |path| "pkg/#{Pkg::Config.project}-latest/#{path}" unless path.include? 'repos' }.join(' ')} | sort > include_file_latest))
|
166
166
|
|
167
167
|
#include /repos in the include_file_latest so we correctly include the symlink in the final file list to ship
|
168
168
|
Pkg::Util::Execution.capture3(%(echo "pkg/#{Pkg::Config.project}-latest/repos" >> include_file_latest))
|
@@ -173,7 +173,7 @@ DOC
|
|
173
173
|
# First we ship the latest and clean up any repo-configs that are no longer valid with --delete-after
|
174
174
|
Pkg::Util::Net.rsync_to("#{Pkg::Config.project}-latest", target_host, target_basedir, extra_flags: ["--delete-after", "--keep-dirlinks"])
|
175
175
|
# Then we ship the sha version with default rsync flags
|
176
|
-
Pkg::Util::Net.rsync_to(
|
176
|
+
Pkg::Util::Net.rsync_to(Pkg::Config.project.to_s, target_host, target_basedir)
|
177
177
|
end
|
178
178
|
|
179
179
|
puts "'#{Pkg::Config.ref}' of '#{Pkg::Config.project}' has been shipped to '#{target_host}:#{target_basedir}'"
|
@@ -225,7 +225,7 @@ DOC
|
|
225
225
|
# a github ref. Valid values are 'version' and 'ref'
|
226
226
|
# @param pe_version the PE-version to deploy to.
|
227
227
|
# ex: 2015.2
|
228
|
-
task :link_signed_repos, [
|
228
|
+
task :link_signed_repos, %i[target_host remote_dir versioning pe_version] => ["pl:fetch"] do |t, args|
|
229
229
|
target_host = args.target_host or fail ":target_host is a required argument for #{t}"
|
230
230
|
remote_dir = args.remote_dir or fail ":remote_dir is a required argument for #{t}"
|
231
231
|
versioning = args.versioning or fail ":versioning is a required argument for #{t}"
|
@@ -255,7 +255,7 @@ DOC
|
|
255
255
|
Pkg::Util::RakeUtils.invoke_task("pl:jenkins:generate_signed_repos", 'nightly')
|
256
256
|
end
|
257
257
|
|
258
|
-
task :deploy_nightly_repos, [
|
258
|
+
task :deploy_nightly_repos, %i[target_host target_basedir] => ["pl:fetch"] do |t, args|
|
259
259
|
target_host = args.target_host or fail ":target_host is a required argument to #{t}"
|
260
260
|
target_basedir = args.target_basedir or fail ":target_basedir is a required argument to #{t}"
|
261
261
|
Pkg::Util::RakeUtils.invoke_task("pl:jenkins:prepare_signed_repos", target_host, 'nightly', 'ref')
|
data/tasks/pe_ship.rake
CHANGED
@@ -74,7 +74,6 @@ if Pkg::Config.build_pe
|
|
74
74
|
Rake::Task["pe:remote:apt"].reenable
|
75
75
|
Rake::Task["pe:remote:apt"].invoke(target_path, dist)
|
76
76
|
end
|
77
|
-
|
78
77
|
end
|
79
78
|
end
|
80
79
|
|
@@ -111,19 +110,15 @@ if Pkg::Config.build_pe
|
|
111
110
|
end
|
112
111
|
|
113
112
|
unless Dir["pkg/pe/deb/#{dist}/*_all.deb"].empty?
|
114
|
-
Pkg::Platforms.arches_for_codename(dist).each do |
|
115
|
-
Pkg::Util::Net.rsync_to("pkg/pe/deb/#{dist}/*_all.deb", Pkg::Config.apt_host, "#{base_path}/#{dist}-#{
|
113
|
+
Pkg::Platforms.arches_for_codename(dist).each do |a|
|
114
|
+
Pkg::Util::Net.rsync_to("pkg/pe/deb/#{dist}/*_all.deb", Pkg::Config.apt_host, "#{base_path}/#{dist}-#{a}/")
|
116
115
|
end
|
117
116
|
end
|
118
117
|
|
119
|
-
unless Dir["pkg/pe/deb/#{dist}/*"].
|
118
|
+
unless Dir["pkg/pe/deb/#{dist}/*"].reject { |i| i =~ /^.*\.deb$/ }.empty?
|
120
119
|
# Ship source files to source dir, e.g. 'squeeze-source'
|
121
120
|
Pkg::Util::Net.rsync_to("pkg/pe/deb/#{dist}/*", Pkg::Config.apt_host, "#{base_path}/#{dist}-source", extra_flags: ["--exclude '*.deb'", "--ignore-existing"])
|
122
121
|
end
|
123
|
-
|
124
|
-
files = Dir["pkg/pe/deb/#{dist}/*{_#{arch},all}.deb"].map { |f| "#{archive_path}/#{File.basename(f)}" }
|
125
|
-
|
126
|
-
files += Dir["pkg/pe/deb/#{dist}/*"].select { |f| f !~ /^.*\.deb$/ }.map { |f| "#{base_path}/#{dist}-source/#{File.basename(f)}" }
|
127
122
|
end
|
128
123
|
end
|
129
124
|
# If this is not a feature branch or release branch, we need to link the
|
@@ -137,14 +132,13 @@ if Pkg::Config.build_pe
|
|
137
132
|
namespace :remote do
|
138
133
|
desc "Update remote rpm repodata for PE on #{Pkg::Config.yum_host}"
|
139
134
|
task :update_yum_repo => "pl:fetch" do
|
140
|
-
|
141
135
|
# Paths to the repos.
|
142
136
|
repo_base_path = Pkg::Config.yum_target_path
|
143
137
|
|
144
138
|
# This entire command is going to be passed across SSH, but it's unwieldy on a
|
145
139
|
# single line. By breaking it into a series of concatenated strings, we can maintain
|
146
140
|
# a semblance of formatting and structure (nevermind readability).
|
147
|
-
command = %(for dir in #{repo_base_path}/{#{rpm_family_and_version.join(
|
141
|
+
command = %(for dir in #{repo_base_path}/{#{rpm_family_and_version.join(',')}}-*; do)
|
148
142
|
command += %( sudo createrepo --checksum=sha --checkts --update --delta-workers=0 --quiet --database --update $dir; )
|
149
143
|
command += %(done; )
|
150
144
|
command += %(sync)
|
@@ -159,7 +153,7 @@ if Pkg::Config.build_pe
|
|
159
153
|
incoming_dir or fail "Adding packages to apt repo requires an incoming directory"
|
160
154
|
Pkg::Util::RakeUtils.invoke_task("pl:fetch")
|
161
155
|
|
162
|
-
cmd = <<-
|
156
|
+
cmd = <<-COMMAND
|
163
157
|
if ! flock --wait 1200 /opt/tools/aptly/db/LOCK --command /bin/true; then
|
164
158
|
echo "Unable to acquire aptly lock, giving up" 1>&2
|
165
159
|
exit 1
|
@@ -170,12 +164,12 @@ if Pkg::Config.build_pe
|
|
170
164
|
else
|
171
165
|
aptly publish repo -gpg-key=\"8BBEB79B\" #{Pkg::Config::pe_version}-#{dist} #{Pkg::Config::pe_version}
|
172
166
|
fi
|
173
|
-
|
167
|
+
COMMAND
|
174
168
|
stdout, stderr = Pkg::Util::Net.remote_execute(
|
175
|
-
|
169
|
+
Pkg::Config.apt_host,
|
176
170
|
cmd,
|
177
171
|
{ capture_output: true }
|
178
|
-
|
172
|
+
)
|
179
173
|
|
180
174
|
output = stdout.to_s + stderr.to_s
|
181
175
|
|
@@ -190,7 +184,6 @@ if Pkg::Config.build_pe
|
|
190
184
|
|
191
185
|
puts "Cleaning up apt repo 'incoming' dir on #{Pkg::Config.apt_host}"
|
192
186
|
Pkg::Util::Net.remote_execute(Pkg::Config.apt_host, "rm -r #{incoming_dir}")
|
193
|
-
|
194
187
|
end
|
195
188
|
|
196
189
|
# Throw more tires on the fire
|
@@ -200,7 +193,7 @@ if Pkg::Config.build_pe
|
|
200
193
|
repo_base_path = Pkg::Config.yum_target_path
|
201
194
|
feature_repo_path = Pkg::Config.yum_target_path(true)
|
202
195
|
pkgs = FileList['pkg/pe/rpm/**/*.rpm'].select { |path| path.gsub!('pkg/pe/rpm/', '') }
|
203
|
-
command
|
196
|
+
command = %(for pkg in #{pkgs.join(' ')}; do)
|
204
197
|
command += %( sudo ln -f "#{repo_base_path}/$( dirname ${pkg} )/$( basename ${pkg} )" "#{feature_repo_path}/$( dirname ${pkg} )/" ; )
|
205
198
|
command += %(done; )
|
206
199
|
command += %(sync)
|
@@ -214,7 +207,7 @@ if Pkg::Config.build_pe
|
|
214
207
|
base_path = Pkg::Config.apt_target_path
|
215
208
|
feature_base_path = Pkg::Config.apt_target_path(true)
|
216
209
|
pkgs = FileList["pkg/pe/deb/**/*.deb"].select { |path| path.gsub!('pkg/pe/deb/', '') }
|
217
|
-
command
|
210
|
+
command = %(for pkg in #{pkgs.join(' ')}; do)
|
218
211
|
command += %( sudo ln -f "#{base_path}/$( dirname ${pkg} )-amd64/$( basename ${pkg} )" "#{feature_base_path}/$( dirname ${pkg} )-amd64/" ; )
|
219
212
|
command += %(done; )
|
220
213
|
command += %(sync)
|
data/tasks/retrieve.rake
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
namespace :pl do
|
14
14
|
namespace :jenkins do
|
15
15
|
desc "Retrieve packages from the distribution server\. Check out commit to retrieve"
|
16
|
-
task :retrieve, [
|
16
|
+
task :retrieve, %i[remote_target local_target] => 'pl:fetch' do |t, args|
|
17
17
|
unless Pkg::Config.project
|
18
18
|
fail "You must set the 'project' in build_defaults.yaml or with the 'PROJECT_OVERRIDE' environment variable."
|
19
19
|
end
|
@@ -37,7 +37,7 @@ if Pkg::Config.build_pe
|
|
37
37
|
namespace :pe do
|
38
38
|
namespace :jenkins do
|
39
39
|
desc "Retrieve packages from the distribution server\. Check out commit to retrieve"
|
40
|
-
task :retrieve, [
|
40
|
+
task :retrieve, %i[remote_target local_target] => 'pl:fetch' do |t, args|
|
41
41
|
unless Pkg::Config.project
|
42
42
|
fail "You must set the 'project' in build_defaults.yaml or with the 'PROJECT_OVERRIDE' environment variable."
|
43
43
|
end
|
data/tasks/rpm.rake
CHANGED
data/tasks/rpm_repos.rake
CHANGED
@@ -11,6 +11,7 @@
|
|
11
11
|
#
|
12
12
|
namespace :pl do
|
13
13
|
namespace :jenkins do
|
14
|
+
# The equivalent to invoking this task is calling Pkg::Util::Repo.rpm_repos
|
14
15
|
desc "Create yum repositories of built RPM packages for this SHA on the distribution server"
|
15
16
|
task :rpm_repos => "pl:fetch" do
|
16
17
|
Pkg::Rpm::Repo.create_remote_repos
|
data/tasks/ship.rake
CHANGED
@@ -123,7 +123,7 @@ namespace :pl do
|
|
123
123
|
end
|
124
124
|
|
125
125
|
desc "Update remote ips repository on #{Pkg::Config.ips_host}"
|
126
|
-
task :update_ips_repo
|
126
|
+
task :update_ips_repo => 'pl:fetch' do
|
127
127
|
if Dir['pkg/ips/pkgs/**/*'].empty? && Dir['pkg/solaris/11/**/*'].empty?
|
128
128
|
$stdout.puts "Error: there aren't any p5p packages in pkg/ips/pkgs or pkg/solaris/11."
|
129
129
|
next
|
@@ -132,11 +132,11 @@ namespace :pl do
|
|
132
132
|
source_dir = 'pkg/solaris/11/'
|
133
133
|
source_dir = 'pkg/ips/pkgs/' unless Dir['pkg/ips/pkgs/**/*'].empty?
|
134
134
|
|
135
|
-
tmpdir,
|
136
|
-
|
135
|
+
tmpdir, = Pkg::Util::Net.remote_execute(
|
136
|
+
Pkg::Config.ips_host,
|
137
137
|
'mktemp -d -p /var/tmp',
|
138
138
|
{ capture_output: true }
|
139
|
-
|
139
|
+
)
|
140
140
|
tmpdir.chomp!
|
141
141
|
|
142
142
|
Pkg::Util::Net.rsync_to(source_dir, Pkg::Config.ips_host, tmpdir)
|
@@ -372,7 +372,8 @@ namespace :pl do
|
|
372
372
|
desc "Ship nightly debs to #{Pkg::Config.apt_signing_server}"
|
373
373
|
task ship_nightly_debs: 'pl:fetch' do
|
374
374
|
Pkg::Util::Ship.ship_debs(
|
375
|
-
'pkg', Pkg::Config.nonfinal_apt_repo_staging_path, chattr: false, nonfinal: true
|
375
|
+
'pkg', Pkg::Config.nonfinal_apt_repo_staging_path, chattr: false, nonfinal: true
|
376
|
+
)
|
376
377
|
end
|
377
378
|
|
378
379
|
## This is the new-style apt stager
|
@@ -635,18 +636,22 @@ namespace :pl do
|
|
635
636
|
puts " * #{err}"
|
636
637
|
end
|
637
638
|
end
|
638
|
-
|
639
639
|
end
|
640
640
|
|
641
641
|
# It is odd to namespace this ship task under :jenkins, but this task is
|
642
642
|
# intended to be a component of the jenkins-based build workflow even if it
|
643
|
-
# doesn't interact with jenkins directly.
|
644
|
-
|
645
|
-
#
|
646
|
-
#
|
643
|
+
# doesn't interact with jenkins directly.
|
644
|
+
|
645
|
+
# The :target argument is so that we can invoke this task with a
|
646
|
+
# subdirectory of the standard distribution server path. That way we
|
647
|
+
# can separate out built artifacts from signed/actually shipped
|
648
|
+
# artifacts: $path/shipped or $path/artifacts.
|
649
|
+
|
647
650
|
namespace :jenkins do
|
648
651
|
desc 'ship pkg directory contents to artifactory'
|
649
652
|
task :ship_to_artifactory, :local_dir do |_t, args|
|
653
|
+
# The equivalent to invoking this task is calling
|
654
|
+
# Pkg::Util::Ship.ship_to_artifactory(local_directory, target)
|
650
655
|
Pkg::Util::RakeUtils.invoke_task('pl:fetch')
|
651
656
|
unless Pkg::Config.project
|
652
657
|
fail "Error: 'project' must be set in build_defaults.yaml or " \
|
@@ -654,9 +659,15 @@ namespace :pl do
|
|
654
659
|
end
|
655
660
|
|
656
661
|
artifactory = Pkg::ManageArtifactory.new(Pkg::Config.project, Pkg::Config.ref)
|
657
|
-
|
658
662
|
local_dir = args.local_dir || 'pkg'
|
659
|
-
|
663
|
+
|
664
|
+
# Artifactory generates its own 'sha1' files. Shipping them confuses Artifactory
|
665
|
+
# terribly.
|
666
|
+
shippable = Dir.glob("#{local_dir}/**/*").reject do |e|
|
667
|
+
File.directory?(e) || File.extname(e) == '.sha1'
|
668
|
+
end
|
669
|
+
|
670
|
+
shippable.each do |artifact|
|
660
671
|
# Always deploy yamls and jsons
|
661
672
|
if artifact.end_with?('.yaml', '.json')
|
662
673
|
artifactory.deploy_package(artifact)
|
@@ -673,6 +684,7 @@ namespace :pl do
|
|
673
684
|
end
|
674
685
|
end
|
675
686
|
|
687
|
+
# The equivalent to invoking this task is calling Pkg::Util::Ship.ship(local_directory, target)
|
676
688
|
desc 'Ship "pkg" directory contents to distribution server'
|
677
689
|
task :ship, :target, :local_dir do |_t, args|
|
678
690
|
Pkg::Util::RakeUtils.invoke_task('pl:fetch')
|
data/tasks/sign.rake
CHANGED
@@ -107,8 +107,8 @@ namespace :pl do
|
|
107
107
|
##
|
108
108
|
# This crazy piece of work establishes a remote repo on the signing
|
109
109
|
# server, ships our packages out to it, signs them, and brings them back.
|
110
|
-
#
|
111
110
|
namespace :jenkins do
|
111
|
+
# The equivalent to invoking this task is calling Pkg::Util::Sign.sign_all(root_directory)
|
112
112
|
desc "Sign all locally staged packages on #{Pkg::Config.signing_server}"
|
113
113
|
task :sign_all, :root_dir do |_t, args|
|
114
114
|
Pkg::Util::RakeUtils.invoke_task('pl:fetch')
|
@@ -139,11 +139,11 @@ namespace :pl do
|
|
139
139
|
remote_repo = Pkg::Util::Net.remote_unpack_git_bundle(Pkg::Config.signing_server, 'HEAD', nil, signing_bundle)
|
140
140
|
build_params = Pkg::Util::Net.remote_buildparams(Pkg::Config.signing_server, Pkg::Config)
|
141
141
|
Pkg::Util::Net.rsync_to(root_dir, Pkg::Config.signing_server, remote_repo)
|
142
|
-
rake_command =
|
143
|
-
cd #{remote_repo} ;
|
144
|
-
#{Pkg::Util::Net.remote_bundle_install_command}
|
145
|
-
bundle exec rake #{sign_tasks.map { |task| task + "[#{root_dir}]" }.join(
|
146
|
-
DOC
|
142
|
+
rake_command = <<~DOC
|
143
|
+
cd #{remote_repo} ;
|
144
|
+
#{Pkg::Util::Net.remote_bundle_install_command}
|
145
|
+
bundle exec rake #{sign_tasks.map { |task| task + "[#{root_dir}]" }.join(' ')} PARAMS_FILE=#{build_params}
|
146
|
+
DOC
|
147
147
|
Pkg::Util::Net.remote_execute(Pkg::Config.signing_server, rake_command)
|
148
148
|
Pkg::Util::Net.rsync_from("#{remote_repo}/#{root_dir}/", Pkg::Config.signing_server, "#{root_dir}/")
|
149
149
|
Pkg::Util::Net.remote_execute(Pkg::Config.signing_server, "rm -rf #{remote_repo}")
|
data/tasks/tar.rake
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
namespace :package do
|
2
2
|
desc "Create a source tar archive"
|
3
3
|
task :tar => [:clean] do
|
4
|
-
|
5
4
|
if Pkg::Config.pre_tar_task
|
6
5
|
Pkg::Util::RakeUtils.invoke_task(Pkg::Config.pre_tar_task)
|
7
6
|
end
|
@@ -14,11 +13,11 @@ namespace :package do
|
|
14
13
|
# by the tar class. Otherwise, we load what we consider to be the "default"
|
15
14
|
# set, which is default for historical purposes.
|
16
15
|
#
|
17
|
-
tar.templates ||= Dir[File.join(Pkg::Config.project_root, "ext", "**", "*.erb")].
|
16
|
+
tar.templates ||= Dir[File.join(Pkg::Config.project_root, "ext", "**", "*.erb")].reject { |i| i =~ /ext\/packaging|ext\/osx/ }
|
18
17
|
|
19
18
|
tar.pkg!
|
20
19
|
|
21
|
-
puts "Wrote #{
|
20
|
+
puts "Wrote #{%x(pwd).strip}/pkg/#{Pkg::Config.project}-#{Pkg::Config.version}.tar.gz"
|
22
21
|
end
|
23
22
|
end
|
24
23
|
|
data/tasks/update.rake
CHANGED
@@ -5,8 +5,8 @@ namespace :package do
|
|
5
5
|
remote = Pkg::Config.packaging_url.split(' ')[0]
|
6
6
|
branch = Pkg::Config.packaging_url.split(' ')[1].split('=')[1]
|
7
7
|
if branch.nil? or remote.nil?
|
8
|
-
|
9
|
-
|
8
|
+
warn "Couldn't parse the packaging repo URL from 'ext/build_defaults.yaml'."
|
9
|
+
warn "Normally this is a string in the format git@github.com:<User>/<packaging_repo> --branch=<branch>"
|
10
10
|
else
|
11
11
|
Pkg::Util::Git.pull(remote, branch)
|
12
12
|
end
|
data/tasks/vendor_gems.rake
CHANGED
@@ -8,7 +8,7 @@ if Pkg::Config.pre_tar_task
|
|
8
8
|
require 'bundler'
|
9
9
|
|
10
10
|
class UI
|
11
|
-
LEVELS = %w
|
11
|
+
LEVELS = %w[silent error warn confirm info debug]
|
12
12
|
|
13
13
|
def warn(message, newline = nil)
|
14
14
|
puts message
|
@@ -30,15 +30,13 @@ if Pkg::Config.pre_tar_task
|
|
30
30
|
puts message
|
31
31
|
end
|
32
32
|
|
33
|
-
def confirm(message, newline = nil)
|
34
|
-
end
|
33
|
+
def confirm(message, newline = nil); end
|
35
34
|
|
36
35
|
def debug?
|
37
36
|
true
|
38
37
|
end
|
39
38
|
|
40
|
-
def ask(message)
|
41
|
-
end
|
39
|
+
def ask(message); end
|
42
40
|
|
43
41
|
def quiet?
|
44
42
|
false
|
@@ -54,12 +52,12 @@ if Pkg::Config.pre_tar_task
|
|
54
52
|
end
|
55
53
|
|
56
54
|
def silence
|
57
|
-
old_level
|
55
|
+
old_level = @level
|
56
|
+
@level = "silent"
|
58
57
|
yield
|
59
58
|
ensure
|
60
59
|
@level = old_level
|
61
60
|
end
|
62
|
-
|
63
61
|
end
|
64
62
|
|
65
63
|
class RGProxy < ::Gem::SilentUI
|
data/tasks/version.rake
CHANGED
@@ -24,8 +24,8 @@ namespace :package do
|
|
24
24
|
end
|
25
25
|
|
26
26
|
# A set of tasks for printing the version
|
27
|
-
[
|
28
|
-
task
|
27
|
+
%i[version rpmversion rpmrelease debversion release].each do |task|
|
28
|
+
task task.to_s do
|
29
29
|
$stdout.puts Pkg::Config.instance_variable_get("@#{task}")
|
30
30
|
end
|
31
31
|
end
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: packaging
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.106.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet Labs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-04-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name: pry
|
14
|
+
name: pry
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
@@ -25,47 +25,47 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: pry-byebug
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 2.14.1
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 2.14.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rubocop
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
61
|
+
version: '0.49'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
68
|
+
version: '0.49'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: apt_stage_artifacts
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '
|
89
|
+
version: '3'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '
|
96
|
+
version: '3'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: csv
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -109,33 +109,33 @@ dependencies:
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 3.1.5
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: rake
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '12.3'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
124
|
+
version: '12.3'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: release-metrics
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - ">="
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
131
|
+
version: '0'
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
138
|
+
version: '0'
|
139
139
|
description: Packaging automation written in Rake and Ruby. Easily build native packages
|
140
140
|
for most platforms with a few data files and git.
|
141
141
|
email: info@puppetlabs.com
|
@@ -188,8 +188,10 @@ files:
|
|
188
188
|
- lib/packaging/util/os.rb
|
189
189
|
- lib/packaging/util/platform.rb
|
190
190
|
- lib/packaging/util/rake_utils.rb
|
191
|
+
- lib/packaging/util/repo.rb
|
191
192
|
- lib/packaging/util/serialization.rb
|
192
193
|
- lib/packaging/util/ship.rb
|
194
|
+
- lib/packaging/util/sign.rb
|
193
195
|
- lib/packaging/util/tool.rb
|
194
196
|
- lib/packaging/util/version.rb
|
195
197
|
- lib/packaging/util/windows.rb
|
@@ -293,28 +295,28 @@ signing_key:
|
|
293
295
|
specification_version: 4
|
294
296
|
summary: Puppet Labs' packaging automation
|
295
297
|
test_files:
|
296
|
-
- spec/lib/
|
297
|
-
- spec/lib/packaging/
|
298
|
+
- spec/lib/packaging_spec.rb
|
299
|
+
- spec/lib/packaging/retrieve_spec.rb
|
300
|
+
- spec/lib/packaging/paths_spec.rb
|
301
|
+
- spec/lib/packaging/platforms_spec.rb
|
302
|
+
- spec/lib/packaging/config_spec.rb
|
298
303
|
- spec/lib/packaging/tar_spec.rb
|
299
|
-
- spec/lib/packaging/
|
304
|
+
- spec/lib/packaging/repo_spec.rb
|
305
|
+
- spec/lib/packaging/artifactory_spec.rb
|
306
|
+
- spec/lib/packaging/deb_spec.rb
|
307
|
+
- spec/lib/packaging/deb/repo_spec.rb
|
300
308
|
- spec/lib/packaging/util/git_spec.rb
|
301
|
-
- spec/lib/packaging/util/gpg_spec.rb
|
302
|
-
- spec/lib/packaging/util/execution_spec.rb
|
303
309
|
- spec/lib/packaging/util/version_spec.rb
|
304
|
-
- spec/lib/packaging/util/net_spec.rb
|
305
|
-
- spec/lib/packaging/util/git_tag_spec.rb
|
306
310
|
- spec/lib/packaging/util/os_spec.rb
|
307
|
-
- spec/lib/packaging/util/
|
311
|
+
- spec/lib/packaging/util/execution_spec.rb
|
308
312
|
- spec/lib/packaging/util/file_spec.rb
|
313
|
+
- spec/lib/packaging/util/git_tag_spec.rb
|
314
|
+
- spec/lib/packaging/util/rake_utils_spec.rb
|
315
|
+
- spec/lib/packaging/util/ship_spec.rb
|
309
316
|
- spec/lib/packaging/util/jenkins_spec.rb
|
317
|
+
- spec/lib/packaging/util/net_spec.rb
|
310
318
|
- spec/lib/packaging/util/misc_spec.rb
|
319
|
+
- spec/lib/packaging/util/gpg_spec.rb
|
311
320
|
- spec/lib/packaging/rpm/repo_spec.rb
|
312
|
-
- spec/lib/packaging/paths_spec.rb
|
313
|
-
- spec/lib/packaging/platforms_spec.rb
|
314
|
-
- spec/lib/packaging/deb_spec.rb
|
315
321
|
- spec/lib/packaging/sign_spec.rb
|
316
|
-
- spec/lib/packaging/
|
317
|
-
- spec/lib/packaging/artifactory_spec.rb
|
318
|
-
- spec/lib/packaging/deb/repo_spec.rb
|
319
|
-
- spec/lib/packaging/config_spec.rb
|
320
|
-
- spec/lib/packaging_spec.rb
|
322
|
+
- spec/lib/packaging/gem_spec.rb
|