rumrunner 0.3.2 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e256c9acb653c3a0fc37e04748d8207129d9a1d94e42297e38c37e6a13be0991
4
- data.tar.gz: 7ad0a4c11ca003d859292ed1329b6cc3e19bd690bb4f17d072f5294c9b5699eb
3
+ metadata.gz: da4a1989a2252315eba1d4bcd4d921b25ee90c53fd77b2ce6e720dad5a07b807
4
+ data.tar.gz: ed649270e0622f1aabc134ce1529403dc534b040b6857c5a7fd0db4c4daedbd6
5
5
  SHA512:
6
- metadata.gz: 4ecab12951fdacceb1aef118e2d4cf9579e03568945177868ec36c5a15e5c0962f6d75fe327e483058833240ed8895d90e4421eb1b77440bbcd01ca43489a1ef
7
- data.tar.gz: 767ecf30c9bb0e421a3d7919b98eee3815aafac48ec5f89adbe666d92b43513920d8aea43e33b83bf496869babddadb304f2b42564c40b3ef9fd3de18071ad10
6
+ metadata.gz: 61514ca3d73be5d90755d2a82af2abee79c38ce673ec310e77e96f7f18ea924a03f0bba8a8821745eb9ff3ce27a5f3dd03470a956e2554610670a5677fe2bb1f
7
+ data.tar.gz: 59c77172cef86582a1973b761a1e2b9d7475db4d1d477f7f721379777e5f0bb6a448eea8aba4ae673de281f961dad73de549a14bb0300d76c55977ce5ea27941
data/README.md CHANGED
@@ -1,9 +1,10 @@
1
- [![Rum Runner](https://github.com/amancevice/rumrunner/blob/master/rumrunner.png?raw=true)](https://github.com/amancevice/rumrunner)
1
+ [![Rum Runner](https://github.com/amancevice/rumrunner/blob/master/rum-runner.png?raw=true)](https://github.com/amancevice/rumrunner)
2
2
  [![Build Status](https://travis-ci.com/amancevice/rumrunner.svg?branch=master)](https://travis-ci.com/amancevice/rumrunner)
3
3
  [![Gem Version](https://badge.fury.io/rb/rumrunner.svg)](https://badge.fury.io/rb/rumrunner)
4
4
  [![Test Coverage](https://api.codeclimate.com/v1/badges/4b56853acc5cbb254125/test_coverage)](https://codeclimate.com/github/amancevice/rumrunner/test_coverage)
5
5
  [![Maintainability](https://api.codeclimate.com/v1/badges/4b56853acc5cbb254125/maintainability)](https://codeclimate.com/github/amancevice/rumrunner/maintainability)
6
6
 
7
+ <sub>logo by [seenamavaddat.com](http://seenamavaddat.com/)</sub>
7
8
 
8
9
  Rum Runner is a Rake-based utility for building multi-stage Dockerfiles.
9
10
 
@@ -34,7 +35,7 @@ gem install rumrunner
34
35
 
35
36
  ## Quickstart
36
37
 
37
- Use the `Rum.init` helper to create a template Rumfile for your project:
38
+ If you have a multi-stage Dockerfile in your project and are unsure where to begin, use the `rum init` helper to create a template Rumfile for your project:
38
39
 
39
40
  ```bash
40
41
  gem install rumrunner
@@ -42,6 +43,8 @@ rum init > Rumfile
42
43
  rum --tasks
43
44
  ```
44
45
 
46
+ The `init` command will parse a Dockerfile in the current directory and output a simple Rumfile with each stage and its dependencies declared.
47
+
45
48
  ## Example
46
49
 
47
50
  Imagine a simple multi-stage Dockerfile:
@@ -158,7 +161,13 @@ end
158
161
 
159
162
  The methods inside blocks for `build`, `run`, `stage`, `artifact`, and `shell` tasks are dynamically handled. Any option you might pass to the `docker run` or `docker build` command can be used.
160
163
 
161
- Simply drop any leading `-`s from the option and convert to snake-case. Eg, `--build-arg` becomes `build_arg`; `--env-file` becomes `env_file`.
164
+ Simply drop any leading `-`s from the option and convert to snake-case.
165
+
166
+ Eg,
167
+
168
+ `--build-arg` becomes `build_arg`
169
+
170
+ `--env-file` becomes `env_file`.
162
171
 
163
172
  ## Shared ENV variables
164
173
 
@@ -173,7 +182,7 @@ rum :image_name do
173
182
  artifact "pkg.zip" => :build
174
183
 
175
184
  # rum build => docker build --build-arg FIZZ=BUZZ ...
176
- # rum pkg.zip => docker run --env FIZZ=BUZZ ...
185
+ # rum pkg.zip => docker run --env FIZZ=BUZZ ...
177
186
  end
178
187
  ```
179
188
 
@@ -89,8 +89,8 @@ module Rum
89
89
  name, _, deps = Rake.application.resolve_args(args)
90
90
 
91
91
  # Assemble image/iidfile from manifest/stage name
92
- image = "#{@image}-#{name}"
93
- iidfile = File.join(root, image)
92
+ image = Docker::Image.parse("#{@image}-#{name}")
93
+ iidfile = File.join(root, *image)
94
94
  iidpath = File.split(iidfile).first
95
95
 
96
96
  # Ensure path to iidfile exists
@@ -98,7 +98,8 @@ module Rum
98
98
  directory iidpath
99
99
  iidpath
100
100
  else
101
- deps.map{|x| File.join(root, "#{@image}-#{x}") }
101
+ images = deps.map{|x| Docker::Image.parse("#{@image}-#{x}") }
102
+ images.map{|x| File.join(root, *x) }
102
103
  end
103
104
 
104
105
  # Build stage and save digest in iidfile
@@ -126,8 +127,8 @@ module Rum
126
127
  name, _, deps = Rake.application.resolve_args(args)
127
128
 
128
129
  target = deps.first
129
- image = "#{@image}-#{target}"
130
- iidfile = File.join(root, image)
130
+ image = Docker::Image.parse("#{@image}-#{target}")
131
+ iidfile = File.join(root, *image)
131
132
  path = File.split(name).first
132
133
  deps = [iidfile]
133
134
 
@@ -151,8 +152,8 @@ module Rum
151
152
  def shell(*args, &block)
152
153
  target = Rake.application.resolve_args(args).first
153
154
  name = task_name shell: target
154
- image = "#{@image}-#{target}"
155
- iidfile = File.join(root, image)
155
+ image = Docker::Image.parse("#{@image}-#{target}")
156
+ iidfile = File.join(root, *image)
156
157
 
157
158
  Rake::Task[name].clear if Rake::Task.task_defined?(name)
158
159
 
@@ -196,9 +197,9 @@ module Rum
196
197
  task :clean do
197
198
  Dir[File.join root, "**/*"].reverse.each do |name|
198
199
  sh "docker", "image", "rm", "--force", File.read(name) if File.file?(name)
199
- rm_r name
200
+ rm_rf name
200
201
  end
201
- rm_r root if Dir.exist?(root)
202
+ rm_rf root
202
203
  end
203
204
  end
204
205
 
@@ -206,9 +207,11 @@ module Rum
206
207
  # Install file task for stage and save digest in iidfile
207
208
  def stage_file(iidfile, iiddeps, tag:, target:, &block)
208
209
  file iidfile => iiddeps do
210
+ tsfile = "#{iidfile}@#{Time.now.utc.to_i}"
209
211
  build = Docker::Build.new(options: build_options, &block)
210
- build.with_defaults(iidfile: iidfile, tag: tag, target: target)
212
+ build.with_defaults(iidfile: tsfile, tag: tag, target: target)
211
213
  sh build.to_s
214
+ cp tsfile, iidfile
212
215
  end
213
216
  end
214
217
 
@@ -244,7 +247,7 @@ module Rum
244
247
  task task_name(clean: name) do
245
248
  if File.exist? iidfile
246
249
  sh "docker", "image", "rm", "--force", File.read(iidfile)
247
- rm iidfile
250
+ rm_rf iidfile
248
251
  end
249
252
  end
250
253
 
@@ -272,8 +275,8 @@ module Rum
272
275
  def artifact_clobber(name, path)
273
276
  desc "Remove any generated files"
274
277
  task :clobber => :clean do
275
- rm name if File.exist?(name)
276
- rm_r path if Dir.exist?(path) && path != "."
278
+ rm_rf name
279
+ rm_rf path unless path == "."
277
280
  end
278
281
  end
279
282
 
@@ -1,5 +1,5 @@
1
1
  module Rum
2
2
  ##
3
3
  # Rum Runner gem version.
4
- VERSION = "0.3.2"
4
+ VERSION = "0.3.4"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rumrunner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Mancevice
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-03 00:00:00.000000000 Z
11
+ date: 2019-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake