conjur-debify 0.7.0 → 0.8.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/CHANGELOG.md +8 -0
- data/features/debify.feature +1 -1
- data/lib/conjur/debify.rb +41 -41
- data/lib/conjur/debify/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90432693c649a1eb23de7b962899831314859166
|
4
|
+
data.tar.gz: 3a690c6eecbf7dc1c8874321fad63b27775faa3d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7bda53b7b5ba6895e6d0e1ab4b65c39006c6cbec431d14e4b82387148457e9107c70da4acb14a8d8e020b3015f1cf0b35fb35f7d1b5b0b2c0870499611f41312
|
7
|
+
data.tar.gz: 26176ae31025c4559be428ff3fdf8c4545689379f876a5a8e9d31559119ee980206de3a0412c226f513cbabed6d9dc2b4541a479579ccedb05d5714c74ea3047
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
# 0.8.0
|
2
|
+
|
3
|
+
* Remove the need for a 'latest' debian
|
4
|
+
* Fix bug in the error message for 'detect_version'
|
5
|
+
* Use a more reliable way to detect the current branch
|
6
|
+
* `publish` : Remove the default value of the 'component' flag
|
7
|
+
* `clean` : Don't create a container unless deletions will actually be performed
|
8
|
+
|
1
9
|
# 0.7.0
|
2
10
|
|
3
11
|
* Add `debify clean`
|
data/features/debify.feature
CHANGED
@@ -16,6 +16,6 @@ Feature: Packaging
|
|
16
16
|
@announce-output
|
17
17
|
Scenario: 'example' project can be tested successfully
|
18
18
|
Given I successfully run `env DEBUG=true GLI_DEBUG=true debify package -d ../../example -v 0.0.1 example -- --post-install /distrib/postinstall.sh`
|
19
|
-
When I run `env DEBUG=true GLI_DEBUG=true debify test -t 4.6-stable -d ../../example --no-pull example test.sh`
|
19
|
+
When I run `env DEBUG=true GLI_DEBUG=true debify test -t 4.6-stable -v 0.0.1 -d ../../example --no-pull example test.sh`
|
20
20
|
Then the exit status should be 0
|
21
21
|
And the stderr should contain "Test succeeded"
|
data/lib/conjur/debify.rb
CHANGED
@@ -54,7 +54,7 @@ arguments :strict
|
|
54
54
|
|
55
55
|
def detect_version
|
56
56
|
`git describe --long --tags --abbrev=7 | sed -e 's/^v//'`.strip.tap do |version|
|
57
|
-
raise "No Git version (tag) for project
|
57
|
+
raise "No Git version (tag) for project" if version.empty?
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
@@ -119,32 +119,34 @@ command "clean" do |c|
|
|
119
119
|
delete_files.delete_if{|file|
|
120
120
|
File.directory?(file) || ignore_file?(file)
|
121
121
|
}
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
[ "rm", "-f", file ]
|
139
|
-
|
140
|
-
|
122
|
+
if perform_deletion
|
123
|
+
image = Docker::Image.create 'fromImage' => "alpine:3.3"
|
124
|
+
options = {
|
125
|
+
'Cmd' => [ "sh", "-c", "while true; do sleep 1; done" ],
|
126
|
+
'Image' => image.id,
|
127
|
+
'Binds' => [
|
128
|
+
[ dir, "/src" ].join(':'),
|
129
|
+
]
|
130
|
+
}
|
131
|
+
container = Docker::Container.create options
|
132
|
+
begin
|
133
|
+
container.start
|
134
|
+
delete_files.each do |file|
|
135
|
+
puts file
|
136
|
+
|
137
|
+
file = "/src/#{file}"
|
138
|
+
cmd = [ "rm", "-f", file ]
|
139
|
+
|
140
|
+
stdout, stderr, status = container.exec cmd, &DebugMixin::DOCKER
|
141
|
+
$stderr.puts "Failed to delete #{file}" unless status == 0
|
141
142
|
end
|
142
|
-
|
143
|
-
|
144
|
-
|
143
|
+
ensure
|
144
|
+
container.delete force: true
|
145
|
+
end
|
146
|
+
else
|
147
|
+
delete_files.each do |file|
|
148
|
+
puts file
|
145
149
|
end
|
146
|
-
ensure
|
147
|
-
container.delete force: true
|
148
150
|
end
|
149
151
|
end
|
150
152
|
end
|
@@ -238,7 +240,6 @@ command "package" do |c|
|
|
238
240
|
tar = Gem::Package::TarReader.new deb
|
239
241
|
tar.first.tap do |entry|
|
240
242
|
open(entry.full_name, 'wb') {|f| f.write(entry.read)}
|
241
|
-
FileUtils.ln_sf entry.full_name, entry.full_name.gsub(version, "latest")
|
242
243
|
puts entry.full_name
|
243
244
|
end
|
244
245
|
ensure
|
@@ -258,7 +259,7 @@ password, etc). The project source tree is also mounted into the container, at
|
|
258
259
|
/src/<project-name>.
|
259
260
|
|
260
261
|
This command then waits for Conjur to initialize and be healthy. It proceeds by
|
261
|
-
installing the conjur-<project-name>
|
262
|
+
installing the conjur-<project-name>_<version>_amd64.deb from the project working directory.
|
262
263
|
|
263
264
|
Then the evoke "test-install" command is used to install the test code in the
|
264
265
|
/src/<project-name>. Basically, the development bundle is installed and the database
|
@@ -285,10 +286,13 @@ command "test" do |c|
|
|
285
286
|
c.desc "Image tag, e.g. 4.5-stable, 4.6-stable"
|
286
287
|
c.flag [ :t, "image-tag"]
|
287
288
|
|
288
|
-
c.desc "
|
289
|
+
c.desc "'docker pull' the Conjur container image"
|
289
290
|
c.default_value true
|
290
291
|
c.switch [ :pull ]
|
291
|
-
|
292
|
+
|
293
|
+
c.desc "Specify the deb version; by default, it's computed from the Git tag"
|
294
|
+
c.flag [ :v, :version ]
|
295
|
+
|
292
296
|
c.action do |global_options,cmd_options,args|
|
293
297
|
raise "project-name is required" unless project_name = args.shift
|
294
298
|
raise "test-script is required" unless test_script = args.shift
|
@@ -303,24 +307,25 @@ command "test" do |c|
|
|
303
307
|
Dir.chdir dir do
|
304
308
|
image_tag = cmd_options["image-tag"] or raise "image-tag is required"
|
305
309
|
appliance_image_id = [ cmd_options[:image], image_tag ].join(":")
|
310
|
+
version = cmd_options[:version] || detect_version
|
311
|
+
package_name = "conjur-#{project_name}_#{version}_amd64.deb"
|
306
312
|
|
307
313
|
raise "#{test_script} does not exist or is not a file" unless File.file?(test_script)
|
308
314
|
|
309
315
|
Docker::Image.create 'fromImage' => appliance_image_id, &DebugMixin::DOCKER if cmd_options[:pull]
|
310
316
|
|
311
|
-
def build_test_image(appliance_image_id, project_name)
|
312
|
-
deb = "conjur-#{project_name}_latest_amd64.deb"
|
317
|
+
def build_test_image(appliance_image_id, project_name, package_name)
|
313
318
|
dockerfile = <<-DOCKERFILE
|
314
319
|
FROM #{appliance_image_id}
|
315
320
|
|
316
|
-
COPY #{
|
321
|
+
COPY #{package_name} /tmp/
|
317
322
|
|
318
323
|
RUN rm -rf /opt/conjur/#{project_name}
|
319
324
|
RUN rm -f /opt/conjur/etc/#{project_name}.conf
|
320
325
|
RUN rm -f /usr/local/bin/conjur-#{project_name}
|
321
326
|
|
322
327
|
RUN dpkg --force all --purge conjur-#{project_name} || true
|
323
|
-
RUN dpkg --install /tmp/#{
|
328
|
+
RUN dpkg --install /tmp/#{package_name}
|
324
329
|
|
325
330
|
RUN touch /etc/service/conjur/down
|
326
331
|
DOCKERFILE
|
@@ -328,7 +333,7 @@ RUN touch /etc/service/conjur/down
|
|
328
333
|
tmpfile = Tempfile.new('Dockerfile', tmpdir)
|
329
334
|
File.write(tmpfile, dockerfile)
|
330
335
|
dockerfile_name = File.basename(tmpfile.path)
|
331
|
-
tar_cmd = "tar -cvzh -C #{tmpdir} #{dockerfile_name} -C #{Dir.pwd} #{
|
336
|
+
tar_cmd = "tar -cvzh -C #{tmpdir} #{dockerfile_name} -C #{Dir.pwd} #{package_name}"
|
332
337
|
tar = open("| #{tar_cmd}")
|
333
338
|
begin
|
334
339
|
Docker::Image.build_from_tar(tar, :dockerfile => dockerfile_name, &DebugMixin::DOCKER)
|
@@ -338,7 +343,7 @@ RUN touch /etc/service/conjur/down
|
|
338
343
|
end
|
339
344
|
end
|
340
345
|
|
341
|
-
appliance_image = build_test_image(appliance_image_id, project_name)
|
346
|
+
appliance_image = build_test_image(appliance_image_id, project_name, package_name)
|
342
347
|
|
343
348
|
vendor_dir = File.expand_path("tmp/debify/#{project_name}/vendor", ENV['HOME'])
|
344
349
|
dot_bundle_dir = File.expand_path("tmp/debify/#{project_name}/.bundle", ENV['HOME'])
|
@@ -448,7 +453,6 @@ command "publish" do |c|
|
|
448
453
|
c.flag [ :v, :version ]
|
449
454
|
|
450
455
|
c.desc "Maturity stage of the package, 'testing' or 'stable'"
|
451
|
-
c.default_value "testing"
|
452
456
|
c.flag [ :c, :component ]
|
453
457
|
|
454
458
|
c.action do |global_options,cmd_options,args|
|
@@ -457,10 +461,7 @@ command "publish" do |c|
|
|
457
461
|
raise "Receive extra command-line arguments" if args.shift
|
458
462
|
|
459
463
|
def detect_component
|
460
|
-
branch = ENV['GIT_BRANCH']
|
461
|
-
unless branch
|
462
|
-
branch = `git describe --all`
|
463
|
-
end
|
464
|
+
branch = ENV['GIT_BRANCH'] || `git rev-parse --abbrev-ref HEAD`.strip
|
464
465
|
if %w(master origin/master).include?(branch)
|
465
466
|
'stable'
|
466
467
|
else
|
@@ -476,7 +477,6 @@ command "publish" do |c|
|
|
476
477
|
Dir.chdir dir do
|
477
478
|
version = cmd_options[:version] || detect_version
|
478
479
|
component = cmd_options[:component] || detect_component
|
479
|
-
|
480
480
|
package_name = "conjur-#{project_name}_#{version}_amd64.deb"
|
481
481
|
|
482
482
|
publish_image = Docker::Image.build_from_dir File.expand_path('publish', File.dirname(__FILE__)), tag: "debify-publish", &DebugMixin::DOCKER
|