depengine 3.0.20 → 3.0.21

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.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +8 -0
  3. data/.rubocop_todo.yml +52 -0
  4. data/Gemfile.lock +16 -1
  5. data/Rakefile +9 -9
  6. data/bin/cdb_crypt +2 -2
  7. data/bin/de +1 -1
  8. data/bin/depengine +2 -2
  9. data/bin/spec_setup +2 -2
  10. data/depengine.gemspec +22 -21
  11. data/lib/depengine/asserter/url.rb +8 -9
  12. data/lib/depengine/cli.rb +12 -14
  13. data/lib/depengine/dsl/cdb.rb +16 -17
  14. data/lib/depengine/dsl/deployment.rb +42 -50
  15. data/lib/depengine/dsl/dweb.rb +10 -11
  16. data/lib/depengine/dsl/executor.rb +5 -5
  17. data/lib/depengine/dsl/fileops.rb +3 -4
  18. data/lib/depengine/dsl/helper.rb +26 -28
  19. data/lib/depengine/dsl/iis.rb +21 -24
  20. data/lib/depengine/dsl/patch.rb +22 -46
  21. data/lib/depengine/dsl/publisher.rb +14 -14
  22. data/lib/depengine/dsl/remote.rb +11 -13
  23. data/lib/depengine/dsl/repository.rb +19 -21
  24. data/lib/depengine/dsl/template.rb +19 -19
  25. data/lib/depengine/dsl/zip.rb +24 -24
  26. data/lib/depengine/helper/cli_helper.rb +9 -11
  27. data/lib/depengine/helper/hudson.rb +15 -19
  28. data/lib/depengine/helper/mail.rb +19 -25
  29. data/lib/depengine/helper/properties.rb +33 -52
  30. data/lib/depengine/helper/smb.rb +19 -25
  31. data/lib/depengine/helper/validations.rb +7 -7
  32. data/lib/depengine/helper/yaml.rb +7 -9
  33. data/lib/depengine/log/log.rb +3 -6
  34. data/lib/depengine/processor/erb_template.rb +42 -47
  35. data/lib/depengine/processor/fileops.rb +39 -48
  36. data/lib/depengine/processor/local_execute.rb +6 -4
  37. data/lib/depengine/processor/properties.rb +34 -56
  38. data/lib/depengine/processor/sed.rb +8 -12
  39. data/lib/depengine/processor/tags.rb +9 -10
  40. data/lib/depengine/processor/template.rb +27 -32
  41. data/lib/depengine/processor/zip.rb +16 -20
  42. data/lib/depengine/provider/cdb.rb +64 -71
  43. data/lib/depengine/provider/cdb_filesystem.rb +18 -26
  44. data/lib/depengine/provider/git.rb +37 -42
  45. data/lib/depengine/provider/repository.rb +161 -176
  46. data/lib/depengine/publisher/dweb.rb +74 -90
  47. data/lib/depengine/publisher/iis.rb +23 -30
  48. data/lib/depengine/publisher/rsync.rb +14 -17
  49. data/lib/depengine/publisher/samba.rb +12 -14
  50. data/lib/depengine/publisher/sftp.rb +51 -61
  51. data/lib/depengine/publisher/ssh.rb +19 -22
  52. data/lib/depengine/publisher/tomcat.rb +19 -21
  53. data/lib/depengine/reporter/cdb.rb +2 -3
  54. data/lib/depengine/version.rb +1 -1
  55. data/lib/depengine.rb +1 -2
  56. data/spec/cdb_spec.rb +8 -10
  57. data/spec/demo_recipe/recipes/demo.rb +10 -10
  58. data/spec/deployhelper_spec.rb +20 -21
  59. data/spec/fileops_spec.rb +11 -12
  60. data/spec/git_spec.rb +8 -4
  61. data/spec/helper_spec.rb +75 -75
  62. data/spec/junit.rb +47 -49
  63. data/spec/local_execute.rb +7 -7
  64. data/spec/log_spec.rb +17 -18
  65. data/spec/properties_spec.rb +13 -15
  66. data/spec/recipe_spec.rb +15 -16
  67. data/spec/repository_spec.rb +20 -20
  68. data/spec/ssh_spec.rb +18 -19
  69. data/spec/template_spec.rb +30 -30
  70. data/spec/zip_spec.rb +7 -7
  71. metadata +18 -2
