blubber 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/blubber/builder.rb +0 -5
- data/lib/blubber/cli.rb +1 -1
- data/lib/blubber/flow.rb +23 -1
- data/lib/blubber/tagger.rb +6 -3
- data/lib/blubber/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2484c94b32da5b9915155e5e79cabbbdb1e7b13cf0d6b4be56819e97faa673d4
|
4
|
+
data.tar.gz: 76f0b0b06e6d4e72274969f4e44c468f09edda884e90b7ee31b6e5f03fc6ffa8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74148c5d3fc3c3206235a162ad9501d14ff96149b2166769fa9b8d3780006c9a2dd1f7358a9b5eb100d59bb1caf6da7c78c9d8ef2e3e2a5913666f9bdc5b512e
|
7
|
+
data.tar.gz: 9d82634efd869b5457062e11277aa14b49b1df4053e5806c957e709aa1b8c8a4ba942e87cb37be0d1da2747b21b59a7661a5e14e2a564f29c4cb17e001492bd3
|
data/lib/blubber/builder.rb
CHANGED
@@ -43,11 +43,6 @@ module Blubber
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def build(layer)
|
46
|
-
# NOTICE : Speed up build for fresh slave
|
47
|
-
tagger.tags.each do |tag|
|
48
|
-
runner.run("docker pull #{Tagger.docker_registry}/#{layer}:#{tag}")
|
49
|
-
end
|
50
|
-
|
51
46
|
status = nil
|
52
47
|
Dir.chdir(layer) do
|
53
48
|
status = runner.run('docker build .') do |stdout, _, _|
|
data/lib/blubber/cli.rb
CHANGED
data/lib/blubber/flow.rb
CHANGED
@@ -7,7 +7,9 @@ require 'blubber/tagger'
|
|
7
7
|
module Blubber
|
8
8
|
class Flow
|
9
9
|
def self.build(layers = nil)
|
10
|
-
layers ||=
|
10
|
+
layers ||= changed_layers
|
11
|
+
|
12
|
+
puts "Building layers: #{layers.join(', ')}"
|
11
13
|
|
12
14
|
images = layers.map { |layer| Flow.new(layer: layer).run }
|
13
15
|
|
@@ -25,6 +27,25 @@ module Blubber
|
|
25
27
|
images.all? { |image| image[:success] }
|
26
28
|
end
|
27
29
|
|
30
|
+
def self.changed_layers
|
31
|
+
@changed_layers ||= begin
|
32
|
+
if ENV['GIT_PREVIOUS_SUCCESSFUL_COMMIT'] != '' && ENV['BUILD_ALL'] != 'true'
|
33
|
+
commit = ENV['GIT_COMMIT'] || `git rev-parse HEAD`.strip
|
34
|
+
changes = `git diff --name-only #{ENV['GIT_PREVIOUS_SUCCESSFUL_COMMIT']}..#{commit}`.split("\n")
|
35
|
+
paths = []
|
36
|
+
changes.each do |path|
|
37
|
+
dirs = File.dirname(path).split(File::SEPARATOR)
|
38
|
+
dirs.map.with_index { |_, i| dirs[0..i].join(File::SEPARATOR) }.reverse.each do |dir|
|
39
|
+
paths << dir if File.exist?(File.join(dir, 'Dockerfile'))
|
40
|
+
end
|
41
|
+
end
|
42
|
+
paths
|
43
|
+
else
|
44
|
+
Dir['**/*/Dockerfile'].map { |d| File.dirname(d) }.sort
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
28
49
|
def initialize(layer:)
|
29
50
|
@layer = layer
|
30
51
|
end
|
@@ -43,6 +64,7 @@ module Blubber
|
|
43
64
|
attr_reader :layer
|
44
65
|
|
45
66
|
def logger
|
67
|
+
STDOUT.sync = true
|
46
68
|
@logger ||= Logger.new(STDOUT).tap do |logger|
|
47
69
|
logger.progname = layer
|
48
70
|
logger.formatter = proc do |severity, datetime, progname, msg|
|
data/lib/blubber/tagger.rb
CHANGED
@@ -23,13 +23,16 @@ module Blubber
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def project
|
26
|
-
|
26
|
+
[
|
27
|
+
Tagger.docker_registry,
|
28
|
+
*layer.split('/').select { |p| p[/[a-z0-9]+/] }
|
29
|
+
].join('/')
|
27
30
|
end
|
28
31
|
|
29
32
|
def tags
|
30
33
|
@tags ||= begin
|
31
34
|
tags = []
|
32
|
-
tags <<
|
35
|
+
tags << commit
|
33
36
|
|
34
37
|
unless dirty?
|
35
38
|
tags << branch_name.gsub(/[^\w.-]/, '_') unless branch_name.empty?
|
@@ -38,7 +41,7 @@ module Blubber
|
|
38
41
|
|
39
42
|
tags << File.read("#{layer}/Dockerfile").scan(/LABEL version=([\w][\w.-]*)/)
|
40
43
|
|
41
|
-
tags.flatten
|
44
|
+
tags.flatten.map { |t| "#{t}#{dirty? ? '-dirty' : ''}" }
|
42
45
|
end
|
43
46
|
end
|
44
47
|
|
data/lib/blubber/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blubber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mikko Kokkonen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-05-
|
11
|
+
date: 2018-05-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: highline
|