miniexec 0.2.2 → 0.2.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/miniexec.rb +13 -8
- metadata +31 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d9ae78bcac71ba6ec6b8c39dfca84f9ae3626012570b92afa8608287ee424b3
|
4
|
+
data.tar.gz: f3622335d05aaf6cd21be3ad23a5be55ccf88daddb00d2cd53b4fb35ff540d1c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3c0dc102deb2a3acc3c904311000a2a0ae496457cac33c2fd8a595467cff0c1e364bffe709d10164df24deeb2850ffa88002a25f47cb303c19c1c7cb28744925
|
7
|
+
data.tar.gz: 5d244fde357b806c71495233b622a2b215bc7dbb2cd127a2d2d1bc684d7ff86ea12bcc7cff63db5382cacc5965ac02f3703f624b60f3ac208ab1cfd31a242f1f
|
data/lib/miniexec.rb
CHANGED
@@ -41,19 +41,19 @@ module MiniExec
|
|
41
41
|
@job = @workflow[job]
|
42
42
|
@job['name'] = job
|
43
43
|
@default_image = @workflow['image'] || 'debian:buster-slim'
|
44
|
-
@image = set_job_image
|
45
44
|
@entrypoint = set_job_entrypoint
|
46
45
|
@binds = binds
|
47
46
|
@mount_cwd = mount_cwd
|
48
47
|
@env = {}
|
49
48
|
[
|
50
|
-
env,
|
51
|
-
gitlab_env,
|
52
49
|
@workflow['variables'],
|
53
|
-
@job['variables']
|
50
|
+
@job['variables'],
|
51
|
+
gitlab_env,
|
52
|
+
env
|
54
53
|
].each do |var_set|
|
55
54
|
@env.merge!(var_set.transform_values { |v| Util.expand_var(v.to_s, @env) }) if var_set
|
56
55
|
end
|
56
|
+
@image = set_job_image
|
57
57
|
@script = compile_script
|
58
58
|
@runlog = []
|
59
59
|
configure_logger
|
@@ -85,7 +85,7 @@ module MiniExec
|
|
85
85
|
Volumes: binds.map { |b| { b => { path_parent: 'rw' } } }.inject(:merge),
|
86
86
|
Env: @env.map { |k, v| "#{k}=#{v}" }
|
87
87
|
)
|
88
|
-
container.store_file(script_path, @script)
|
88
|
+
container.store_file(script_path, { content: @script, permissions: 0o0644 })
|
89
89
|
container.start({ Binds: [@binds] })
|
90
90
|
container.tap(&:start).attach { |_, chunk| puts chunk; @runlog.push chunk}
|
91
91
|
@logger.info 'Job finished. Removing container.'
|
@@ -102,8 +102,8 @@ module MiniExec
|
|
102
102
|
image = @job['image'] if @job['image'].instance_of?(String)
|
103
103
|
image = @job['image']['name'] if @job['image'].instance_of?(Hash)
|
104
104
|
end
|
105
|
-
|
106
|
-
|
105
|
+
return Util.expand_var(image, @env) if image
|
106
|
+
@default_image
|
107
107
|
end
|
108
108
|
|
109
109
|
def set_job_entrypoint
|
@@ -152,10 +152,15 @@ module MiniExec
|
|
152
152
|
end
|
153
153
|
|
154
154
|
def compile_script
|
155
|
+
# This is a bit hacky but we need a way to force the shebang there
|
156
|
+
preamble = [
|
157
|
+
'#!/bin/bash'
|
158
|
+
].join("\n").strip
|
159
|
+
|
155
160
|
before_script = @job['before_script'] || ''
|
156
161
|
script = @job['script'] || ''
|
157
162
|
after_script = @job['after_script'] || ''
|
158
|
-
[before_script, script, after_script].flatten.join("\n").strip
|
163
|
+
[preamble, before_script, script, after_script].flatten.join("\n").strip
|
159
164
|
end
|
160
165
|
end
|
161
166
|
end
|
metadata
CHANGED
@@ -1,15 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: miniexec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Pugh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
12
|
-
dependencies:
|
11
|
+
date: 2021-11-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: docker-api
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: git
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.8'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.8'
|
13
41
|
description: A minimal interpretor/executor for .gitlab-ci.yml
|
14
42
|
email: pugh@s3kr.it
|
15
43
|
executables:
|