miniexec 0.0.3 → 0.0.8

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 (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