brocket 0.0.3 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +17 -2
- data/brocket.gemspec +1 -0
- data/lib/brocket/base.rb +10 -20
- data/lib/brocket/docker.rb +10 -0
- data/lib/brocket/version.rb +1 -1
- metadata +17 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 82018431e2aef0462f2a1197c516853c210f55d1
|
4
|
+
data.tar.gz: 096d374c5c647fd2a5d7463c1e865e1ce38ceaf1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 96f605adec1bea26494c75bf5c6831aa43d1b6d180fc27d9821ef50821ad3ef85a91ee5906715b2d62879289f037ed7a850154e926f58049754a06aac8ff5c95
|
7
|
+
data.tar.gz: 169748729b2b2531b6b24ba9e382922940657df14944df8c9156c0fc6ccfad6cd0a80e4debb48c55bc61dc656d3522f6b23df441051d17a83d1165058761109f
|
data/README.md
CHANGED
@@ -1,7 +1,22 @@
|
|
1
1
|
# brocket
|
2
2
|
|
3
3
|
brocket supports to build docker image with VERSION file and git.
|
4
|
-
|
4
|
+
You can define setup and teardown around `docker build` by writing
|
5
|
+
config IMAGE_NAME and hooks like BEFORE_BUILD and AFTER_BUILD.
|
6
|
+
|
7
|
+
## Behavior
|
8
|
+
|
9
|
+
- `brocket release`
|
10
|
+
1. check the local repository si clean and commited
|
11
|
+
2. same as `brocket docker build`
|
12
|
+
3. push by git
|
13
|
+
4. push by docker
|
14
|
+
- `brocket docker build`
|
15
|
+
1. call BEFORE_BUILD
|
16
|
+
2. `docker build` with arguments
|
17
|
+
- call ON_BUILD_COMPLETE on success
|
18
|
+
- call ON_BUILD_ERROR on failure
|
19
|
+
3. call AFTER_BUILD
|
5
20
|
|
6
21
|
## Installation
|
7
22
|
|
@@ -51,7 +66,7 @@ brocket version bump # bump up last number of VERSION file
|
|
51
66
|
|
52
67
|
### Hooks
|
53
68
|
|
54
|
-
You can define commands to execute around build like this:
|
69
|
+
You can define commands to execute around `docker build` like this:
|
55
70
|
|
56
71
|
```
|
57
72
|
# [config] IMAGE_NAME: "groovenauts/rails-example"
|
data/brocket.gemspec
CHANGED
data/lib/brocket/base.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
require "brocket"
|
2
2
|
|
3
|
+
require 'logger'
|
4
|
+
|
3
5
|
require 'thor'
|
6
|
+
require 'logger_pipe'
|
4
7
|
|
5
8
|
module BRocket
|
6
9
|
class Base < Thor
|
@@ -28,39 +31,26 @@ module BRocket
|
|
28
31
|
end
|
29
32
|
|
30
33
|
def verbose(msg)
|
31
|
-
|
34
|
+
logger.debug("\e[34m#{msg}\e[0m") if verbose?
|
32
35
|
end
|
33
36
|
|
34
37
|
def info(msg)
|
35
|
-
|
38
|
+
logger.info(msg)
|
36
39
|
end
|
37
40
|
def success(msg)
|
38
|
-
|
41
|
+
logger.info("\e[32m#{msg}\e[0m")
|
39
42
|
end
|
40
43
|
|
41
44
|
def error(msg)
|
42
45
|
raise BuildError, msg
|
43
46
|
end
|
44
47
|
|
45
|
-
def
|
46
|
-
|
47
|
-
code == 0 ? out : error(out.empty? ? "Running `#{cmd}' failed. Run this command directly for more detailed output." : out)
|
48
|
+
def logger
|
49
|
+
@logger ||= Logger.new($stderr)
|
48
50
|
end
|
49
51
|
|
50
|
-
def
|
51
|
-
cmd
|
52
|
-
verbose(cmd)
|
53
|
-
outbuf = ''
|
54
|
-
if dryrun?
|
55
|
-
block.call(outbuf) if block
|
56
|
-
["DRYRUN", 0]
|
57
|
-
else
|
58
|
-
outbuf = `#{cmd}`
|
59
|
-
if $? == 0
|
60
|
-
block.call(outbuf) if block
|
61
|
-
end
|
62
|
-
[outbuf, $?]
|
63
|
-
end
|
52
|
+
def sh(cmd, &block)
|
53
|
+
LoggerPipe.run(logger, cmd + " 2>&1", dry_run: dryrun?)
|
64
54
|
end
|
65
55
|
|
66
56
|
end
|
data/lib/brocket/docker.rb
CHANGED
@@ -43,6 +43,16 @@ module BRocket
|
|
43
43
|
success("[docker push] OK")
|
44
44
|
end
|
45
45
|
|
46
|
+
desc "call_before_build", "call BEFORE_BUILD callback manually"
|
47
|
+
def call_before_build
|
48
|
+
execute(config_hash['BEFORE_BUILD'])
|
49
|
+
end
|
50
|
+
|
51
|
+
desc "call_after_build", "call AFTER_BUILD callback manually"
|
52
|
+
def call_after_build
|
53
|
+
execute(config_hash['AFTER_BUILD'])
|
54
|
+
end
|
55
|
+
|
46
56
|
no_commands do
|
47
57
|
def config_image_name(c)
|
48
58
|
img_name = (c['IMAGE_NAME'] || '').strip
|
data/lib/brocket/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brocket
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- akima
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: logger_pipe
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
132
|
version: '0'
|
119
133
|
requirements: []
|
120
134
|
rubyforge_project:
|
121
|
-
rubygems_version: 2.
|
135
|
+
rubygems_version: 2.4.5
|
122
136
|
signing_key:
|
123
137
|
specification_version: 4
|
124
138
|
summary: supports to build Docker Container with VERSION
|
@@ -131,4 +145,3 @@ test_files:
|
|
131
145
|
- spec/brocket/version_file_spec.rb
|
132
146
|
- spec/brocket_spec.rb
|
133
147
|
- spec/spec_helper.rb
|
134
|
-
has_rdoc:
|