@@ -13,40 +13,40 @@ require_relative '../lib/depengine/log/log'
13
13
  $log = Log::DeploymentLogger.new
14
14
  $log.writer.level = Log4r::DEBUG
15
15
 
16
- describe "getting a file" do
17
- context "with maven" do
18
- it "should get from a remote repository" do
16
+ describe 'getting a file' do
17
+ context 'with maven' do
18
+ it 'should get from a remote repository' do
19
19
  tmp_dir = Dir.mktmpdir
20
20
  begin
21
- test = Provider::Repository.new()
22
- test.repository = "http://repo1.maven.org/maven2/"
23
- test.user = ""
24
- test.password = ""
25
- test.method = "maven"
21
+ test = Provider::Repository.new
22
+ test.repository = 'http://repo1.maven.org/maven2/'
23
+ test.user = ''
24
+ test.password = ''
25
+ test.method = 'maven'
26
26
 
27
- test.get_from_repository("org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.jar", tmp_dir)
28
- File.file?(tmp_dir+'/maven-model-2.2.1.jar').should be true
27
+ test.get_from_repository('org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.jar', tmp_dir)
28
+ File.file?(tmp_dir + '/maven-model-2.2.1.jar').should be true
29
29
  ensure
30
30
  FileUtils.remove_entry tmp_dir
31
31
  end
32
32
  end
33
33
  end
34
34
 
35
- context "with SCP" do
36
- it "should get a file from a remote host" do
35
+ context 'with SCP' do
36
+ it 'should get a file from a remote host' do
37
37
  tmp_dir = Dir.mktmpdir
38
38
  begin
39
- FileUtils.mkdir tmp_dir+"/source"
40
- FileUtils.touch tmp_dir+"/source/test.file"
39
+ FileUtils.mkdir tmp_dir + '/source'
40
+ FileUtils.touch tmp_dir + '/source/test.file'
41
41
 
42
- test = Provider::Repository.new()
43
- test.host = "localhost"
42
+ test = Provider::Repository.new
43
+ test.host = 'localhost'
44
44
  test.user = ENV['USER']
45
- test.sshkey = ENV['HOME']+"/.ssh/id_rsa"
46
- test.method = "scp"
45
+ test.sshkey = ENV['HOME'] + '/.ssh/id_rsa'
46
+ test.method = 'scp'
47
47
 
48
- test.get_from_repository(tmp_dir+"/source/test.file", tmp_dir)
49
- File.file?(tmp_dir+'/test.file').should be true
48
+ test.get_from_repository(tmp_dir + '/source/test.file', tmp_dir)
49
+ File.file?(tmp_dir + '/test.file').should be true
50
50
  ensure
51
51
  FileUtils.remove_entry tmp_dir
52
52
  end
data/spec/ssh_spec.rb CHANGED
@@ -12,60 +12,59 @@ $log = Log::DeploymentLogger.new
12
12
  $log.writer.level = Log4r::INFO
13
13
  $exec_file_path = __FILE__
14
14
 
15
- describe "the ssh publisher" do
16
- it "should execute a command on a remote host" do
15
+ describe 'the ssh publisher' do
16
+ it 'should execute a command on a remote host' do
17
17
  worker = Publisher::Ssh.new
18
18
  worker.remote_host = 'localhost'
19
19
  worker.remote_user = ENV['USER']
20
- worker.ssh_key_file = ENV['HOME']+"/.ssh/id_rsa"
20
+ worker.ssh_key_file = ENV['HOME'] + '/.ssh/id_rsa'
21
21
 
22
- result = ''
23
22
  result = worker.remote_execute('ls -l /')
24
- result.should include("drwx")
23
+ result.should include('drwx')
25
24
  end
26
25
 
