ood_packaging 0.0.1.rc.6 → 0.0.2.r2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 774e160312368cf79021df01d8aaf851b6f4efd7ef23890a2f02b4edb5cb6202
4
- data.tar.gz: 4f169c7948828b5f870e2a0d7a05dc04f95c73b62b0fd40fe7260238c9a7417f
3
+ metadata.gz: 9a6b3566973d14a67793306517648074a14a90e485adb9e16c150477f0622875
4
+ data.tar.gz: 1b24618f2a5ae46c8a39e759e2cae1ae9b06f439f774de56dbd084832331b1b8
5
5
  SHA512:
6
- metadata.gz: fe2cc99020a235d8cfa3caffb25e26f1ef23f8454d5278093780406e37d669e9f76af2f3c2a70cab350f9c75821f5f70fddc675563569fb0b8bc618d9e4d2758
7
- data.tar.gz: 45ec1cc23b9cfdc63a2c47cb077ac153bae08facb4e5d7a5486d359c5f844dd5ac1b190d6fb33ba17f17cc3ab076fed9fc5e3b00246fb9c2f17c2ce003fb29dc
6
+ metadata.gz: 1be5dc8f3a13ffc3eeeb496ed6b700ac92a78b8d84861225a01f3343b11ba6387b389794af9ceda44b7ea80b22dc364c21780d8578a1d770984165028ca4c25f
7
+ data.tar.gz: 47a5e5315cd46df79c3500b8c5f118217ad25303a5189c2b0b4be6de71691db00d7369766b20c95bbc12eaa35c09fb4c6d47c671252372098afa770fd5d345fa
data/bin/ood_packaging CHANGED
@@ -2,13 +2,9 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  require 'optparse'
5
- begin
6
- require 'ood_packaging'
7
- # If gem is not installed, load from location in git repo
8
- rescue LoadError
9
- $LOAD_PATH.unshift(File.expand_path(File.join(__dir__, '../lib')))
10
- require 'ood_packaging'
11
- end
5
+ libdir = File.expand_path(File.join(__dir__, '../lib'))
6
+ $LOAD_PATH.unshift(libdir) if Dir.exist?(libdir)
7
+ require 'ood_packaging'
12
8
 
13
9
  options = {}
14
10
  OptionParser.new do |opts|
@@ -39,11 +39,11 @@ class OodPackaging::Build
39
39
  end
40
40
 
41
41
  def version
42
- ENV['VERSION'].gsub(/^v/, '')
42
+ ENV['VERSION']
43
43
  end
44
44
 
45
45
  def rpm_version
46
- version.split('-', 2)[0]
46
+ version.gsub(/^v/, '').split('-', 2)[0]
47
47
  end
48
48
 
49
49
  def rpm_release
@@ -53,8 +53,12 @@ class OodPackaging::Build
53
53
  v[1].gsub('-', '.')
54
54
  end
55
55
 
56
+ def deb_version
57
+ version.gsub(/^v/, '').gsub('-', '.')
58
+ end
59
+
56
60
  def rpm_defines
57
- defines = ["--define 'git_tag #{ENV['VERSION']}'"]
61
+ defines = ["--define 'git_tag #{version}'"]
58
62
  defines.concat ["--define 'package_version #{rpm_version}'"]
59
63
  defines.concat ["--define 'package_release #{rpm_release}'"]
60
64
  defines.concat ["--define 'scl #{config[:scl]}'"] if config[:scl]
@@ -72,6 +76,8 @@ class OodPackaging::Build
72
76
  '/package/rpm'
73
77
  elsif Dir.exist?('/package/packaging/rpm')
74
78
  '/package/packaging/rpm'
79
+ elsif Dir.exist?('/package/packaging')
80
+ '/package/packaging'
75
81
  else
76
82
  '/package'
77
83
  end
@@ -88,6 +94,8 @@ class OodPackaging::Build
88
94
  def debian_dir
89
95
  @debian_dir ||= if Dir.exist?('/package/deb/debian')
90
96
  '/package/deb/debian'
97
+ elsif Dir.exist?('/package/packaging/deb')
98
+ '/package/packaging/deb'
91
99
  else
92
100
  '/package/debian'
93
101
  end
@@ -122,7 +130,7 @@ class OodPackaging::Build
122
130
  end
123
131
 
124
132
  def deb_name
125
- "#{package}-#{version}"
133
+ "#{package}-#{deb_version}"
126
134
  end
