docman 0.0.16 → 0.0.17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/bump-version.sh +2 -2
- data/lib/application.rb +32 -23
- data/lib/docman/builders/git_strip_builder.rb +3 -3
- data/lib/docman/cli.rb +3 -13
- data/lib/docman/deployers/deployer.rb +8 -11
- data/lib/docman/git_util.rb +10 -10
- data/lib/docman/info.rb +10 -1
- data/lib/docman/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19f94ad0fa7db90b3885c21db21c601d3f88b3c6
|
4
|
+
data.tar.gz: 31ecc7e39088113ca2b6641b011f2108656dd3e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 769e911a9c9f66418a64b249721a64c7e0db4e654bc5cea51f054bc70eca865c44de340e10d9b990f93009a157157af9c03e74049b895c2a4fb2a980707e9541
|
7
|
+
data.tar.gz: 371f377760e27394464e5fecb117d0f883f82f06b27f1416faad1dacdef35cd039306a9261017755132dad5b4dce6ec99cb31f1f5a69b98524438ce6929e907f
|
data/bin/bump-version.sh
CHANGED
@@ -57,7 +57,7 @@ else
|
|
57
57
|
echo "" >> CHANGES
|
58
58
|
git add VERSION CHANGES
|
59
59
|
git commit -m "Added VERSION and CHANGES files, Version bump to 0.1.0"
|
60
|
-
git tag -a -m "[skip
|
60
|
+
git tag -a -m "[skip] Tagging version 0.1.0" "0.1.0"
|
61
61
|
git push origin --tags
|
62
62
|
git push
|
63
63
|
fi
|
@@ -77,7 +77,7 @@ if [ -n "$1" ]; then
|
|
77
77
|
echo "type: tag" > info.yaml
|
78
78
|
echo "version: $TAG" >> info.yaml
|
79
79
|
git add -A
|
80
|
-
git commit -m "[skip
|
80
|
+
git commit -m "[skip] Changed tag to: $TAG" & git push origin ${BRANCH}
|
81
81
|
git checkout -
|
82
82
|
echo ${TAG}
|
83
83
|
fi
|
data/lib/application.rb
CHANGED
@@ -46,46 +46,55 @@ module Docman
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def init(name, repo)
|
49
|
-
`mkdir #{name} && cd #{name} && git clone #{repo} config`
|
49
|
+
`mkdir #{name} && cd #{name} && git clone --depth 1 #{repo} config`
|
50
|
+
end
|
51
|
+
|
52
|
+
def with_rescue
|
53
|
+
failed_filepath = File.join(@workspace_dir, 'failed')
|
54
|
+
if File.file?(failed_filepath)
|
55
|
+
log 'Last operation failed, forced rebuild mode'
|
56
|
+
FileUtils.rm_f failed_filepath
|
57
|
+
@force = true
|
58
|
+
end
|
59
|
+
yield
|
60
|
+
rescue Exception => e
|
61
|
+
log "Operation failed: #{e.message}", 'error'
|
62
|
+
File.open(failed_filepath, 'w') {|f| f.write('Failed!') }
|
63
|
+
raise e
|
50
64
|
end
|
51
65
|
|
52
66
|
def build(deploy_target_name, state, options = false)
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
67
|
+
with_rescue do
|
68
|
+
@options = options
|
69
|
+
@deploy_target = @config['deploy_targets'][deploy_target_name]
|
70
|
+
@deploy_target['name'] = deploy_target_name
|
71
|
+
@docroot_config = DocrootConfig.new(@workspace_dir, deploy_target)
|
72
|
+
execute('build', state, nil, options['tag'])
|
73
|
+
end
|
58
74
|
end
|
59
75
|
|
60
76
|
def deploy(deploy_target_name, name, type, version, options = false)
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
77
|
+
with_rescue do
|
78
|
+
@options = options
|
79
|
+
@deploy_target = @config['deploy_targets'][deploy_target_name]
|
80
|
+
raise "Wrong deploy target: #{deploy_target_name}" if @deploy_target.nil?
|
81
|
+
@deploy_target['name'] = deploy_target_name
|
82
|
+
@docroot_config = DocrootConfig.new(@workspace_dir, deploy_target)
|
83
|
+
@docroot_config.states_dependin_on(name, version).keys.each do |state|
|
84
|
+
execute('deploy', state, name)
|
85
|
+
end
|
68
86
|
end
|
69
87
|
end
|
70
88
|
|
71
89
|
def execute(action, state, name = nil, tag = nil)
|
72
90
|
params = Marshal.load(Marshal.dump(@deploy_target))
|
73
|
-
failed_filepath = File.join(@workspace_dir, 'failed')
|
74
|
-
if File.file?(failed_filepath)
|
75
|
-
log 'Last operation failed, forced rebuild mode'
|
76
|
-
FileUtils.rm_f failed_filepath
|
77
|
-
@force = true
|
78
|
-
end
|
79
91
|
params['state'] = state
|
80
92
|
params['action'] = action
|
81
93
|
params['name'] = name
|
82
|
-
params['tag'] = tag
|
94
|
+
params['tag'] = tag ? tag : state + '-' + Time.now.strftime("%Y-%m-%d-%H-%M-%S")
|
83
95
|
params['environment'] = @config['environments'][@deploy_target['states'][state]]
|
84
96
|
params['environment_name'] = @deploy_target['states'][state]
|
85
97
|
Docman::Deployers::Deployer.create(params, nil, self).perform
|
86
|
-
rescue Exception => e
|
87
|
-
log "Operation failed: #{e.message}", 'error'
|
88
|
-
File.open(failed_filepath, 'w') {|f| f.write('Failed!') }
|
89
98
|
end
|
90
99
|
|
91
100
|
def force?
|
@@ -6,8 +6,8 @@ module Docman
|
|
6
6
|
|
7
7
|
def execute
|
8
8
|
FileUtils.rm_r(@context['full_build_path']) if File.directory? @context['full_build_path']
|
9
|
-
|
10
|
-
@version = GitUtil.get(@context['repo'], @context['temp_path'], @context.version_type, @context.version)
|
9
|
+
FileUtils.rm_r @context['temp_path'] if @context.need_rebuild? and File.directory? @context['temp_path']
|
10
|
+
@version = GitUtil.get(@context['repo'], @context['temp_path'], @context.version_type, @context.version, nil, nil)
|
11
11
|
FileUtils.mkdir_p(@context['full_build_path'])
|
12
12
|
FileUtils.cp_r(Dir["#{@context['temp_path']}/."], @context['full_build_path'])
|
13
13
|
FileUtils.rm_r(File.join(@context['full_build_path'], '.git')) if File.directory?(File.join(@context['full_build_path'], '.git'))
|
@@ -16,7 +16,7 @@ module Docman
|
|
16
16
|
|
17
17
|
def changed?
|
18
18
|
stored_version = @context.stored_version['result']
|
19
|
-
@version = GitUtil.get(@context['repo'], @context['temp_path'], @context.version_type, @context.version)
|
19
|
+
@version = GitUtil.get(@context['repo'], @context['temp_path'], @context.version_type, @context.version, nil, nil)
|
20
20
|
stored_version != @version
|
21
21
|
end
|
22
22
|
|
data/lib/docman/cli.rb
CHANGED
@@ -36,7 +36,7 @@ module Docman
|
|
36
36
|
say('Complete!', :green)
|
37
37
|
end
|
38
38
|
|
39
|
-
desc 'build
|
39
|
+
desc 'build', 'Build docroot'
|
40
40
|
method_option :force, :aliases => '-f', :desc => 'Force full rebuild'
|
41
41
|
option :tag
|
42
42
|
def build(deploy_target, state)
|
@@ -48,7 +48,7 @@ module Docman
|
|
48
48
|
say('Complete!', :green)
|
49
49
|
end
|
50
50
|
|
51
|
-
desc 'deploy
|
51
|
+
desc 'deploy', 'Deploy to target'
|
52
52
|
method_option :force, :aliases => '-f', :desc => 'Force full deploy'
|
53
53
|
def deploy(deploy_target, name, type, version)
|
54
54
|
if version.start_with?('state_')
|
@@ -61,19 +61,9 @@ module Docman
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
desc 'state NAME', 'init to NAME'
|
65
|
-
def state(name, type, version)
|
66
|
-
config_dir?
|
67
|
-
Application.instance.state(name, type, version)
|
68
|
-
say('Complete!', :green)
|
69
|
-
end
|
70
|
-
|
71
64
|
no_commands {
|
72
65
|
def config_dir?
|
73
|
-
unless File.directory?('config')
|
74
|
-
$stderr.puts 'ERROR: No config directory in docroot'
|
75
|
-
exit 1
|
76
|
-
end
|
66
|
+
raise 'ERROR: No config directory in docroot' unless File.directory?('config')
|
77
67
|
end
|
78
68
|
}
|
79
69
|
end
|
@@ -12,8 +12,6 @@ module Docman
|
|
12
12
|
|
13
13
|
@@deployers = {}
|
14
14
|
|
15
|
-
#todo: docroot config in separate repos for projects
|
16
|
-
|
17
15
|
def self.create(params, context = nil, caller = nil)
|
18
16
|
c = @@deployers[params['handler']]
|
19
17
|
if c
|
@@ -150,6 +148,14 @@ module Docman
|
|
150
148
|
end
|
151
149
|
end
|
152
150
|
|
151
|
+
def build_recursive(info = nil)
|
152
|
+
info = info ? info : @docroot_config.structure
|
153
|
+
build_dir(info)
|
154
|
+
info['children'].each do |child|
|
155
|
+
build_recursive(child)
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
153
159
|
def build_dir(info)
|
154
160
|
return if @builded.include? info['name']
|
155
161
|
info.state_name = self['state']
|
@@ -162,15 +168,6 @@ module Docman
|
|
162
168
|
@builded << info['name']
|
163
169
|
end
|
164
170
|
|
165
|
-
def build_recursive(info = nil)
|
166
|
-
info = info ? info : @docroot_config.structure
|
167
|
-
build_dir(info)
|
168
|
-
|
169
|
-
info['children'].each do |child|
|
170
|
-
build_recursive(child)
|
171
|
-
end
|
172
|
-
end
|
173
|
-
|
174
171
|
# TODO: need to refactor.
|
175
172
|
def describe(type = 'short')
|
176
173
|
properties_info(['handler'])
|
data/lib/docman/git_util.rb
CHANGED
@@ -20,7 +20,8 @@ module Docman
|
|
20
20
|
exec 'git clean -f -d'
|
21
21
|
end
|
22
22
|
|
23
|
-
def self.get(repo, path, type, version)
|
23
|
+
def self.get(repo, path, type, version, single_branch = nil, depth = nil, reset = false)
|
24
|
+
FileUtils.rm_rf path if reset and File.directory? path
|
24
25
|
if File.directory? path and File.directory?(File.join(path, '.git'))
|
25
26
|
Dir.chdir path
|
26
27
|
self.reset_repo(path) #if self.repo_changed?(path)
|
@@ -35,7 +36,14 @@ module Docman
|
|
35
36
|
end
|
36
37
|
else
|
37
38
|
FileUtils.rm_rf path if File.directory? path
|
38
|
-
|
39
|
+
if type == 'branch'
|
40
|
+
single_branch = single_branch ? "-b #{version} --single-branch" : ''
|
41
|
+
depth = (depth and depth.is_a? Integer) ? "--depth #{depth}" : ''
|
42
|
+
else
|
43
|
+
single_branch=''
|
44
|
+
depth=''
|
45
|
+
end
|
46
|
+
exec "git clone #{single_branch} #{depth} #{repo} #{path}"
|
39
47
|
Dir.chdir path
|
40
48
|
exec "git checkout #{version}"
|
41
49
|
end
|
@@ -43,14 +51,6 @@ module Docman
|
|
43
51
|
result
|
44
52
|
end
|
45
53
|
|
46
|
-
def self.read_yaml_from_file(repo, path, version, filename)
|
47
|
-
self.get(repo, path, 'branch', version)
|
48
|
-
filepath = File.join(path, filename)
|
49
|
-
return YAML::load_file(filepath) if File.file? filepath
|
50
|
-
nil
|
51
|
-
rescue StandardError => e
|
52
|
-
raise "Error in info file: #{filepath}, #{e.message}"
|
53
|
-
end
|
54
54
|
|
55
55
|
def self.last_revision
|
56
56
|
result = `git rev-parse --short HEAD`
|
data/lib/docman/info.rb
CHANGED
@@ -21,7 +21,7 @@ module Docman
|
|
21
21
|
if state.has_key?('source')
|
22
22
|
if state['source']['type'] == :retrieve_from_repo
|
23
23
|
repo = state['source']['repo'] == :project_repo ? self['repo'] : state['source']['repo']
|
24
|
-
external_state_info =
|
24
|
+
external_state_info = read_yaml_from_file(repo, self['temp_path'], state['source']['branch'], state['source']['file'])
|
25
25
|
state.deep_merge! external_state_info
|
26
26
|
end
|
27
27
|
end
|
@@ -29,6 +29,15 @@ module Docman
|
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
+
def read_yaml_from_file(repo, path, version, filename)
|
33
|
+
GitUtil.get(repo, path, 'branch', version, nil, nil, need_rebuild?)
|
34
|
+
filepath = File.join(path, filename)
|
35
|
+
return YAML::load_file(filepath) if File.file? filepath
|
36
|
+
nil
|
37
|
+
rescue StandardError => e
|
38
|
+
raise "Error in info file: #{filepath}, #{e.message}"
|
39
|
+
end
|
40
|
+
|
32
41
|
def version
|
33
42
|
state.nil? ? nil : state['version']
|
34
43
|
end
|
data/lib/docman/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Tolstikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-07-
|
11
|
+
date: 2014-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|