miniexec 0.0.3 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/miniexec +6 -4
  3. data/lib/miniexec.rb +11 -12
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7167acf5043ec6bf1dd58585100d89cc68704bcbcabd1d9dbb516aa264263bc5
4
- data.tar.gz: 61077414a22ad766389a6b869fa776858955733cc32c667bf94d1d89bb0d5a49
3
+ metadata.gz: 1c459ebbf1b0b28551c9d8243d323552518f19594ebf1cd327db16a0e4a629c5
4
+ data.tar.gz: 03c7bb377700b97f4bace54b20c1ca10d75be95f6e773e7347204d17fbed6a9a
5
5
  SHA512:
6
- metadata.gz: 5cab8edace6a15d9c8e7bd7afb9efc46778fcf99821ff58ae34fd9c3c9fd7fb8387b1e98719c68c160fef5aab95a9f1c599d6be99f6215a253e9ef90a52be2f5
7
- data.tar.gz: 4967266794a76314873f51aaef7d245327dbfcda0bccee453f3fa5c45bc4c903b45a9d3b37ca95c9cbc6d246dc32d1bf4c28b88274749a881e827c2b1fdba46c
6
+ metadata.gz: dceeeb43f8835bc188b7bf1f7dab09b0666563b04eb3428434debe5d1125b1962fe07c0efcba15685db7b8d27bb23927558cafecb6d55d20591fa29ee89e4431
7
+ data.tar.gz: 61f032f5532532db3b935fea5538b0d5591bbe44d1cc63d8ac9a9d9d5335a5b15043dc8c52651131e0f444362a33e4c09a9b28963eadadff36050fe7c9272418
data/bin/miniexec CHANGED
@@ -1,12 +1,16 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
+ lib = File.expand_path('../lib', __dir__)
5
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
6
  require 'miniexec'
5
7
  require 'optparse'
6
8
 
7
9
  options = {
8
10
  binds: [],
9
- env: {}
11
+ env: {},
12
+ path: '.',
13
+ docker: ENV['DOCKER_HOST'] || '/run/docker.sock'
10
14
  }
11
15
 
12
16
  OptionParser.new do |opts|
@@ -34,17 +38,15 @@ OptionParser.new do |opts|
34
38
  end
35
39
  opts.on('-d', '--docker-url URL',
36
40
  'Location of the docker socket') do |sock|
37
- options[:docker] = sock || ENV['DOCKER_HOST'] || '/run/docker.sock'
41
+ options[:docker] = sock
38
42
  end
39
43
  end.parse!
40
44
 
41
45
  raise OptionParser::MissingArgument, 'Specify a job with -j' if options[:job].nil?
42
- raise OptionParser::MissingArgument, 'Specify a job with -p' if options[:path].nil?
43
46
 
44
47
  MiniExec.config(project_path: options[:path])
45
48
  exec = MiniExec.new options[:job],
46
49
  docker_url: options[:docker],
47
50
  binds: options[:binds],
48
51
  env: options[:env]
49
-
50
52
  exec.run_job
data/lib/miniexec.rb CHANGED
@@ -8,7 +8,6 @@ class MiniExec
8
8
  require 'tempfile'
9
9
  require 'yaml'
10
10
  require 'git'
11
- require 'pry'
12
11
  # Class instance variables
13
12
  @project_path = '.'
14
13
  @workflow_file = '.gitlab-ci.yml'
@@ -47,11 +46,11 @@ class MiniExec
47
46
 
48
47
  def run_job
49
48
  script_path = "/tmp/#{@job['name']}.sh"
50
- @logger.debug "Fetching image #{@image}"
49
+ @logger.info "Fetching image #{@image}"
51
50
  Docker::Image.create(fromImage: @image)
52
- @logger.debug 'Image fetched'
51
+ @logger.info 'Image fetched'
53
52
  Dir.chdir(@project_path) do
54
- @logger.debug 'Creating container'
53
+ @logger.info 'Creating container'
55
54
  container = Docker::Container.create(
56
55
  Cmd: ['/bin/bash', script_path],
57
56
  Image: @image,
@@ -60,7 +59,7 @@ class MiniExec
60
59
  )
61
60
  container.store_file(script_path, @script)
62
61
  container.start({ Binds: [@binds] })
63
- container.tap(&:start).attach { |_, chunk| @logger.info chunk }
62
+ container.tap(&:start).attach { |_, chunk| puts chunk }
64
63
  end
65
64
  end
66
65
 
@@ -100,8 +99,8 @@ class MiniExec
100
99
  end
101
100
 
102
101
  def variables
103
- globals = @workflow['variables']
104
- job_locals = @job['variables']
102
+ globals = @workflow['variables'] || {}
103
+ job_locals = @job['variables'] || {}
105
104
  globals.merge job_locals
106
105
  end
107
106
 
@@ -110,13 +109,13 @@ class MiniExec
110
109
  @logger.formatter = proc do |severity, _, _, msg|
111
110
  "[#{severity}]: #{msg}\n"
112
111
  end
113
- @logger.level = ENV['LOGLEVEL'] || Logger::WARN
112
+ @logger.level = ENV['LOGLEVEL'] || Logger::INFO
114
113
  end
115
114
 
116
115
  def compile_script
117
- before_script = @job['before_script'] || []
118
- script = @job['script'] || []
119
- after_script = @job['after_script'] || []
120
- (before_script + script + after_script).flatten.join("\n")
116
+ before_script = @job['before_script'] || ''
117
+ script = @job['script'] || ''
118
+ after_script = @job['after_script'] || ''
119
+ [before_script, script, after_script].flatten.join("\n").strip
121
120
  end
122
121
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miniexec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.8
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-03-25 00:00:00.000000000 Z
11
+ date: 2021-04-27 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A minimal interpretor/executor for .gitlab-ci.yml
14
14
  email: pugh@s3kr.it