27
- it "removes old releases" do
26
+ it 'removes old releases' do
28
27
  tmp_dir = Dir.mktmpdir
29
28
  begin
30
29
  elements = 10
31
30
  elements.times do |i|
32
- random_time_in_the_past_days = (Time.now-25*60*60*i-((rand*10000).to_i))
33
- FileUtils.mkdir_p(File.join(tmp_dir,random_time_in_the_past_days.strftime("%Y-%m-%d_%s")))
31
+ random_time_in_the_past_days = (Time.now - 25 * 60 * 60 * i - ((rand * 10_000).to_i))
32
+ FileUtils.mkdir_p(File.join(tmp_dir, random_time_in_the_past_days.strftime('%Y-%m-%d_%s')))
34
33
  end
35
- Dir.glob(tmp_dir+"/*").size.should be elements
34
+ Dir.glob(tmp_dir + '/*').size.should be elements
36
35
 
37
36
  worker = Publisher::Ssh.new
38
37
  worker.remote_host = 'localhost'
39
38
  worker.remote_user = ENV['USER']
40
- worker.ssh_key_file = ENV['HOME']+"/.ssh/id_rsa"
39
+ worker.ssh_key_file = ENV['HOME'] + '/.ssh/id_rsa'
41
40
 
42
- newest_release = Time.now.strftime("%Y-%m-%d_%s")
41
+ newest_release = Time.now.strftime('%Y-%m-%d_%s')
43
42
  FileUtils.mkdir_p(File.join(tmp_dir, newest_release))
44
43
 
45
44
  worker.remove_old_releases(tmp_dir, 1, /[0-9]{4}\-[0-9]{2}\-[0-9]{2}_[0-9]+.*/)
46
- Dir.glob(tmp_dir+"/*").size.should be 1
47
- Dir.glob(tmp_dir+"/*").first.should include(newest_release)
45
+ Dir.glob(tmp_dir + '/*').size.should be 1
46
+ Dir.glob(tmp_dir + '/*').first.should include(newest_release)
48
47
 
49
48
  ensure
50
49
  FileUtils.remove_entry tmp_dir
51
50
  end
52
51
  end
53
52
 
54
- context "when no previous release" do
55
- it "does not remove anything" do
53
+ context 'when no previous release' do
54
+ it 'does not remove anything' do
56
55
  tmp_dir = Dir.mktmpdir
57
56
  begin
58
57
  worker = Publisher::Ssh.new
59
58
  worker.remote_host = 'localhost'
60
59
  worker.remote_user = ENV['USER']
61
- worker.ssh_key_file = ENV['HOME']+"/.ssh/id_rsa"
60
+ worker.ssh_key_file = ENV['HOME'] + '/.ssh/id_rsa'
62
61
 
63
- newest_release = Time.now.strftime("%Y-%m-%d_%s")
62
+ newest_release = Time.now.strftime('%Y-%m-%d_%s')
64
63
  FileUtils.mkdir_p(File.join(tmp_dir, newest_release))
65
64
 
66
65
  worker.remove_old_releases(tmp_dir, 2, /[0-9]{4}\-[0-9]{2}\-[0-9]{2}_[0-9]+.*/)
67
- Dir.glob(tmp_dir+"/*").size.should be 1
68
- Dir.glob(tmp_dir+"/*").first.should include(newest_release)
66
+ Dir.glob(tmp_dir + '/*').size.should be 1
67
+ Dir.glob(tmp_dir + '/*').first.should include(newest_release)
69
68
 
70
69
  ensure
71
70
  FileUtils.remove_entry tmp_dir
@@ -13,77 +13,77 @@ require_relative '../lib/depengine/helper/validations'
13
13
  $log = Log::DeploymentLogger.new
14
14
  $log.writer.level = Log4r::ERROR
15
15
 
16
- describe "the template mechanism" do
16
+ describe 'the template mechanism' do
17
17
 
