miniexec 0.2.2 → 0.2.7

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/miniexec.rb +13 -8
  3. metadata +31 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69219c3771eda716d56f9ee00bb7d8a7a9c214b38a35d17d2c14e297a0887420
4
- data.tar.gz: 5ad61f25f0f1f757325e3e05be347ab3eae5d1861853c67ef938cc286fbdecd8
3
+ metadata.gz: 4d9ae78bcac71ba6ec6b8c39dfca84f9ae3626012570b92afa8608287ee424b3
4
+ data.tar.gz: f3622335d05aaf6cd21be3ad23a5be55ccf88daddb00d2cd53b4fb35ff540d1c
5
5
  SHA512:
6
- metadata.gz: d2413f6f8cf00ee930073576d7f82272bb46927ae74bbe0877ab49564ffe37ea2ca5b7183ae62fbc0fe58025d53877cd585b0ee30313116ab67f7aac553a71eb
7
- data.tar.gz: 6b99388154b691babbd489e16e8ea54e711b9451776e99792cdcf9e3bea8798e7295abf6eabb018d7fb5a0f99d444f0d0b481969743e996d7cd2c18a287cf6e2
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
- image || @default_image
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.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-06-01 00:00:00.000000000 Z
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: