docman 0.0.69 → 0.0.70
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.
- checksums.yaml +4 -4
- data/config/config.yaml +15 -0
- data/lib/application.rb +4 -1
- data/lib/docman/builders/git_direct_builder.rb +8 -2
- data/lib/docman/builders/git_root_chain_builder.rb +23 -0
- data/lib/docman/commands/clean_changed_cmd.rb +2 -0
- data/lib/docman/commands/command.rb +3 -0
- data/lib/docman/commands/git_copy_repo_content_cmd.rb +23 -0
- data/lib/docman/deployers/deployer.rb +8 -2
- data/lib/docman/deployers/git_deployer.rb +2 -1
- data/lib/docman/docroot_config.rb +0 -8
- data/lib/docman/docroot_controller.rb +1 -6
- data/lib/docman/git_util.rb +7 -1
- data/lib/docman/info.rb +14 -9
- data/lib/docman/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 10005717e54be448ce35f02aa8d0ec48d66facf8
|
4
|
+
data.tar.gz: aa012e44fa94f8bac747aff2645820c718e221e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f677a8c437fc6a63975e463de020897e471d9be014d7da1cd123fef589cde563e2112750008aeaae243a1738d873df623480b0b9b51dd96f2c3093e37534697
|
7
|
+
data.tar.gz: d9d68d33374aad7b20b20fe0a25995d9ec2857f450f51489a85742dccddf945090ac41fdbfb6739c1b6ea4e479e0d8a542fb5d06a3d4e3292b07eaa2a27aaee3
|
data/config/config.yaml
CHANGED
@@ -5,6 +5,8 @@ deploy_targets:
|
|
5
5
|
builders:
|
6
6
|
root:
|
7
7
|
handler: :dir_builder
|
8
|
+
root_chain:
|
9
|
+
handler: :git_direct_builder
|
8
10
|
drupal:
|
9
11
|
handler: :drupal_drush_builder
|
10
12
|
repo:
|
@@ -26,6 +28,15 @@ deploy_targets:
|
|
26
28
|
builder:
|
27
29
|
after_execute:
|
28
30
|
- type: :git_commit
|
31
|
+
order: 100
|
32
|
+
execution_dir: $PROJECT$
|
33
|
+
root_chain:
|
34
|
+
handler: :git_root_chain_builder
|
35
|
+
hooks:
|
36
|
+
builder:
|
37
|
+
after_execute:
|
38
|
+
- type: :git_commit
|
39
|
+
order: 100
|
29
40
|
execution_dir: $PROJECT$
|
30
41
|
drupal:
|
31
42
|
handler: :drupal_drush_builder
|
@@ -33,6 +44,7 @@ deploy_targets:
|
|
33
44
|
builder:
|
34
45
|
after_execute:
|
35
46
|
- type: :git_commit
|
47
|
+
order: 100
|
36
48
|
execution_dir: $PROJECT$
|
37
49
|
repo:
|
38
50
|
handler: :git_strip_builder
|
@@ -40,6 +52,7 @@ deploy_targets:
|
|
40
52
|
builder:
|
41
53
|
after_execute:
|
42
54
|
- type: :git_commit
|
55
|
+
order: 100
|
43
56
|
execution_dir: $PROJECT$
|
44
57
|
dir:
|
45
58
|
handler: :dir_builder
|
@@ -47,6 +60,7 @@ deploy_targets:
|
|
47
60
|
builder:
|
48
61
|
after_execute:
|
49
62
|
- type: :git_commit
|
63
|
+
order: 100
|
50
64
|
execution_dir: $PROJECT$
|
51
65
|
symlink:
|
52
66
|
handler: :symlink_builder
|
@@ -54,6 +68,7 @@ deploy_targets:
|
|
54
68
|
builder:
|
55
69
|
after_execute:
|
56
70
|
- type: :git_commit
|
71
|
+
order: 100
|
57
72
|
execution_dir: $PROJECT$
|
58
73
|
states:
|
59
74
|
development: dev
|
data/lib/application.rb
CHANGED
@@ -16,6 +16,7 @@ require 'docman/builders/builder'
|
|
16
16
|
require 'docman/builders/dir_builder'
|
17
17
|
require 'docman/builders/symlink_builder'
|
18
18
|
require 'docman/builders/git_direct_builder'
|
19
|
+
require 'docman/builders/git_root_chain_builder'
|
19
20
|
require 'docman/builders/git_strip_builder'
|
20
21
|
require 'docman/builders/drupal_drush_builder'
|
21
22
|
require 'docman/deployers/deployer'
|
@@ -27,6 +28,7 @@ require 'docman/commands/create_symlink_cmd'
|
|
27
28
|
require 'docman/commands/execute_script_cmd'
|
28
29
|
require 'docman/commands/clean_changed_cmd'
|
29
30
|
require 'docman/commands/git_commit_cmd'
|
31
|
+
require 'docman/commands/git_copy_repo_content_cmd'
|
30
32
|
require 'docman/taggers/tagger'
|
31
33
|
require 'docman/taggers/incremental_tagger'
|
32
34
|
require 'docman/taggers/option_tagger'
|
@@ -35,7 +37,7 @@ module Docman
|
|
35
37
|
class Application < Docman::Command
|
36
38
|
|
37
39
|
attr_reader :config, :docroot_config
|
38
|
-
attr_accessor :deploy_target, :options, :force
|
40
|
+
attr_accessor :deploy_target, :options, :force, :commit_count
|
39
41
|
|
40
42
|
include Singleton
|
41
43
|
include Docman::Context
|
@@ -45,6 +47,7 @@ module Docman
|
|
45
47
|
@workspace_dir = Dir.pwd
|
46
48
|
@config = Docman::Config.new(File.join(Pathname(__FILE__).dirname.parent, 'config', 'config.yaml'))
|
47
49
|
@force = false
|
50
|
+
@commit_count = 0
|
48
51
|
end
|
49
52
|
|
50
53
|
def init(name, repo, options)
|
@@ -13,9 +13,15 @@ module Docman
|
|
13
13
|
|
14
14
|
def changed?
|
15
15
|
stored_version = @context.stored_version['result']
|
16
|
-
|
16
|
+
if @context['type'] == 'root_chain'
|
17
|
+
repo_path = @context['temp_path']
|
18
|
+
else
|
19
|
+
repo_path = @context['full_build_path']
|
20
|
+
end
|
21
|
+
|
22
|
+
@last_revision = GitUtil.last_revision(repo_path)
|
17
23
|
# No commit hash for 'root' as it will be changed later
|
18
|
-
@version = @context['type'] == 'root' ? @context['build_path'] : GitUtil.get(@context['repo'],
|
24
|
+
@version = @context['type'] == 'root' ? @context['build_path'] : GitUtil.get(@context['repo'], repo_path, @context.version_type, @context.version)
|
19
25
|
stored_version != @version
|
20
26
|
end
|
21
27
|
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Docman
|
2
|
+
module Builders
|
3
|
+
class GitRootChainBuilder < Builder
|
4
|
+
|
5
|
+
register_builder :git_root_chain_builder
|
6
|
+
|
7
|
+
def execute
|
8
|
+
GitUtil.get(@context['root_repo'], @context['full_build_path'], @context.version_type(type: 'root'), @context.version(type: 'root'))
|
9
|
+
@version = Docman::Command.create({'type' => :git_copy_repo_content, 'remove_target' => true}, @context, self).perform
|
10
|
+
@last_revision != @version ? @version : false
|
11
|
+
end
|
12
|
+
|
13
|
+
def changed?
|
14
|
+
stored_version = @context.stored_version['result']
|
15
|
+
@last_revision = GitUtil.last_revision @context['temp_path']
|
16
|
+
# No commit hash for 'root' as it will be changed later
|
17
|
+
@version = GitUtil.get(@context['repo'], @context['temp_path'], @context.version_type, @context.version)
|
18
|
+
stored_version != @version
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -15,6 +15,8 @@ module Docman
|
|
15
15
|
return false if @context['type'] == 'dir'
|
16
16
|
return false if @context['type'] == 'root' and @context['build_type'] == :dir_builder and not GitUtil.repo?(@context['full_build_path'])
|
17
17
|
return false if @context['type'] == 'root' and @context['build_type'] == :git_direct_builder and GitUtil.repo?(@context['full_build_path'])
|
18
|
+
return false if @context['type'] == 'root_chain' and @context['build_type'] == :git_direct_builder and GitUtil.repo?(@context['full_build_path'])
|
19
|
+
return false if @context['type'] == 'root_chain' and @context['build_type'] == :git_root_chain_builder and GitUtil.repo?(@context['full_build_path'])
|
18
20
|
if @context['type'] == 'repo'
|
19
21
|
if @context['build_type'] == :git_direct_builder
|
20
22
|
return false if GitUtil.repo?(@context['full_build_path'])
|
@@ -53,6 +53,7 @@ module Docman
|
|
53
53
|
hooks = Marshal::load(Marshal.dump(hooks))
|
54
54
|
unless context.nil? or hooks.nil?
|
55
55
|
hooks.each do |hook|
|
56
|
+
hook['order'] = 0 unless hook['order']
|
56
57
|
hook['context'] = context
|
57
58
|
end
|
58
59
|
end
|
@@ -66,6 +67,7 @@ module Docman
|
|
66
67
|
end
|
67
68
|
|
68
69
|
def add_action(name, hook, context = nil)
|
70
|
+
hook['order'] = 0 unless hook['order']
|
69
71
|
if @hooks.has_key? name
|
70
72
|
@hooks[name] << {'type' => hook}
|
71
73
|
else
|
@@ -75,6 +77,7 @@ module Docman
|
|
75
77
|
|
76
78
|
def run_actions(name)
|
77
79
|
if @hooks.has_key?(name) and not @hooks[name].nil?
|
80
|
+
@hooks[name].sort_by!{|a| a['order']}
|
78
81
|
@hooks[name].each do |hook|
|
79
82
|
next if hook.has_key?('run_on_success_only') and hook['run_on_success_only'] and not @execute_result
|
80
83
|
context = hook.has_key?('context') ? hook['context'] : @context
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Docman
|
2
|
+
class GitCopyRepoContent < Docman::Command
|
3
|
+
|
4
|
+
register_command :git_copy_repo_content
|
5
|
+
|
6
|
+
def validate_command
|
7
|
+
raise "Please provide 'context'" if @context.nil?
|
8
|
+
raise "Context should be of type 'Info'" unless @context.is_a? Docman::Info
|
9
|
+
end
|
10
|
+
|
11
|
+
def execute
|
12
|
+
if (self['remove_target'])
|
13
|
+
FileUtils.rm_r(Dir["#{@context['full_build_path']}/*"]) if File.directory? @context['full_build_path']
|
14
|
+
end
|
15
|
+
FileUtils.rm_r @context['temp_path'] if @context.need_rebuild? and File.directory? @context['temp_path']
|
16
|
+
@version = GitUtil.get(@context['repo'], @context['temp_path'], @context.version_type, @context.version, nil, nil)
|
17
|
+
# FileUtils.rm_r(File.join(@context['temp_path'], '.git')) if File.directory?(File.join(@context['temp_path'], '.git'))
|
18
|
+
FileUtils.mkdir_p(@context['full_build_path'])
|
19
|
+
`rsync -a --exclude '.git' #{@context['temp_path']}/. #{@context['full_build_path']}`
|
20
|
+
@version
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -146,8 +146,8 @@ module Docman
|
|
146
146
|
if item.need_rebuild?
|
147
147
|
build_recursive(item)
|
148
148
|
return
|
149
|
-
|
150
|
-
|
149
|
+
else
|
150
|
+
build_dir(item)
|
151
151
|
end
|
152
152
|
end
|
153
153
|
end
|
@@ -171,6 +171,12 @@ module Docman
|
|
171
171
|
@build_results[info['name']] = build_result ? build_result : 'Not builded'
|
172
172
|
@versions[info['name']] = builder.version
|
173
173
|
@builded << info['name']
|
174
|
+
if (build_result)
|
175
|
+
info['children'].sort_by!{|a| a['order']}
|
176
|
+
info['children'].each do |child|
|
177
|
+
build_recursive(child)
|
178
|
+
end
|
179
|
+
end
|
174
180
|
end
|
175
181
|
|
176
182
|
# TODO: need to refactor.
|
@@ -24,7 +24,8 @@ module Docman
|
|
24
24
|
end
|
25
25
|
|
26
26
|
GitUtil.commit(root['full_build_path'], root['full_build_path'], 'Updated version', tag)
|
27
|
-
GitUtil.
|
27
|
+
GitUtil.squash_commits(Docman::Application.instance.commit_count)
|
28
|
+
GitUtil.push(root['full_build_path'], root.version(type: 'root'))
|
28
29
|
end
|
29
30
|
|
30
31
|
end
|
@@ -96,17 +96,9 @@ module Docman
|
|
96
96
|
Digest::MD5.hexdigest(Marshal::dump(@raw_infos))
|
97
97
|
end
|
98
98
|
|
99
|
-
def root_path
|
100
|
-
@root['fuil_build_path']
|
101
|
-
end
|
102
|
-
|
103
99
|
def deploy_target_name
|
104
100
|
@deploy_target.name
|
105
101
|
end
|
106
102
|
|
107
|
-
def root_states
|
108
|
-
@root.states
|
109
|
-
end
|
110
|
-
|
111
103
|
end
|
112
104
|
end
|
@@ -1,17 +1,12 @@
|
|
1
1
|
require 'docman/builders/builder'
|
2
2
|
require 'docman/builders/dir_builder'
|
3
3
|
require 'docman/builders/git_direct_builder'
|
4
|
+
require 'docman/builders/git_root_chain_builder'
|
4
5
|
require 'docman/builders/git_strip_builder'
|
5
6
|
require 'docman/builders/drupal_drush_builder'
|
6
7
|
require 'docman/deployers/deployer'
|
7
8
|
require 'docman/deployers/git_deployer'
|
8
9
|
require 'docman/deployers/common_deployer'
|
9
|
-
require 'docman/command'
|
10
|
-
require 'docman/composite_command'
|
11
|
-
require 'docman/builders/commands/create_symlink_cmd'
|
12
|
-
require 'docman/builders/commands/execute_script_cmd'
|
13
|
-
require 'docman/builders/commands/clean_changed_cmd'
|
14
|
-
require 'docman/builders/commands/git_commit_cmd'
|
15
10
|
|
16
11
|
# TODO: make universal logging class.
|
17
12
|
|
data/lib/docman/git_util.rb
CHANGED
@@ -15,6 +15,12 @@ module Docman
|
|
15
15
|
result
|
16
16
|
end
|
17
17
|
|
18
|
+
def self.squash_commits(commit_count, message = nil)
|
19
|
+
message = "$(git log --format=%B --reverse HEAD..HEAD@{1})" unless message
|
20
|
+
exec "reset --soft HEAD~#{commit_count}"
|
21
|
+
exec "commit -m \"#{message}\""
|
22
|
+
end
|
23
|
+
|
18
24
|
def self.reset_repo(path)
|
19
25
|
Dir.chdir path
|
20
26
|
exec 'reset --hard'
|
@@ -74,11 +80,11 @@ module Docman
|
|
74
80
|
|
75
81
|
def self.commit(root_path, path, message, tag = nil)
|
76
82
|
if repo_changed? path
|
77
|
-
# puts message
|
78
83
|
pull root_path
|
79
84
|
exec %Q(add --all #{path.slice "#{root_path}/"})
|
80
85
|
exec %Q(commit -m "#{message}") if repo_changed? path
|
81
86
|
self.tag(root_path, tag) if tag
|
87
|
+
Docman::Application.instance.commit_count = Docman::Application.instance.commit_count + 1
|
82
88
|
end
|
83
89
|
end
|
84
90
|
|
data/lib/docman/info.rb
CHANGED
@@ -21,6 +21,7 @@ module Docman
|
|
21
21
|
self['states'].each_pair do |name, state|
|
22
22
|
if state.has_key?('source')
|
23
23
|
if state['source']['type'] == :retrieve_from_repo
|
24
|
+
@state_name = name
|
24
25
|
repo = state['source']['repo'] == :project_repo ? self['repo'] : state['source']['repo']
|
25
26
|
external_state_info = read_yaml_from_file(repo, self['states_path'], state['source']['branch'], state['source']['file'])
|
26
27
|
state.deep_merge! external_state_info unless external_state_info.nil? or state.nil?
|
@@ -32,7 +33,7 @@ module Docman
|
|
32
33
|
end
|
33
34
|
|
34
35
|
def read_yaml_from_file(repo, path, version, filename)
|
35
|
-
GitUtil.get(repo, path, 'branch', version, true, 1,
|
36
|
+
GitUtil.get(repo, path, 'branch', version, true, 1, true)
|
36
37
|
filepath = File.join(path, filename)
|
37
38
|
return YAML::load_file(filepath) if File.file? filepath
|
38
39
|
nil
|
@@ -40,12 +41,12 @@ module Docman
|
|
40
41
|
raise "Error in info file: #{filepath}, #{e.message}"
|
41
42
|
end
|
42
43
|
|
43
|
-
def version
|
44
|
-
state.nil? ? nil : state['version']
|
44
|
+
def version(options = {})
|
45
|
+
state(options).nil? ? nil : state(options)['version']
|
45
46
|
end
|
46
47
|
|
47
|
-
def version_type
|
48
|
-
state.nil? ? nil : state['type']
|
48
|
+
def version_type(options = {})
|
49
|
+
state(options).nil? ? nil : state(options)['type']
|
49
50
|
end
|
50
51
|
|
51
52
|
def describe(type = 'short')
|
@@ -117,12 +118,16 @@ module Docman
|
|
117
118
|
YAML::load_file(info_filename)
|
118
119
|
end
|
119
120
|
|
120
|
-
def state
|
121
|
-
states[@state_name]
|
121
|
+
def state(options = {})
|
122
|
+
states(options)[@state_name]
|
122
123
|
end
|
123
124
|
|
124
|
-
def states
|
125
|
-
self['
|
125
|
+
def states(options = {})
|
126
|
+
if options[:type] == 'root' and self['type'] == 'root_chain'
|
127
|
+
self['root_repo_states']
|
128
|
+
else
|
129
|
+
self['states']
|
130
|
+
end
|
126
131
|
end
|
127
132
|
|
128
133
|
def disabled?
|
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.70
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Tolstikov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -174,6 +174,7 @@ files:
|
|
174
174
|
- lib/docman/builders/dir_builder.rb
|
175
175
|
- lib/docman/builders/drupal_drush_builder.rb
|
176
176
|
- lib/docman/builders/git_direct_builder.rb
|
177
|
+
- lib/docman/builders/git_root_chain_builder.rb
|
177
178
|
- lib/docman/builders/git_strip_builder.rb
|
178
179
|
- lib/docman/builders/symlink_builder.rb
|
179
180
|
- lib/docman/cli.rb
|
@@ -183,6 +184,7 @@ files:
|
|
183
184
|
- lib/docman/commands/create_symlink_cmd.rb
|
184
185
|
- lib/docman/commands/execute_script_cmd.rb
|
185
186
|
- lib/docman/commands/git_commit_cmd.rb
|
187
|
+
- lib/docman/commands/git_copy_repo_content_cmd.rb
|
186
188
|
- lib/docman/commands/ssh_target_checker.rb
|
187
189
|
- lib/docman/commands/target_checker.rb
|
188
190
|
- lib/docman/config.rb
|