18
- context "given a string" do
19
- it "should render a template" do
20
- result = Processor::Template.parse(">Template< ><t:echo>Content</t:echo><", {})
21
- expect(result).to include(">Template< >Content<")
18
+ context 'given a string' do
19
+ it 'should render a template' do
20
+ result = Processor::Template.parse('>Template< ><t:echo>Content</t:echo><', {})
21
+ expect(result).to include('>Template< >Content<')
22
22
  end
23
23
  end
24
24
 
25
- context "given a single file as source" do
26
- it "should render a template" do
25
+ context 'given a single file as source' do
26
+ it 'should render a template' do
27
27
  result = Processor::Template.parse('spec/templates/single.tpl', {})
28
- expect(result).to include(">Template< >Content<")
28
+ expect(result).to include('>Template< >Content<')
29
29
  end
30
30
 
31
- it "should create Tags from the content hash and provide it to the template" do
32
- content = {'parameter' => 'value'}
31
+ it 'should create Tags from the content hash and provide it to the template' do
32
+ content = { 'parameter' => 'value' }
33
33
  result = Processor::Template.parse('spec/templates/single_hash.tpl', content)
34
- expect(result).to include(">Template< >value<")
34
+ expect(result).to include('>Template< >value<')
35
35
  end
36
36
 
37
- it "should honor the excludes" do
37
+ it 'should honor the excludes' do
38
38
  tmp_dir = Dir.mktmpdir
39
39
  begin
40
40
  worker = Processor::Template.new
41
41
  worker.basepath = File.join(File.dirname(__FILE__), 'templates')
42
- worker.parse_template('base/sub1/single.tpl', {}, tmp_dir, {:excludes => ["single"]})
42
+ worker.parse_template('base/sub1/single.tpl', {}, tmp_dir, excludes: ['single'])
43
43
 
44
- expect(File.file?(File.join(tmp_dir, "base/sub1/single"))).to be false
44
+ expect(File.file?(File.join(tmp_dir, 'base/sub1/single'))).to be false
45
45
  ensure
46
46
  FileUtils.remove_entry tmp_dir
47
47
  end
48
48
  end
49
49
 
50
- it "should create a directory structure in analogy to the source tree" do
50
+ it 'should create a directory structure in analogy to the source tree' do
51
51
  tmp_dir = Dir.mktmpdir
52
52
  begin
53
53
  worker = Processor::Template.new
54
54
  worker.basepath = File.join(File.dirname(__FILE__), 'templates')
55
55
  worker.parse_template('base/sub1/single.tpl', {}, tmp_dir)
56
56
 
57
- expect(File.open(File.join(tmp_dir,"base/sub1/single"), 'r').read).to include(">Template< >Content<")
57
+ expect(File.open(File.join(tmp_dir, 'base/sub1/single'), 'r').read).to include('>Template< >Content<')
58
58
  ensure
59
59
  FileUtils.remove_entry tmp_dir
60
60
  end
61
61
  end
62
62
  end
63
63
 
64
- context "given a directory" do
65
- it "should create a directory structure in analogy to the source tree" do
64
+ context 'given a directory' do
65
+ it 'should create a directory structure in analogy to the source tree' do
66
66
  tmp_dir = Dir.mktmpdir
67
67
  begin
68
68
  worker = Processor::Template.new
69
69
  worker.basepath = File.join(File.dirname(__FILE__), 'templates')
70
70
  worker.parse_template('base/sub2', {}, tmp_dir)
71
71
 
72
- expect(File.open(File.join(tmp_dir, "base/sub2/multi2"), 'r').read).to include(">Template< >Content<")
72
+ expect(File.open(File.join(tmp_dir, 'base/sub2/multi2'), 'r').read).to include('>Template< >Content<')
73
73
  ensure
74
74
  FileUtils.remove_entry tmp_dir
75
75
  end
76
76
  end
77
77
 
78
- it "should not use any excluded file" do
78
+ it 'should not use any excluded file' do
79
79
  tmp_dir = Dir.mktmpdir
80
80
  begin
81
81
  worker = Processor::Template.new
82
82
  worker.basepath = File.join(File.dirname(__FILE__), 'templates')