127
135
 
128
136
  def rpms
@@ -138,6 +146,7 @@ class OodPackaging::Build
138
146
  rpmbuild! if build_box.rpm?
139
147
  debuild! if build_box.deb?
140
148
  copy_output!
149
+ show_output!
141
150
  gpg_sign! if build_box.rpm? && gpg_sign?
142
151
  sanity!
143
152
  end
@@ -186,10 +195,17 @@ class OodPackaging::Build
186
195
  def bootstrap_get_source!
187
196
  if ENV['SKIP_DOWNLOAD'] == 'true'
188
197
  puts "\tSKIP_DOWNLOAD detected, skipping download sources".blue
189
- else
190
- puts "\tDownloading sources defined in #{spec_file}".blue
191
- sh "spectool #{rpm_defines.join(' ')} -g -R -S #{spec_file}#{cmd_suffix}"
198
+ return
192
199
  end
200
+ output = `spectool #{rpm_defines.join(' ')} -l -R -S #{spec_file} 2>&1 | grep 'Source0:'`.strip
201
+ exit_code = $CHILD_STATUS.exitstatus
202
+ if exit_code.zero?
203
+ source = File.join(work_dir, 'SOURCES', File.basename(output))
204
+ tar = File.join(work_dir, 'SOURCES', ENV['TAR_NAME'])
205
+ sh "mv #{tar} #{source}" if !File.exist?(source) && File.exist?(tar)
206
+ end
207
+ puts "\tDownloading sources defined in #{spec_file}".blue
208
+ sh "spectool #{rpm_defines.join(' ')} -g -R -S #{spec_file}#{cmd_suffix}"
193
209
  end
194
210
 
195
211
  def bootstrap_deb!
@@ -206,7 +222,7 @@ class OodPackaging::Build
206
222
  puts "\tBootstrap debian build files".blue
207
223
  Dir.chdir(deb_work_dir) do
208
224
  sh "dh_make -s -y --createorig -f ../#{deb_name}.tar.gz#{cmd_suffix} || true"
209
- sh "dch -b -v #{version} 'Release #{version}'#{cmd_suffix}"
225
+ sh "dch -b -v #{deb_version} --controlmaint 'Release #{deb_version}'#{cmd_suffix}"
210
226
  end
211
227
  end
212
228
 
@@ -232,9 +248,14 @@ class OodPackaging::Build
232
248
 
233
249
  def install_deb_dependencies!
234
250
  sh "sudo apt update -y#{cmd_suffix}"
251
+ tool = [
252
+ 'DEBIAN_FRONTEND=noninteractive apt-cudf-get --solver aspcud',
253
+ '-o APT::Get::Assume-Yes=1 -o APT::Get::Allow-Downgrades=1',
254
+ '-o Debug::pkgProblemResolver=0 -o APT::Install-Recommends=0'
255
+ ]
235
256
  cmd = [
236
257
  'mk-build-deps --install --remove --root-cmd sudo',
237
- "--tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes'"
258
+ "--tool='#{tool.join(' ')}'"
238
259
  ]
239
260
  Dir.chdir(deb_work_dir) do
240
261
  sh "#{cmd.join(' ')}#{cmd_suffix}"
@@ -273,6 +294,13 @@ class OodPackaging::Build
273
294
  end
274
295
  end
275
296
 
297
+ def show_output!
298
+ puts '== Copied output =='.blue
299
+ Dir["#{output_dir}/*"].each do |f|
300
+ puts "\tSaved output #{f}".blue
301
+ end
302
+ end
303
+
276
304
  def gpg_sign!
277
305
  puts '== GPG sign RPMs =='.blue
278
306
  rpms.each do |rpm|
@@ -2,32 +2,35 @@ FROM <%= base_image %>
2
2
  MAINTAINER Trey Dockendorf <tdockendorf@osc.edu>
3
3
  ENV LANG=en_US.UTF-8
4
4
  ENV LC_CTYPE=en_US.UTF-8
5
+ ENV USER=<%= ctr_user %>
5
6
  ENV GEM_PATH=<%= ctr_gems_dir %>:
