donce 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/donce.gemspec +1 -1
- data/lib/donce.rb +5 -3
- data/test/test_donce.rb +13 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad7d3419ce887d6b42f6f92f6dc9ad8414b0c3c89c1fb0ef4600972ac54f754e
|
4
|
+
data.tar.gz: a8d95d419418e037968ae4f659a5b538a8c67c44fee323974befefa7d5651b5c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22738b8cdd2b2eef8188c1e69dfea55a7d3b7317f73623fd2230cd65695dd033994f58a62fca0e549a5e846245c61b1ec0d870760d79becda4e4a769f62ba9dc
|
7
|
+
data.tar.gz: 86ee931f8f8149192661d2541b19abbd58377dd8d6aa7fc5770fbe1fdc66819aeb8ff409224938b74acedf5a94b5d961c40439f4263d83cdf3eb1e84b9e24169
|
data/donce.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |s|
|
|
26
26
|
s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
|
27
27
|
s.required_ruby_version = '>=3.0'
|
28
28
|
s.name = 'donce'
|
29
|
-
s.version = '0.0.
|
29
|
+
s.version = '0.0.3'
|
30
30
|
s.license = 'MIT'
|
31
31
|
s.summary = 'Builds and starts temporary Docker containers'
|
32
32
|
s.description =
|
data/lib/donce.rb
CHANGED
@@ -91,10 +91,12 @@ module Kernel
|
|
91
91
|
else
|
92
92
|
i = "donce-#{SecureRandom.hex(8)}"
|
93
93
|
if dockerfile
|
94
|
-
Dir.mktmpdir do |
|
95
|
-
File.write(File.join(
|
96
|
-
qbash("#{docker} build #{Shellwords.escape(
|
94
|
+
Dir.mktmpdir do |tmp|
|
95
|
+
File.write(File.join(tmp, 'Dockerfile'), dockerfile)
|
96
|
+
qbash("#{docker} build #{Shellwords.escape(tmp)} -t #{i}", log:)
|
97
97
|
end
|
98
|
+
else
|
99
|
+
qbash("#{docker} build #{Shellwords.escape(home)} -t #{i}", log:)
|
98
100
|
end
|
99
101
|
i
|
100
102
|
end
|
data/test/test_donce.rb
CHANGED
@@ -34,6 +34,19 @@ class TestDonce < Minitest::Test
|
|
34
34
|
assert_equal("hello\n", stdout)
|
35
35
|
end
|
36
36
|
|
37
|
+
def test_runs_existing_image
|
38
|
+
stdout = donce(image: 'ubuntu:24.04', command: 'echo hello', log: Loog::NULL)
|
39
|
+
assert_equal("hello\n", stdout)
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_runs_from_home
|
43
|
+
Dir.mktmpdir do |home|
|
44
|
+
File.write(File.join(home, 'Dockerfile'), "FROM ubuntu\nCMD echo hello")
|
45
|
+
stdout = donce(home:, log: Loog::NULL)
|
46
|
+
assert_equal("hello\n", stdout)
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
37
50
|
def test_runs_daemon
|
38
51
|
seen = false
|
39
52
|
donce(dockerfile: "FROM ubuntu\nCMD while true; do sleep 1; echo sleeping; done", log: Loog::NULL) do |id|
|