dply 0.0.5 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/drake +22 -24
- data/lib/dply/archive.rb +81 -0
- data/lib/dply/build.rb +112 -0
- data/lib/dply/build_config.rb +97 -0
- data/lib/dply/bundle.rb +78 -0
- data/lib/dply/cli/build.rb +68 -0
- data/lib/dply/cli/deploy.rb +16 -12
- data/lib/dply/cli/reload.rb +11 -28
- data/lib/dply/config.rb +46 -48
- data/lib/dply/config_downloader.rb +12 -7
- data/lib/dply/config_struct.rb +41 -0
- data/lib/dply/custom_logger.rb +13 -1
- data/lib/dply/git.rb +5 -0
- data/lib/dply/helper.rb +1 -11
- data/lib/dply/jenkins.rb +32 -0
- data/lib/dply/lock.rb +15 -11
- data/lib/dply/release.rb +58 -16
- data/lib/dply/setup.rb +47 -6
- data/lib/dply/shell.rb +5 -10
- data/lib/dply/stages_config.rb +2 -2
- data/lib/dply/strategy/archive.rb +124 -0
- data/lib/dply/strategy/git.rb +38 -41
- data/lib/dply/tasks.rb +28 -31
- data/lib/dply/version.rb +1 -1
- data/lib/dply/yum.rb +53 -0
- metadata +11 -8
- data/lib/dply/deploy.rb +0 -29
- data/lib/dply/reload.rb +0 -29
- data/lib/dply/setup/default.rb +0 -31
- data/lib/dply/setup/git.rb +0 -52
- data/lib/dply/setup/release.rb +0 -58
- data/lib/dply/strategy/default.rb +0 -57
data/lib/dply/strategy/git.rb
CHANGED
@@ -2,6 +2,7 @@ require 'dply/helper'
|
|
2
2
|
require 'dply/setup'
|
3
3
|
require 'dply/linker'
|
4
4
|
require 'dply/config_downloader'
|
5
|
+
require 'dply/yum'
|
5
6
|
require 'forwardable'
|
6
7
|
|
7
8
|
|
@@ -12,41 +13,36 @@ module Dply
|
|
12
13
|
extend Forwardable
|
13
14
|
include Helper
|
14
15
|
|
15
|
-
|
16
|
-
|
16
|
+
attr_reader :config, :options
|
17
|
+
def_delegators :config, :target, :branch,
|
18
|
+
:config_map, :dir_map, :config_skip_download,
|
17
19
|
:config_download_url
|
18
20
|
|
19
|
-
|
20
|
-
attr_reader :config, :options
|
21
|
-
|
22
21
|
def initialize(config, options)
|
23
22
|
@config = config
|
24
|
-
@options = options
|
23
|
+
@options = options || {}
|
25
24
|
end
|
26
25
|
|
27
26
|
def deploy
|
28
|
-
setup.
|
29
|
-
|
27
|
+
setup.git
|
28
|
+
download_configs if config_download_url
|
30
29
|
Dir.chdir current_dir do
|
31
30
|
previous_version = git.commit_id
|
32
31
|
git_step
|
33
32
|
current_version = git.commit_id
|
34
33
|
link_dirs
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
}
|
40
|
-
tasks.deploy target, env: env
|
34
|
+
link_config
|
35
|
+
yum_install
|
36
|
+
tasks.deploy target
|
37
|
+
# tasks.report_changes(previous_version, current_version)
|
41
38
|
end
|
42
39
|
end
|
43
40
|
|
44
|
-
def switch
|
45
|
-
end
|
46
|
-
|
47
41
|
def reload
|
48
|
-
|
42
|
+
download_configs if config_download_url
|
49
43
|
Dir.chdir current_dir do
|
44
|
+
link_dirs
|
45
|
+
link_config_files
|
50
46
|
tasks.reload target
|
51
47
|
end
|
52
48
|
end
|
@@ -54,7 +50,14 @@ module Dply
|
|
54
50
|
private
|
55
51
|
|
56
52
|
def current_dir
|
57
|
-
@current_dir ||= "#{config.
|
53
|
+
@current_dir ||= "#{config.dir}/current"
|
54
|
+
end
|
55
|
+
|
56
|
+
def download_configs
|
57
|
+
files = config_map.values.uniq
|
58
|
+
downloader = ConfigDownloader.new(files, config_download_url)
|
59
|
+
downloader.skip_download = config_skip_download
|
60
|
+
downloader.download_all
|
58
61
|
end
|
59
62
|
|
60
63
|
def git_step
|
@@ -66,38 +69,32 @@ module Dply
|
|
66
69
|
end
|
67
70
|
end
|
68
71
|
|
69
|
-
def
|
70
|
-
|
71
|
-
logger.bullet "symlinking config files"
|
72
|
-
config_linker.create_symlinks
|
72
|
+
def link_dirs
|
73
|
+
link "#{config.dir}/shared", dir_map
|
73
74
|
end
|
74
75
|
|
75
|
-
def
|
76
|
-
|
77
|
-
logger.bullet "symlinking shared dirs"
|
78
|
-
dir_linker.create_symlinks
|
76
|
+
def link_config
|
77
|
+
link "#{config.dir}/config", config_map
|
79
78
|
end
|
80
79
|
|
81
|
-
def
|
82
|
-
|
83
|
-
source = "#{config.deploy_dir}/config"
|
84
|
-
dest = current_dir
|
85
|
-
@config_linker ||= ::Dply::Linker.new(source, dest, map: config_map)
|
80
|
+
def yum_install
|
81
|
+
Yum.new("pkgs.yml").install
|
86
82
|
end
|
87
83
|
|
88
|
-
def
|
89
|
-
@
|
84
|
+
def setup
|
85
|
+
@setup ||= Setup.new(@config)
|
90
86
|
end
|
91
87
|
|
92
|
-
def
|
93
|
-
|
94
|
-
source = "#{config.deploy_dir}/shared"
|
95
|
-
dest = current_dir
|
96
|
-
@dir_linker ||= ::Dply::Linker.new(source, dest, map: dir_map)
|
88
|
+
def tasks
|
89
|
+
@tasks ||= Tasks.new(deployment: true)
|
97
90
|
end
|
98
91
|
|
99
|
-
def
|
100
|
-
|
92
|
+
def link(source, map)
|
93
|
+
return if not map
|
94
|
+
logger.bullet "symlinking #{source}"
|
95
|
+
dest = current_dir
|
96
|
+
linker = Linker.new(source, dest, map: map)
|
97
|
+
linker.create_symlinks
|
101
98
|
end
|
102
99
|
|
103
100
|
end
|
data/lib/dply/tasks.rb
CHANGED
@@ -1,55 +1,52 @@
|
|
1
1
|
require 'dply/shell'
|
2
|
+
require 'dply/bundle'
|
3
|
+
require 'json'
|
2
4
|
module Dply
|
3
5
|
class Tasks
|
4
6
|
|
5
7
|
include Shell
|
6
8
|
|
7
|
-
def
|
8
|
-
|
9
|
-
bundle_install
|
10
|
-
cmd "#{rake_command} #{target}:deploy", env: env
|
9
|
+
def initialize(deployment: true)
|
10
|
+
@deployment = deployment
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
14
|
-
|
15
|
-
|
16
|
-
cmd "#{rake_command} #{target}:switch", env: env
|
13
|
+
def deploy(target)
|
14
|
+
bundle.install
|
15
|
+
rake "#{target}:deploy"
|
17
16
|
end
|
18
17
|
|
19
18
|
def reload(target)
|
20
|
-
|
21
|
-
|
19
|
+
bundle.install
|
20
|
+
rake "#{target}:reload"
|
22
21
|
end
|
23
22
|
|
24
|
-
def
|
25
|
-
|
23
|
+
def task(task)
|
24
|
+
bundle.install
|
25
|
+
rake task
|
26
26
|
end
|
27
27
|
|
28
|
-
def
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
"rake -R dply"
|
33
|
-
end
|
28
|
+
def build(task)
|
29
|
+
bundle.install
|
30
|
+
bundle.clean
|
31
|
+
rake task
|
34
32
|
end
|
35
33
|
|
36
|
-
def
|
37
|
-
|
38
|
-
exitstatus = system "bundle check > /dev/null"
|
39
|
-
return if exitstatus
|
40
|
-
cmd "bundle install"
|
34
|
+
def rake(task)
|
35
|
+
bundle.rake task
|
41
36
|
end
|
42
37
|
|
43
|
-
def
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
end
|
49
|
-
require 'yaml'
|
50
|
-
YAML.load_file(path)
|
38
|
+
def report_changes(previous_version, current_version)
|
39
|
+
info = {}
|
40
|
+
info[:current] = current_version
|
41
|
+
info[:previous] = previous_version
|
42
|
+
logger.remote "#{JSON.dump info}"
|
51
43
|
end
|
52
44
|
|
45
|
+
private
|
46
|
+
|
47
|
+
def bundle
|
48
|
+
@bundle ||= Bundle.new(deployment: @deployment)
|
49
|
+
end
|
53
50
|
|
54
51
|
end
|
55
52
|
end
|
data/lib/dply/version.rb
CHANGED
data/lib/dply/yum.rb
ADDED
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'dply/helper'
|
2
|
+
require 'yaml'
|
3
|
+
|
4
|
+
module Dply
|
5
|
+
class Yum
|
6
|
+
|
7
|
+
include Helper
|
8
|
+
|
9
|
+
def initialize(pkgs_yml)
|
10
|
+
@pkgs_yml = pkgs_yml
|
11
|
+
end
|
12
|
+
|
13
|
+
def pkgs
|
14
|
+
@pkgs ||= load_pkgs
|
15
|
+
end
|
16
|
+
|
17
|
+
def install
|
18
|
+
return if installed?
|
19
|
+
cmd "sudo -n yum install -y #{not_installed_pkgs.join(' ')}"
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
def pkgs_str
|
25
|
+
pkgs.join " "
|
26
|
+
end
|
27
|
+
|
28
|
+
def not_installed_pkgs
|
29
|
+
@not_installed_pkgs ||= query_not_installed
|
30
|
+
end
|
31
|
+
|
32
|
+
def query_not_installed
|
33
|
+
return [] if pkgs_str.strip.empty?
|
34
|
+
command = "rpm -V --noscripts --nodeps --nofiles #{pkgs_str}"
|
35
|
+
matches = `#{command}`.scan(/^package (.*) is not installed$/)
|
36
|
+
end
|
37
|
+
|
38
|
+
def installed?
|
39
|
+
not_installed_pkgs.size == 0
|
40
|
+
end
|
41
|
+
|
42
|
+
def load_pkgs
|
43
|
+
if not File.readable? @pkgs_yml
|
44
|
+
logger.debug "skipping yum pkgs"
|
45
|
+
return []
|
46
|
+
end
|
47
|
+
YAML.load_file(@pkgs_yml)
|
48
|
+
rescue => e
|
49
|
+
error "error loading pkgs list"
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dply
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Neeraj
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -60,37 +60,40 @@ files:
|
|
60
60
|
- docs/stages.rb
|
61
61
|
- dply.gemspec
|
62
62
|
- lib/dply.rb
|
63
|
+
- lib/dply/archive.rb
|
64
|
+
- lib/dply/build.rb
|
65
|
+
- lib/dply/build_config.rb
|
66
|
+
- lib/dply/bundle.rb
|
67
|
+
- lib/dply/cli/build.rb
|
63
68
|
- lib/dply/cli/deploy.rb
|
64
69
|
- lib/dply/cli/reload.rb
|
65
70
|
- lib/dply/config.rb
|
66
71
|
- lib/dply/config_downloader.rb
|
72
|
+
- lib/dply/config_struct.rb
|
67
73
|
- lib/dply/custom_logger.rb
|
68
|
-
- lib/dply/deploy.rb
|
69
74
|
- lib/dply/dplyr.rb
|
70
75
|
- lib/dply/error.rb
|
71
76
|
- lib/dply/ext/string.rb
|
72
77
|
- lib/dply/git.rb
|
73
78
|
- lib/dply/helper.rb
|
79
|
+
- lib/dply/jenkins.rb
|
74
80
|
- lib/dply/linker.rb
|
75
81
|
- lib/dply/lock.rb
|
76
82
|
- lib/dply/logger.rb
|
77
83
|
- lib/dply/release.rb
|
78
|
-
- lib/dply/reload.rb
|
79
84
|
- lib/dply/remote_task.rb
|
80
85
|
- lib/dply/repo.rb
|
81
86
|
- lib/dply/report.rb
|
82
87
|
- lib/dply/setup.rb
|
83
|
-
- lib/dply/setup/default.rb
|
84
|
-
- lib/dply/setup/git.rb
|
85
|
-
- lib/dply/setup/release.rb
|
86
88
|
- lib/dply/shared_dirs.rb
|
87
89
|
- lib/dply/shell.rb
|
88
90
|
- lib/dply/stages_config.rb
|
89
91
|
- lib/dply/strategy.rb
|
90
|
-
- lib/dply/strategy/
|
92
|
+
- lib/dply/strategy/archive.rb
|
91
93
|
- lib/dply/strategy/git.rb
|
92
94
|
- lib/dply/tasks.rb
|
93
95
|
- lib/dply/version.rb
|
96
|
+
- lib/dply/yum.rb
|
94
97
|
homepage: ''
|
95
98
|
licenses:
|
96
99
|
- MIT
|
data/lib/dply/deploy.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'dply/strategy'
|
2
|
-
require 'dply/config'
|
3
|
-
|
4
|
-
module Dply
|
5
|
-
class Deploy
|
6
|
-
|
7
|
-
attr_reader :deploy_dir, :config
|
8
|
-
attr_writer :options
|
9
|
-
|
10
|
-
def initialize(deploy_dir, config)
|
11
|
-
@deploy_dir = deploy_dir
|
12
|
-
@config = config
|
13
|
-
end
|
14
|
-
|
15
|
-
def run
|
16
|
-
strategy.deploy
|
17
|
-
end
|
18
|
-
|
19
|
-
def strategy
|
20
|
-
@strategy ||= Strategy.load(config, options)
|
21
|
-
end
|
22
|
-
|
23
|
-
def options
|
24
|
-
@options ||= {}
|
25
|
-
end
|
26
|
-
|
27
|
-
|
28
|
-
end
|
29
|
-
end
|
data/lib/dply/reload.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'dply/strategy'
|
2
|
-
require 'dply/config'
|
3
|
-
|
4
|
-
module Dply
|
5
|
-
class Reload
|
6
|
-
|
7
|
-
attr_reader :deploy_dir, :config
|
8
|
-
attr_writer :options
|
9
|
-
|
10
|
-
def initialize(deploy_dir, config)
|
11
|
-
@deploy_dir = deploy_dir
|
12
|
-
@config = config
|
13
|
-
end
|
14
|
-
|
15
|
-
def run
|
16
|
-
strategy.reload
|
17
|
-
end
|
18
|
-
|
19
|
-
def strategy
|
20
|
-
@strategy ||= Strategy.load(config, options)
|
21
|
-
end
|
22
|
-
|
23
|
-
def options
|
24
|
-
@options ||= {}
|
25
|
-
end
|
26
|
-
|
27
|
-
|
28
|
-
end
|
29
|
-
end
|
data/lib/dply/setup/default.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
require 'dply/helper'
|
3
|
-
require 'dply/shared_dirs'
|
4
|
-
|
5
|
-
module Dply
|
6
|
-
module Setup
|
7
|
-
class Default
|
8
|
-
|
9
|
-
include Helper
|
10
|
-
|
11
|
-
attr_reader :config
|
12
|
-
|
13
|
-
def initialize(config)
|
14
|
-
@config = config
|
15
|
-
end
|
16
|
-
|
17
|
-
def run
|
18
|
-
Dir.chdir config.deploy_dir do
|
19
|
-
shared_dirs.create
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def shared_dirs
|
26
|
-
@shared_dirs ||= SharedDirs.new
|
27
|
-
end
|
28
|
-
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
data/lib/dply/setup/git.rb
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
require 'dply/helper'
|
3
|
-
require 'dply/repo'
|
4
|
-
require 'dply/shared_dirs'
|
5
|
-
|
6
|
-
module Dply
|
7
|
-
module Setup
|
8
|
-
class Git
|
9
|
-
|
10
|
-
include Helper
|
11
|
-
|
12
|
-
attr_reader :config
|
13
|
-
|
14
|
-
def initialize(config)
|
15
|
-
@config = config
|
16
|
-
end
|
17
|
-
|
18
|
-
def run
|
19
|
-
Dir.chdir setup_dir do
|
20
|
-
repo.create
|
21
|
-
symlink "repo", "current"
|
22
|
-
create_dirs
|
23
|
-
shared_dirs.create_in "shared"
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
private
|
28
|
-
|
29
|
-
def repo
|
30
|
-
@repo ||= ::Dply::Repo.new(repo_dir, config.repo)
|
31
|
-
end
|
32
|
-
|
33
|
-
def create_dirs
|
34
|
-
dirs = ["config", "shared"]
|
35
|
-
FileUtils.mkdir_p dirs
|
36
|
-
end
|
37
|
-
|
38
|
-
def shared_dirs
|
39
|
-
@shared_dirs ||= SharedDirs.new(config.shared_dirs)
|
40
|
-
end
|
41
|
-
|
42
|
-
def setup_dir
|
43
|
-
config.deploy_dir
|
44
|
-
end
|
45
|
-
|
46
|
-
def repo_dir
|
47
|
-
"#{setup_dir}/repo"
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|