6
- <% if dist == 'el7' -%>
7
+ <% if scl? -%>
7
8
  RUN yum update -y && yum clean all && rm -rf /var/cache/yum/*
8
9
  RUN yum install -y yum-utils epel-release centos-release-scl && yum clean all && rm -rf /var/cache/yum/*
9
10
  RUN yum install -y <%= scl_ruby %>-ruby sudo which wget @buildsys-build \
10
11
  rpm-build rpmdevtools rpm-sign scl-utils-build && \
11
12
  yum clean all && rm -rf /var/cache/yum/*
12
- <% elsif dist =~ /^el/ -%>
13
+ RUN rm -f /etc/yum.repos.d/CentOS-Vault.repo /etc/yum.repos.d/CentOS-Sources.repo
14
+ RUN head -n 13 /etc/yum.repos.d/CentOS-SCLo-scl.repo > /etc/yum.repos.d/CentOS-SCLo.repo
15
+ RUN head -n 13 /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo >> /etc/yum.repos.d/CentOS-SCLo.repo
16
+ RUN rm -f /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo /etc/yum.repos.d/CentOS-SCLo-scl.repo
17
+ <% elsif dnf? -%>
13
18
  RUN dnf update -y && dnf clean all && rm -rf /var/cache/dnf/*
14
19
  RUN dnf install -y dnf-utils epel-release langpacks-en glibc-all-langpacks && dnf clean all && rm -rf /var/cache/dnf/*
15
20
  RUN dnf config-manager --set-enabled powertools && dnf clean all && rm -rf /var/cache/dnf/*
16
- RUN dnf module enable -y ruby:<%= ruby_version %> && dnf clean all && rm -rf /var/cache/dnf/*
17
- RUN dnf module enable -y nodejs:<%= nodejs_version %> && dnf clean all && rm -rf /var/cache/dnf/*
18
- RUN dnf install -y ruby sudo which wget \
21
+ RUN dnf module enable -y ruby:<%= ruby_version %> nodejs:<%= nodejs_version %> && dnf clean all && rm -rf /var/cache/dnf/*
22
+ RUN dnf install -y systemd ruby nodejs sudo which wget \
19
23
  gcc-c++ gcc make patch \
20
24
  rpm-build rpmdevtools rpm-sign scl-utils-build && \
21
25
  dnf clean all && rm -rf /var/cache/dnf/*
22
- <% elsif dist =~ /^ubuntu|debian/ -%>
26
+ <% elsif deb? -%>
23
27
  ENV DEBIAN_FRONTEND=noninteractive
24
28
  RUN apt update -y && apt upgrade -y && apt clean all -y
25
29
  RUN apt update -y && apt install -y locales && locale-gen $LANG && \
26
30
  apt clean all -y
27
31
  RUN apt update -y && apt install -y apt-transport-https ca-certificates \
28
- init debhelper devscripts dh-make build-essential lintian equivs \
29
- sudo rake wget curl ruby && \
30
- ln -snf /bin/bundle2.7 /bin/bundle && \
32
+ init debhelper devscripts dh-make build-essential apt-cudf lintian equivs \
33
+ sudo rake wget curl ruby bundler && \
31
34
  apt clean all -y
32
35
  RUN echo "deb https://deb.nodesource.com/node_<%= nodejs_version %>.x <%= codename %> main" > /etc/apt/sources.list.d/nodesource.list
33
36
  RUN curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor > /etc/apt/trusted.gpg.d/nodesource.gpg
@@ -72,7 +72,7 @@ echo "allow-loopback-pinentry" >> <%= ctr_gpg_dir %>/gpg-agent.conf
72
72
  <%- end -%>
73
73
 
74
74
  header "Install ood_packaging gem"
75
- <%- if rpm? && !dnf? -%>
75
+ <%- if scl? -%>
76
76
  run scl enable <%= scl_ruby %> -- gem install --no-doc --bindir <%= ctr_scripts_dir %> --install-dir <%= ctr_gems_dir %> /build/*.gem
77
77
  <%- else -%>
78
78
  run gem install --no-doc --bindir <%= ctr_scripts_dir %> --install-dir <%= ctr_gems_dir %> /build/*.gem
@@ -21,17 +21,17 @@ class OodPackaging::BuildBox
21
21
 
22
22
  def initialize(config = {})
23
23
  @config = config
24
- raise ArgumentError, 'Must provide dist' if @config[:dist].nil?
24
+ raise ArgumentError, 'Must provide dist' if dist.nil?
25
25
 
26
26
  # rubocop:disable Style/GuardClause
27
- unless valid_dist?(@config[:dist])
28
- raise ArgumentError, "Invalid dist selected: #{@config[:dist]}. Valid choices are #{valid_dists.join(' ')}"
27
+ unless valid_dist?(dist)
28
+ raise ArgumentError, "Invalid dist selected: #{dist}. Valid choices are #{valid_dists.join(' ')}"
29
29
  end
30
30
  # rubocop:enable Style/GuardClause
31
31
  end
32
32
 
33
33
  def dist
34
- @dist ||= @config[:dist]
34
+ @dist ||= ENV['OOD_PACKAGING_DIST'] || @config[:dist]
35
35
  end
36
36
 
37
37
  def rpm?
@@ -133,6 +133,10 @@ class OodPackaging::BuildBox
133
133
  sh [container_runtime, 'push', image_tag].join(' ')
134
134
  end
135
135
 
136
+ def pull!
137
+ sh [container_runtime, 'pull', image_tag].join(' ')
138
+ end
139
+
136
140
  def save!(path)
137
141
  sh [container_runtime, 'save', image_tag, '| gzip >', path].join(' ')
138
142
  end
@@ -21,8 +21,6 @@ class OodPackaging::Package
21
21
  @config = config
22
22
  @config[:dist] = 'el8' if tar_only?
23
23
  @build_box = OodPackaging::BuildBox.new(config)
24
- @clean_work_dir = config[:clean_work_dir].nil? ? true : config[:clean_work_dir]
25
- @clean_output_dir = config[:clean_output_dir].nil? ? true : config[:clean_output_dir]
26
24
  raise ArgumentError, 'Package is required' if package.nil?
27
25
  raise ArgumentError, 'Version is required' if version.nil?
28
26
  raise ArgumentError, "Package #{package} is not a directory" unless Dir.exist?(package)
@@ -33,12 +31,18 @@ class OodPackaging::Package
33
31
  @container_name ||= SecureRandom.uuid
34
32
  end
35
33
 
36
- def debug
34
+ def debug?
37
35
  return true if ENV['OOD_PACKAGING_DEBUG'] == 'true'
38
36
 
39
37
  @config[:debug].nil? ? false : @config[:debug]
40
38
  end
41
39
 
40
+ def cmd_suffix
41
+ return '' if debug?
42
+
43
+ ' 2>/dev/null 1>/dev/null'
44
+ end
45
+
42
46
  def attach?
43
47
  return true if ENV['OOD_PACKAGING_ATTACH'] == 'true'
44
48
 
@@ -49,10 +53,22 @@ class OodPackaging::Package
49
53
  @work_dir ||= File.expand_path(@config[:work_dir])
50
54
  end
51
55
 
56
+ def clean_work_dir
57
+ return false if ENV['OOD_PACKAGING_CLEAN_WORK_DIR'] == 'false'
58
+
59
+ @config[:clean_work_dir].nil? ? true : @config[:clean_work_dir]
60
+ end
61
+
52
62
  def output_dir
53
63
  @output_dir ||= File.expand_path(@config[:output_dir])
54
64
  end
55
65
 
66
+ def clean_output_dir
67
+ return false if ENV['OOD_PACKAGING_CLEAN_OUTPUT_DIR'] == 'false'
68
+
69
+ @config[:clean_output_dir].nil? ? true : @config[:clean_output_dir]
70
+ end
71
+
56
72
  def package
57
73
  @config[:package]
58
74
  end
@@ -75,20 +91,21 @@ class OodPackaging::Package
75
91
 
76
92
  def package_name
77
93
  name = File.basename(package)
78
- if name =~ /deb|rpm/
94
+ case name
95
+ when /deb|rpm/
79
96
  name = if File.basename(File.dirname(package)) == 'packages'
80
97
  File.basename(File.dirname(File.dirname(package)))
81
98
  else
82
99
  File.basename(File.dirname(package))
83
100
  end
101
+ when 'packaging'
102
+ name = File.basename(File.dirname(package))
84
103
  end
85
104
  name
86
105
  end
87
106
 
88
107
  def gpg_files
89
108
  [
90
- OpenStruct.new(private_key: File.join(proj_root, 'ondemand.sec'), passphrase: File.join(proj_root, '.gpgpass')),
91
- OpenStruct.new(private_key: File.join(package, 'ondemand.sec'), passphrase: File.join(package, '.gpgpass')),
92
109
  OpenStruct.new(private_key: @config[:gpg_private_key], passphrase: @config[:gpg_passphrase]),
93
110
  OpenStruct.new(private_key: ENV['OOD_PACKAGING_GPG_PRIVATE_KEY'],
94
111
  passphrase: ENV['OOD_PACKAGING_GPG_PASSPHRASE'])
@@ -106,8 +123,12 @@ class OodPackaging::Package
106
123
  !gpg_files.nil?
107
124
  end
108
125
 
126
+ def default_gpg_name
127
+ 'OnDemand Release Signing Key'
128
+ end
129
+
109
130
  def gpg_name
110
- @config[:gpg_name].nil? ? 'OnDemand Release Signing Key' : @config[:gpg_name]
131
+ @config[:gpg_name].nil? ? default_gpg_name : @config[:gpg_name]
111
132
  end
112
133
 
113
134
  def container_init
@@ -123,10 +144,23 @@ class OodPackaging::Package
123
144
  package
124
145
  end
125
146
 
126
- def rpm_tar_dest_dir
127
- dir = File.join(package, 'rpm')
128
- return dir if Dir.exist?(dir)
147
+ def tar_name
148
+ version = if build_box.rpm?
149
+ rpm_version
150
+ else
151
+ deb_version
152
+ end
153
+ "#{package_name}-#{version}"
154
+ end
129
155
 
156
+ def rpm_tar_dest_dir
157
+ [
158
+ File.join(package, 'rpm'),
159
+ File.join(package, 'packaging/rpm'),
160
+ File.join(package, 'packaging')
161
+ ].each do |dir|
162
+ return dir if Dir.exist?(dir)
163
+ end
130
164
  File.join(package, 'packaging/rpm')
131
165
  end
132
166
 
@@ -158,7 +192,7 @@ class OodPackaging::Package
158
192
  cmd.concat exec_launchers if docker_runtime?
159
193
  cmd.concat ['scl', 'enable', scl_ruby, '--'] if podman_runtime? && build_box.scl?
160
194
  cmd.concat [File.join(ctr_scripts_dir, 'rake')]
161
- cmd.concat ['-q'] unless debug
195
+ cmd.concat ['-q'] unless debug?
162
196
  cmd.concat ['-f', File.join(ctr_scripts_dir, 'Rakefile'), 'ood_packaging:package:build']
163
197
  cmd
164
198
  end
@@ -184,33 +218,31 @@ class OodPackaging::Package
184
218
  end
185
219
 
186
220
  def clean!
187
- sh "rm -rf #{work_dir}", verbose: debug if @clean_work_dir
188
- sh "rm -rf #{output_dir}", verbose: debug if @clean_output_dir
221
+ sh "rm -rf #{work_dir}", verbose: debug? if clean_work_dir
222
+ sh "rm -rf #{output_dir}", verbose: debug? if clean_output_dir
189
223
  end
190
224
 
191
225
  def bootstrap!
192
- sh "mkdir -p #{work_dir}", verbose: debug
193
- sh "mkdir -p #{output_dir}", verbose: debug
226
+ sh "mkdir -p #{work_dir}", verbose: debug?
227
+ sh "mkdir -p #{output_dir}", verbose: debug?
194
228
  end
195
229
 
196
230
  def tar!
197
231
  cmd = ['git', 'ls-files', '.', '|', tar, '-c']
198
232
  if build_box.rpm?
199
233
  dir = rpm_tar_dest_dir
200
- version = rpm_version
201
234
  else
202
235
  dir = deb_tar_dest_dir.tap { |p| sh "mkdir -p #{p}" }
203
- version = deb_version
204
236
  cmd.concat ["--transform 'flags=r;s,packaging/deb,debian,'"]
205
237
  end
206
- tar_file = "#{dir}/#{package_name}-#{version}.tar.gz"
207
- cmd.concat ["--transform 's,^,#{package_name}-#{version}/,'"]
238
+ tar_file = "#{dir}/#{tar_name}.tar.gz"
239
+ cmd.concat ["--transform 's,^,#{tar_name}/,'"]
208
240
  cmd.concat ['-T', '-', '|', "gzip > #{tar_file}"]
209
241
 
210
242
  sh "rm #{tar_file}" if File.exist?(tar_file)
211
243
  puts "Create tar archive #{tar_file}".blue
212
244
  Dir.chdir(tar_path) do
213
- sh cmd.join(' '), verbose: debug
245
+ sh cmd.join(' '), verbose: debug?
214
246
  end
215
247
  end
216
248
 
@@ -224,19 +256,19 @@ class OodPackaging::Package
224
256
  tar! if tar?
225
257
  container_start!
226
258
  container_exec!(exec_rake)
259
+ puts "Build SUCCESS: package=#{package} dist=#{build_box.dist}".green
227
260
  rescue RuntimeError
228
- # ret = 1
229
261
  puts "Build FAILED package=#{package} dist=#{build_box.dist}".red
230
262
  raise
231
- else
232
- puts "Build SUCCESS: package=#{package} dist=#{build_box.dist}".green
233
263
  ensure
234
264
  container_exec!(exec_attach, ['-i', '-t']) if attach?
235
- container_kill! if container_running?
265
+ container_kill! if container_running? && !attach?
236
266
  end
237
267
 
238
268
  def container_running?
239
- `#{container_runtime} inspect #{container_name} 2>/dev/null 1>/dev/null`
269
+ cmd = "#{container_runtime} inspect #{container_name} 2>/dev/null 1>/dev/null"
270
+ puts cmd if debug?
271
+ `#{cmd}`
240
272
  $CHILD_STATUS.success?
241
273
  end
242
274
 
@@ -247,9 +279,9 @@ class OodPackaging::Package
247
279
  cmd.concat container_mounts
248
280
  cmd.concat [build_box.image_tag]
249
281
  cmd.concat [container_init]
250
- cmd.concat ['1>/dev/null'] unless debug
282
+ cmd.concat ['1>/dev/null'] unless debug?
251
283
  puts "Starting container #{container_name} using image #{build_box.image_tag}".blue
252
- sh cmd.join(' '), verbose: debug
284
+ sh cmd.join(' '), verbose: debug?
253
285
  end
254
286
 
255
287
  def container_exec!(exec_cmd, extra_args = [])
@@ -261,29 +293,33 @@ class OodPackaging::Package
261
293
  cmd.concat [container_name]
262
294
  cmd.concat exec_cmd
263
295
  puts "Build STARTED: package=#{package} dist=#{build_box.dist} exec=#{exec_cmd[-1]}".blue
264
- sh cmd.join(' '), verbose: debug
296
+ sh cmd.join(' '), verbose: debug?
297
+ true
298
+ rescue RuntimeError
299
+ container_kill! if container_running? && !attach?
300
+ raise
265
301
  end
266
302
 
267
303
  def container_kill!
268
304
  puts "Killing container #{container_name}".blue
269
305
  cmd = [container_runtime, 'kill', container_name]
270
- cmd.concat ['1>/dev/null', '2>/dev/null'] unless debug
271
- sh cmd.join(' '), verbose: debug
306
+ cmd.concat [cmd_suffix] unless debug?
307
+ sh cmd.join(' '), verbose: debug?
272
308
  end
273
309
 
274
310
  def container_env
275
311
  env = {
276
312
  'DIST' => build_box.dist,
277
313
  'PACKAGE' => package_name,
314
+ 'VERSION' => version,
315
+ 'TAR_NAME' => "#{tar_name}.tar.gz",
278
316
  'GPG_SIGN' => gpg_sign,
279
317
  'GPG_NAME' => gpg_name,
280
318
  'SKIP_DOWNLOAD' => @config[:skip_download],
281
319
  'OOD_UID' => Process.uid,
282
320
  'OOD_GID' => Process.gid,
283
- 'DEBUG' => debug
321
+ 'DEBUG' => debug?
284
322
  }
285
- env['VERSION'] = rpm_version if build_box.rpm?
286
- env['VERSION'] = deb_version if build_box.deb?
287
323
  env['GPG_PUBKEY'] = '/gpg.pub' if @config[:gpg_pubkey]
288
324
  env
289
325
  end
@@ -7,6 +7,14 @@ require 'ood_packaging/utils'
7
7
  namespace :ood_packaging do
8
8
  include OodPackaging::Utils
9
9
 
10
+ desc 'Set version'
11
+ task :version, [:version] do |_task, args|
12
+ version_file = File.join(proj_root, 'lib/ood_packaging/version.rb')
13
+ version = args[:version].gsub(/^v/, '')
14
+ sh "#{sed} -i -r \"s| VERSION =.*| VERSION = '#{version}'|g\" #{version_file}"
15
+ sh 'bundle install'
16
+ end
17
+
10
18
  namespace :buildbox do
11
19
  desc 'Build buildbox image'
12
20
  task :build, [:dist] do |_task, args|
@@ -20,6 +28,12 @@ namespace :ood_packaging do
20
28
  @build_box.push!
21
29
  end
22
30
 
31
+ desc 'Pull buildbox image'
32
+ task :pull, [:dist] do |_task, args|
33
+ @build_box = OodPackaging::BuildBox.new(args)
34
+ @build_box.pull!
35
+ end
36
+
23
37
  desc 'Save buildbox image'
24
38
  task :save, [:dist, :path] do |_task, args|
25
39
  @build_box = OodPackaging::BuildBox.new(args)
@@ -36,8 +50,9 @@ namespace :ood_packaging do
36
50
  OodPackaging::RakeTask.new(:internal, [:package, :dist]) do |t, args|
37
51
  name = args[:package].split(':').last
38
52
  t.package = File.join(proj_root, 'packages', name)
39
- t.dist = args[:dist]
40
- t.version = OodPackaging.package_version(name, args[:dist])
53
+ dist = args[:dist] || ENV['OOD_PACKAGING_DIST']
54
+ t.dist = dist
55
+ t.version = OodPackaging.package_version(name, dist)
41
56
  t.work_dir = File.join(proj_root, 'tmp/work')
42
57
  t.output_dir = File.join(proj_root, 'tmp/output')
43
58
  end
@@ -15,6 +15,13 @@ module OodPackaging::Utils
15
15
  end
16
16
  end
17
17
 
18
+ def sed
19
+ @sed ||= begin
20
+ `which gsed 1>/dev/null 2>&1`
21
+ $CHILD_STATUS.success? ? 'gsed' : 'sed'
22
+ end
23
+ end
24
+
18
25
  def podman_runtime?
19
26
  @podman_runtime ||= ENV['CONTAINER_RT'] == 'podman' || ENV['container'] == 'podman'
20
27
  end
@@ -48,7 +55,7 @@ module OodPackaging::Utils
48
55
  end
49
56
 
50
57
  def ondemand_repo_version
51
- '2.1'
58
+ '2.0'
52
59
  end
53
60
 
54
61
  def ruby_version
@@ -60,7 +67,7 @@ module OodPackaging::Utils
60
67
  end
61
68
 
62
69
  def nodejs_version
63
- '14'
70
+ '12'
64
71
  end
65
72
 
66
73
  def ctr_scripts_dir
@@ -2,25 +2,25 @@
2
2
 
3
3
  # Version code for OodPackaging
4
4
  module OodPackaging
5
- VERSION = '0.0.1.rc.6'
5
+ VERSION = '0.0.2.r2.0'
6
6
  PACKAGE_VERSION = {
7
7
  'ondemand-release' => {
8
- '(ubuntu|debian)' => '2.1.0',
9
- 'default' => '2.1'
8
+ '(ubuntu|debian)' => '2.0.0',
9
+ 'default' => '2.0'
10
10
  },
11
11
  'ondemand-release-latest' => {
12
12
  '(ubuntu|debian)' => '1',
13
- 'default' => '1-6'
13
+ 'default' => '1-7'
14
14
  },
15
- 'ondemand-runtime' => '2.1',
16
- 'passenger' => '6.0.11',
15
+ 'ondemand-runtime' => '2.0-2',
16
+ 'passenger' => '6.0.14',
17
17
  'cjose' => '0.6.1',
18
18
  'mod_auth_openidc' => '2.4.5',
19
19
  'sqlite' => '3.26.0-4',
20
20
  'ondemand_exporter' => '0.9.0',
21
21
  'ondemand-compute' => {
22
- '(ubuntu|debian)' => '2.1.0',
23
- 'default' => '2.1'
22
+ '(ubuntu|debian)' => '2.0',
23
+ 'default' => '2.0'
24
24
  },
25
25
  'python-websockify' => '0.8.0',
26
26
  'turbovnc' => '2.2.5'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ood_packaging
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.rc.6
4
+ version: 0.0.2.r2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Trey Dockendorf
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-12-22 00:00:00.000000000 Z
12
+ date: 2022-07-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -113,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
113
  - !ruby/object:Gem::Version
114
114
  version: 1.3.1
115
115
  requirements: []
116
- rubygems_version: 3.1.2
116
+ rubygems_version: 3.2.33
117
117
  signing_key:
118
118
  specification_version: 4
119
119
  summary: Open OnDemand packaging library