83
- worker.parse_template('base/sub2', {}, tmp_dir, {:excludes => ["multi2"]})
83
+ worker.parse_template('base/sub2', {}, tmp_dir, excludes: ['multi2'])
84
84
 
85
- expect(File.file?(File.join(tmp_dir, "base/sub2/multi2"))).to be false
86
- expect(File.file?(File.join(tmp_dir, "base/sub2/multi1"))).to be true
85
+ expect(File.file?(File.join(tmp_dir, 'base/sub2/multi2'))).to be false
86
+ expect(File.file?(File.join(tmp_dir, 'base/sub2/multi1'))).to be true
87
87
  ensure
88
88
  FileUtils.remove_entry tmp_dir
89
89
  end
@@ -92,14 +92,14 @@ describe "the template mechanism" do
92
92
  end
93
93
 
94
94
  describe "the template DSL method 'parse_template'" do
95
- it "calls the processor" do
95
+ it 'calls the processor' do
96
96
  tmp_dir = Dir.mktmpdir
97
- begin
98
- hack_object = Class.new.class.class_eval("include Deployment::Methods::Template")
99
- hack_object.parse_template("base/sub1/single.tpl", tmp_dir, {}, {:basepath => File.join(File.dirname(__FILE__), 'templates'), })
100
- ensure
101
- FileUtils.remove_entry tmp_dir
102
- end
97
+ begin
98
+ hack_object = Class.new.class.class_eval('include Deployment::Methods::Template')
99
+ hack_object.parse_template('base/sub1/single.tpl', tmp_dir, {}, basepath: File.join(File.dirname(__FILE__), 'templates'))
100
+ ensure
101
+ FileUtils.remove_entry tmp_dir
102
+ end
103
103
  end
104
104
 
105
105
  end
data/spec/zip_spec.rb CHANGED
@@ -7,17 +7,17 @@ require_relative '../lib/depengine/log/log'
7
7
  $log = Log::DeploymentLogger.new
8
8
  $log.writer.level = Log4r::ERROR
9
9
 
10
- describe "the zipper" do
10
+ describe 'the zipper' do
11
11
  include Processor
12
12
 
13
- it "should extract all files from an archive" do
13
+ it 'should extract all files from an archive' do
14
14
  tmp_dir = Dir.mktmpdir
15
15
  begin
16
- unzip_file(File.join(File.dirname(__FILE__),'zip/source/dummy.zip'), tmp_dir)
17
- File.file?(File.join(tmp_dir,'dummy1')).should be_true
18
- File.file?(File.join(tmp_dir,'dummy2')).should be_true
19
- File.file?(File.join(tmp_dir,'dummy3')).should be_true
20
- File.file?(File.join(tmp_dir,'sub1/sub2/sub3/dummy4')).should be_true
16
+ unzip_file(File.join(File.dirname(__FILE__), 'zip/source/dummy.zip'), tmp_dir)
17
+ File.file?(File.join(tmp_dir, 'dummy1')).should be_true
18
+ File.file?(File.join(tmp_dir, 'dummy2')).should be_true
19
+ File.file?(File.join(tmp_dir, 'dummy3')).should be_true
20
+ File.file?(File.join(tmp_dir, 'sub1/sub2/sub3/dummy4')).should be_true
21
21
  ensure
22
22
  FileUtils.remove_entry tmp_dir
23
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: depengine
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.20
4
+ version: 3.0.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Team Automatisierung
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-01 00:00:00.000000000 Z
11
+ date: 2014-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -192,6 +192,20 @@ dependencies:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
194
  version: 3.2.0
195
+ - !ruby/object:Gem::Dependency
196
+ name: rubocop
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: 0.24.1
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: 0.24.1
195
209
  description: Simply generates Depengine text.
196
210
  email:
197
211
  - team-automatisierung@sinnerschrader.com
@@ -203,6 +217,8 @@ executables:
203
217
  extensions: []
204
218
  extra_rdoc_files: []
205
219
  files:
220
+ - ".rubocop.yml"
221
+ - ".rubocop_todo.yml"
206
222
  - Gemfile
207
223
  - Gemfile.lock
208
224
  - Rakefile