packaging 0.101.0 → 0.105.0
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.rb +12 -8
- data/lib/packaging/platforms.rb +5 -47
- data/lib/packaging/repo.rb +14 -11
- data/lib/packaging/util/apt_staging_server.rb +8 -0
- data/lib/packaging/util/build_metadata.rb +17 -0
- data/lib/packaging/util/distribution_server.rb +42 -0
- data/lib/packaging/util/ezbake.rb +26 -0
- data/lib/packaging/util/file.rb +79 -0
- data/lib/packaging/util/net.rb +3 -4
- data/lib/packaging/util/repo.rb +18 -0
- data/lib/packaging/util/ship.rb +283 -78
- data/lib/packaging/util/sign.rb +47 -0
- data/lib/packaging/util/windows.rb +38 -0
- data/lib/packaging/util.rb +7 -0
- 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 +5 -5
- data/spec/lib/packaging/sign_spec.rb +0 -12
- data/spec/lib/packaging/util/ship_spec.rb +0 -2
- data/tasks/deb_repos.rake +1 -0
- data/tasks/fetch.rake +1 -0
- data/tasks/jenkins.rake +1 -1
- data/tasks/load_extras.rake +1 -0
- data/tasks/rpm_repos.rake +1 -0
- data/tasks/ship.rake +171 -142
- data/tasks/sign.rake +1 -1
- metadata +62 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 296bfdcecf936f80297894792d9b9a1bb3a83a422a61e4976aca3916dd6c9a2b
|
4
|
+
data.tar.gz: 0c76c4482d82367cef9d988fc1e31080f718322e4eab1fe9a5176f4544c8a3ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 071534bcce41eb8b11517d21592399a9f94c45b20a70259aa5a13c4bf3ec5bfd6cab5e517698e6f8884736a932a62d0212d945cb97ad549bdf8c80242f594f8e
|
7
|
+
data.tar.gz: 532cca35cd6eeea218c8a6cdcdf00f0802f0c0ae33fc009f6f42bd7c39056f45b147abaf971879e2f5532541e1d08c0c6267425d32aa69dad9c11f036697c183
|
data/lib/packaging/config.rb
CHANGED
@@ -80,7 +80,7 @@ module Pkg
|
|
80
80
|
|
81
81
|
dir = "/opt/jenkins-builds/#{self.project}/#{self.ref}"
|
82
82
|
cmd = "if [ -s \"#{dir}/artifacts\" ]; then cd #{dir};"\
|
83
|
-
"find ./artifacts
|
83
|
+
"find ./artifacts -mindepth 2 -type f; fi"
|
84
84
|
artifacts, _ = Pkg::Util::Net.remote_execute(
|
85
85
|
self.builds_server,
|
86
86
|
cmd,
|
@@ -95,6 +95,7 @@ module Pkg
|
|
95
95
|
# the correct place. For 5.x and 6.x release streams the f prefix
|
96
96
|
# has been removed and so tag will equal original_tag
|
97
97
|
original_tag = Pkg::Paths.tag_from_artifact_path(artifact)
|
98
|
+
fail "Error: unrecognized artifact \"#{artifact}\"" if original_tag.nil?
|
98
99
|
|
99
100
|
# Remove the f-prefix from the fedora platform tag keys so that
|
100
101
|
# beaker can rely on consistent keys once we rip out the f for good
|
@@ -203,15 +204,18 @@ module Pkg
|
|
203
204
|
# string. Accept an argument for the write target file. If not specified,
|
204
205
|
# the name of the params file is the current git commit sha or tag.
|
205
206
|
#
|
206
|
-
def config_to_yaml(
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
File.
|
207
|
+
def config_to_yaml(destination_directory = nil)
|
208
|
+
destination_directory = Pkg::Util::File.mktemp if destination_directory.nil?
|
209
|
+
config_yaml_file_name = "#{self.ref}.yaml"
|
210
|
+
|
211
|
+
config_yaml_path = File.join(destination_directory, config_yaml_file_name)
|
212
|
+
|
213
|
+
Pkg::Util::File.file_writable?(File.dirname(config_yaml_path), :required => true)
|
214
|
+
File.open(config_yaml_path, 'w') do |f|
|
211
215
|
f.puts self.config_to_hash.to_yaml
|
212
216
|
end
|
213
|
-
puts
|
214
|
-
|
217
|
+
puts config_yaml_path
|
218
|
+
return config_yaml_path
|
215
219
|
end
|
216
220
|
|
217
221
|
##
|
data/lib/packaging/platforms.rb
CHANGED
@@ -22,14 +22,6 @@ module Pkg
|
|
22
22
|
},
|
23
23
|
|
24
24
|
'debian' => {
|
25
|
-
'8' => {
|
26
|
-
codename: 'jessie',
|
27
|
-
architectures: ['amd64', 'i386', 'powerpc'],
|
28
|
-
source_architecture: 'source',
|
29
|
-
package_format: 'deb',
|
30
|
-
source_package_formats: DEBIAN_SOURCE_FORMATS,
|
31
|
-
repo: true,
|
32
|
-
},
|
33
25
|
'9' => {
|
34
26
|
codename: 'stretch',
|
35
27
|
architectures: ['amd64', 'i386'],
|
@@ -57,14 +49,6 @@ module Pkg
|
|
57
49
|
},
|
58
50
|
|
59
51
|
'el' => {
|
60
|
-
'5' => {
|
61
|
-
architectures: ['x86_64', 'i386'],
|
62
|
-
source_architecture: 'SRPMS',
|
63
|
-
package_format: 'rpm',
|
64
|
-
source_package_formats: ['src.rpm'],
|
65
|
-
signature_format: 'v3',
|
66
|
-
repo: true,
|
67
|
-
},
|
68
52
|
'6' => {
|
69
53
|
architectures: ['x86_64', 'i386'],
|
70
54
|
source_architecture: 'SRPMS',
|
@@ -88,26 +72,18 @@ module Pkg
|
|
88
72
|
source_package_formats: ['src.rpm'],
|
89
73
|
signature_format: 'v4',
|
90
74
|
repo: true,
|
91
|
-
}
|
92
|
-
},
|
93
|
-
|
94
|
-
'fedora' => {
|
95
|
-
'30' => {
|
96
|
-
architectures: ['x86_64'],
|
97
|
-
source_architecture: 'SRPMS',
|
98
|
-
package_format: 'rpm',
|
99
|
-
source_package_formats: ['src.rpm'],
|
100
|
-
signature_format: 'v4',
|
101
|
-
repo: true,
|
102
75
|
},
|
103
|
-
'
|
76
|
+
'9' => {
|
104
77
|
architectures: ['x86_64'],
|
105
78
|
source_architecture: 'SRPMS',
|
106
79
|
package_format: 'rpm',
|
107
80
|
source_package_formats: ['src.rpm'],
|
108
81
|
signature_format: 'v4',
|
109
82
|
repo: true,
|
110
|
-
}
|
83
|
+
}
|
84
|
+
},
|
85
|
+
|
86
|
+
'fedora' => {
|
111
87
|
'32' => {
|
112
88
|
architectures: ['x86_64'],
|
113
89
|
source_architecture: 'SRPMS',
|
@@ -127,16 +103,6 @@ module Pkg
|
|
127
103
|
},
|
128
104
|
|
129
105
|
'osx' => {
|
130
|
-
'10.13' => {
|
131
|
-
architectures: ['x86_64'],
|
132
|
-
package_format: 'dmg',
|
133
|
-
repo: false,
|
134
|
-
},
|
135
|
-
'10.14' => {
|
136
|
-
architectures: ['x86_64'],
|
137
|
-
package_format: 'dmg',
|
138
|
-
repo: false,
|
139
|
-
},
|
140
106
|
'10.15' => {
|
141
107
|
architectures: ['x86_64'],
|
142
108
|
package_format: 'dmg',
|
@@ -233,14 +199,6 @@ module Pkg
|
|
233
199
|
source_package_formats: DEBIAN_SOURCE_FORMATS,
|
234
200
|
repo: true,
|
235
201
|
},
|
236
|
-
'18.10' => {
|
237
|
-
codename: 'cosmic',
|
238
|
-
architectures: ['amd64', 'ppc64el'],
|
239
|
-
source_architecture: 'source',
|
240
|
-
package_format: 'deb',
|
241
|
-
source_package_formats: DEBIAN_SOURCE_FORMATS,
|
242
|
-
repo: true,
|
243
|
-
},
|
244
202
|
'20.04' => {
|
245
203
|
codename: 'focal',
|
246
204
|
architectures: ['amd64', 'aarch64'],
|
data/lib/packaging/repo.rb
CHANGED
@@ -36,7 +36,8 @@ module Pkg::Repo
|
|
36
36
|
Dir.chdir(File.join('pkg', local_target)) do
|
37
37
|
puts "Info: Archiving #{repo_location} as #{archive_name}"
|
38
38
|
target_tarball = File.join('repos', "#{archive_name}.tar.gz")
|
39
|
-
tar_command =
|
39
|
+
tar_command = %W[#{tar} --owner=0 --group=0 --create --gzip
|
40
|
+
--file #{target_tarball} #{repo_location}].join(' ')
|
40
41
|
stdout, _, _ = Pkg::Util::Execution.capture3(tar_command)
|
41
42
|
return stdout
|
42
43
|
end
|
@@ -62,12 +63,12 @@ module Pkg::Repo
|
|
62
63
|
next
|
63
64
|
end
|
64
65
|
|
65
|
-
tar_action =
|
66
|
-
if File.exist?(all_repos_tarball_name)
|
67
|
-
|
68
|
-
|
66
|
+
tar_action = '--create'
|
67
|
+
tar_action = '--update' if File.exist?(all_repos_tarball_name)
|
68
|
+
|
69
|
+
tar_command = %W[#{tar} --owner=0 --group=0 #{tar_action}
|
70
|
+
--file #{all_repos_tarball_name} #{repo_tarball_path}].join(' ')
|
69
71
|
|
70
|
-
tar_command = "#{tar} --owner=0 --group=0 #{tar_action} --file #{all_repos_tarball_name} #{repo_tarball_path}"
|
71
72
|
stdout, _, _ = Pkg::Util::Execution.capture3(tar_command)
|
72
73
|
puts stdout
|
73
74
|
end
|
@@ -117,7 +118,8 @@ module Pkg::Repo
|
|
117
118
|
)
|
118
119
|
return stdout.split
|
119
120
|
rescue => e
|
120
|
-
fail "Error: Could not retrieve directories that contain #{pkg_ext}
|
121
|
+
fail "Error: Could not retrieve directories that contain #{pkg_ext} " \
|
122
|
+
"packages in #{Pkg::Config.distribution_server}:#{artifact_directory}: #{e}"
|
121
123
|
end
|
122
124
|
|
123
125
|
def populate_repo_directory(artifact_parent_directory)
|
@@ -126,7 +128,8 @@ module Pkg::Repo
|
|
126
128
|
cmd << 'rsync --archive --verbose --one-file-system --ignore-existing artifacts/ repos/ '
|
127
129
|
Pkg::Util::Net.remote_execute(Pkg::Config.distribution_server, cmd)
|
128
130
|
rescue => e
|
129
|
-
fail "Error: Could not populate repos directory in
|
131
|
+
fail "Error: Could not populate repos directory in " \
|
132
|
+
"#{Pkg::Config.distribution_server}:#{artifact_parent_directory}: #{e}"
|
130
133
|
end
|
131
134
|
|
132
135
|
def argument_required?(argument_name, repo_command)
|
@@ -134,12 +137,12 @@ module Pkg::Repo
|
|
134
137
|
end
|
135
138
|
|
136
139
|
def update_repo(remote_host, command, options = {})
|
137
|
-
fail_message = "Error: Missing required argument '%s', update
|
140
|
+
fail_message = "Error: Missing required argument '%s', perhaps update build_defaults?"
|
138
141
|
[:repo_name, :repo_path, :repo_host, :repo_url].each do |option|
|
139
142
|
fail fail_message % option.to_s if argument_required?(option.to_s, command) && !options[option]
|
140
143
|
end
|
141
144
|
|
142
|
-
|
145
|
+
repo_configuration = {
|
143
146
|
__REPO_NAME__: options[:repo_name],
|
144
147
|
__REPO_PATH__: options[:repo_path],
|
145
148
|
__REPO_HOST__: options[:repo_host],
|
@@ -149,7 +152,7 @@ module Pkg::Repo
|
|
149
152
|
}
|
150
153
|
Pkg::Util::Net.remote_execute(
|
151
154
|
remote_host,
|
152
|
-
Pkg::Util::Misc.search_and_replace(command,
|
155
|
+
Pkg::Util::Misc.search_and_replace(command, repo_configuration))
|
153
156
|
end
|
154
157
|
end
|
155
158
|
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
# Utility methods for handling Apt staging server.
|
2
|
+
|
3
|
+
module Pkg::Util::AptStagingServer
|
4
|
+
def self.send_packages(pkg_directory, apt_component = 'stable')
|
5
|
+
%x(apt-stage-artifacts --component=#{apt_component} #{pkg_directory})
|
6
|
+
fail 'APT artifact staging failed.' unless $CHILD_STATUS.success?
|
7
|
+
end
|
8
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# Utility methods for handling miscellaneous build metadata
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
module Pkg::Util::BuildMetadata
|
6
|
+
class << self
|
7
|
+
def add_misc_json_files(target_directory)
|
8
|
+
misc_json_files = Dir.glob('ext/build_metadata*.json')
|
9
|
+
misc_json_files.each do |source_file|
|
10
|
+
target_file = File.join(
|
11
|
+
target_directory, "#{Pkg::Config.ref}.#{File.basename(source_file)}"
|
12
|
+
)
|
13
|
+
FileUtils.cp(source_file, target_file)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# Utility methods for the older distribution server
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
module Pkg::Util::DistributionServer
|
6
|
+
class << self
|
7
|
+
def send_packages(local_source_directory, remote_target_directory)
|
8
|
+
Pkg::Util::Execution.retry_on_fail(times: 3) do
|
9
|
+
Pkg::Util::Net.remote_execute(
|
10
|
+
Pkg::Config.distribution_server,
|
11
|
+
"mkdir --mode=775 --parents #{remote_target_directory}"
|
12
|
+
)
|
13
|
+
Pkg::Util::Net.rsync_to(
|
14
|
+
"#{local_source_directory}/",
|
15
|
+
Pkg::Config.distribution_server, "#{remote_target_directory}/",
|
16
|
+
extra_flags: ['--ignore-existing', '--exclude repo_configs']
|
17
|
+
)
|
18
|
+
end
|
19
|
+
|
20
|
+
# In order to get a snapshot of what this build looked like at the time
|
21
|
+
# of shipping, we also generate and ship the params file
|
22
|
+
#
|
23
|
+
Pkg::Config.config_to_yaml(local_source_directory)
|
24
|
+
Pkg::Util::Execution.retry_on_fail(times: 3) do
|
25
|
+
Pkg::Util::Net.rsync_to(
|
26
|
+
"#{local_source_directory}/#{Pkg::Config.ref}.yaml",
|
27
|
+
Pkg::Config.distribution_server, "#{remote_target_directory}/",
|
28
|
+
extra_flags: ["--exclude repo_configs"]
|
29
|
+
)
|
30
|
+
end
|
31
|
+
|
32
|
+
# If we just shipped a tagged version, we want to make it immutable
|
33
|
+
files = Dir.glob("#{local_source_directory}/**/*")
|
34
|
+
.select { |f| File.file?(f) and !f.include? "#{Pkg::Config.ref}.yaml" }
|
35
|
+
.map { |f| "#{remote_target_directory}/#{f.sub(/^#{local_source_directory}\//, '')}" }
|
36
|
+
|
37
|
+
Pkg::Util::Net.remote_set_ownership(Pkg::Config.distribution_server, 'root', 'release', files)
|
38
|
+
Pkg::Util::Net.remote_set_permissions(Pkg::Config.distribution_server, '0664', files)
|
39
|
+
Pkg::Util::Net.remote_set_immutable(Pkg::Config.distribution_server, files)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# Utility methods for handling ezbake
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
module Pkg::Util::EZbake
|
6
|
+
class << self
|
7
|
+
def add_manifest(target_directory)
|
8
|
+
ezbake_manifest = File.join('ext', 'ezbake.manifest')
|
9
|
+
ezbake_yaml = File.join('ext', 'ezbake.manifest.yaml')
|
10
|
+
|
11
|
+
if File.exist?(ezbake_manifest)
|
12
|
+
FileUtils.cp(
|
13
|
+
ezbake_manifest,
|
14
|
+
File.join(target_directory, "#{Pkg::Config.ref}.ezbake.manifest")
|
15
|
+
)
|
16
|
+
end
|
17
|
+
|
18
|
+
if File.exists?(ezbake_yaml)
|
19
|
+
FileUtils.cp(
|
20
|
+
ezbake_yaml,
|
21
|
+
File.join(target_directory, "#{Pkg::Config.ref}.ezbake.manifest.yaml")
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/lib/packaging/util/file.rb
CHANGED
@@ -120,6 +120,85 @@ module Pkg::Util::File
|
|
120
120
|
end
|
121
121
|
Pkg::Util::Version.versionbump(workdir) if Pkg::Config.update_version_file
|
122
122
|
end
|
123
|
+
|
124
|
+
# The fetch method pulls down two files from the build-data repo that contain additional
|
125
|
+
# data specific to Puppet Labs release infrastructure intended to augment/override any
|
126
|
+
# defaults specified in the source project repo, e.g. in ext/build_defaults.yaml
|
127
|
+
#
|
128
|
+
# It uses curl to download the files, and places them in a temporary
|
129
|
+
# directory, e.g. /tmp/somedirectory/{project,team}/Pkg::Config.builder_data_file
|
130
|
+
#
|
131
|
+
# Retrieve build-data configurations to override/extend local build_defaults
|
132
|
+
def fetch
|
133
|
+
# Each team has a build-defaults file that specifies local infrastructure targets
|
134
|
+
# for things like builders, target locations for build artifacts, etc Since much
|
135
|
+
# of these don't change, one file can be maintained for the team. Each project
|
136
|
+
# also has a data file for information specific to it. If the project builds
|
137
|
+
# both PE and not PE, it has two files, one for PE, and the other for FOSS
|
138
|
+
#
|
139
|
+
data_repo = Pkg::Config.build_data_repo
|
140
|
+
|
141
|
+
if Pkg::Config.dev_build
|
142
|
+
puts "NOTICE: This is a dev build!"
|
143
|
+
project_data_branch = "#{Pkg::Config.project}-dev"
|
144
|
+
else
|
145
|
+
project_data_branch = Pkg::Config.project
|
146
|
+
end
|
147
|
+
team_data_branch = Pkg::Config.team
|
148
|
+
|
149
|
+
if Pkg::Config.build_pe
|
150
|
+
project_data_branch = 'pe-' + project_data_branch unless project_data_branch =~ /^pe-/
|
151
|
+
team_data_branch = 'pe-' + team_data_branch unless team_data_branch =~ /^pe-/
|
152
|
+
end
|
153
|
+
|
154
|
+
# Remove .packaging directory from old-style extras loading
|
155
|
+
FileUtils.rm_rf("#{ENV['HOME']}/.packaging") if File.directory?("#{ENV['HOME']}/.packaging")
|
156
|
+
|
157
|
+
# Touch the .packaging file which is allows packaging to present remote tasks
|
158
|
+
FileUtils.touch("#{ENV['HOME']}/.packaging")
|
159
|
+
|
160
|
+
begin
|
161
|
+
build_data_directory = Pkg::Util::File.mktemp
|
162
|
+
%x(git clone #{data_repo} #{build_data_directory})
|
163
|
+
unless $?.success?
|
164
|
+
fail 'Error: could not fetch the build-data repo. Maybe you do not have the correct permissions?'
|
165
|
+
end
|
166
|
+
|
167
|
+
Dir.chdir(build_data_directory) do
|
168
|
+
[team_data_branch, project_data_branch].each do |branch|
|
169
|
+
%x(git checkout #{branch})
|
170
|
+
unless $?.success?
|
171
|
+
warn "Warning: no build_defaults found in branch '#{branch}' of '#{data_repo}'. Skipping."
|
172
|
+
next
|
173
|
+
end
|
174
|
+
load_extras(build_data_directory)
|
175
|
+
end
|
176
|
+
end
|
177
|
+
ensure
|
178
|
+
FileUtils.rm_rf(build_data_directory)
|
179
|
+
end
|
180
|
+
|
181
|
+
Pkg::Config.perform_validations
|
182
|
+
end
|
183
|
+
|
184
|
+
# The load_extras method is intended to load variables
|
185
|
+
# from the extra yaml file downloaded by the pl:fetch task.
|
186
|
+
# The goal is to be able to augment/override settings in the
|
187
|
+
# source project's build_data.yaml and project_data.yaml with
|
188
|
+
# Puppet Labs-specific data, rather than having to clutter the
|
189
|
+
# generic tasks with data not generally useful outside the
|
190
|
+
# PL Release team
|
191
|
+
def load_extras(temp_directory)
|
192
|
+
unless ENV['PARAMS_FILE'] && ENV['PARAMS_FILE'] != ''
|
193
|
+
temp_directory = temp_directory
|
194
|
+
raise "load_extras requires a directory containing extras data" if temp_directory.nil?
|
195
|
+
Pkg::Config.config_from_yaml("#{temp_directory}/#{Pkg::Config.builder_data_file}")
|
196
|
+
|
197
|
+
# Environment variables take precedence over those loaded from configs,
|
198
|
+
# so we make sure that any we clobbered are reset.
|
199
|
+
Pkg::Config.load_envvars
|
200
|
+
end
|
201
|
+
end
|
123
202
|
end
|
124
203
|
end
|
125
204
|
|
data/lib/packaging/util/net.rb
CHANGED
@@ -159,7 +159,7 @@ module Pkg::Util::Net
|
|
159
159
|
raise(ArgumentError, "Cannot sync path '#{origin}' because both origin_host and target_host are nil. Perhaps you need to set TEAM=release ?") unless
|
160
160
|
options[:origin_host] || options[:target_host]
|
161
161
|
|
162
|
-
cmd = %W
|
162
|
+
cmd = %W[
|
163
163
|
#{options[:bin]}
|
164
164
|
--recursive
|
165
165
|
--hard-links
|
@@ -169,7 +169,7 @@ module Pkg::Util::Net
|
|
169
169
|
--no-perms
|
170
170
|
--no-owner
|
171
171
|
--no-group
|
172
|
-
|
172
|
+
] + [*options[:extra_flags]]
|
173
173
|
|
174
174
|
cmd << '--dry-run' if options[:dryrun]
|
175
175
|
cmd << Pkg::Util.pseudo_uri(path: origin, host: options[:origin_host])
|
@@ -392,9 +392,8 @@ DOC
|
|
392
392
|
end
|
393
393
|
|
394
394
|
def remote_bundle_install_command
|
395
|
-
export_packaging_location = ''
|
396
395
|
export_packaging_location = "export PACKAGING_LOCATION='#{ENV['PACKAGING_LOCATION']}';" if ENV['PACKAGING_LOCATION'] && !ENV['PACKAGING_LOCATION'].empty?
|
397
|
-
|
396
|
+
"source /usr/local/rvm/scripts/rvm; rvm use ruby-2.5.1; #{export_packaging_location} bundle install --path .bundle/gems ;"
|
398
397
|
end
|
399
398
|
|
400
399
|
# Given a BuildInstance object and a host, send its params to the host. Return
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# Module for signing all packages to places
|
2
|
+
|
3
|
+
module Pkg::Util::Repo
|
4
|
+
class << self
|
5
|
+
|
6
|
+
# Create yum repositories of built RPM packages for this SHA on the distribution server
|
7
|
+
def rpm_repos
|
8
|
+
Pkg::Util::File.fetch
|
9
|
+
Pkg::Rpm::Repo.create_remote_repos
|
10
|
+
end
|
11
|
+
|
12
|
+
# Create apt repositories of build DEB packages for this SHA on the distributions server
|
13
|
+
def deb_repos
|
14
|
+
Pkg::Util::File.fetch
|
15
|
+
Pkg::Deb::Repo.create_repos
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|