depengine 3.0.19 → 3.0.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/depengine/dsl/helper.rb +23 -1
- data/lib/depengine/provider/git.rb +15 -0
- data/lib/depengine/version.rb +1 -1
- data/spec/git_spec.rb +31 -0
- data/spec/helper_spec.rb +21 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 80a1e552180801be141930fb42d7ccf0b298ebde
|
4
|
+
data.tar.gz: 96d44887c4a629e516b268d7aa03ef496da0c7bc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34787500598a6ab6d89c942ed198d1c1c68e4574138c01f6764eaa50447ee1e7cf3f38d5db5402bf38067e8c8f5fa56a479c82cbdd2a98026c86237f9c15e1d4
|
7
|
+
data.tar.gz: 1099a7b739b491455d94756f0727010528eb7080975ada5aa499ff5bef30157e012cf2e9252ff13f85bcfbbbcab51e6f21525469d11145d45785990de36f446c
|
data/lib/depengine/dsl/helper.rb
CHANGED
@@ -80,11 +80,33 @@ module Deployment
|
|
80
80
|
:from => options[:deploy_email_from] || @cdb['deploy_email_from'],
|
81
81
|
:to => options[:deploy_email_to] || @cdb['deploy_email_to'],
|
82
82
|
:subject => "#{options[:env]} #{options[:job_name]} #{options[:module_name]} #{options[:application_name]} #{options[:version]} #{options[:status]}",
|
83
|
-
:body => "Env: #{options[:env]}\nJob: #{options[:job_name]}\nModule: #{options[:module_name]}\nApplication: #{options[:application_name]}\nVersion: #{options[:version].to_json}\n#{options[:status]}.\n\n
|
83
|
+
:body => "Env: #{options[:env]}\nJob: #{options[:job_name]}\nModule: #{options[:module_name]}\nApplication: #{options[:application_name]}\nVersion: #{options[:version].to_json}\n#{options[:status]}.\n\n#{options[:message]}"
|
84
84
|
}
|
85
85
|
sendmail(mail_options)
|
86
86
|
end
|
87
87
|
|
88
|
+
# Sends an email with git commit history to report a deployment to a given recepiant.
|
89
|
+
#
|
90
|
+
# Parameters:
|
91
|
+
# * +:r2+ - Include commits that are reachable from r2
|
92
|
+
# * +:r1+ - but exclude those that are reachable from r1.
|
93
|
+
# * +options+ - a hash with needed configuration options for the email. All parameters are optional.
|
94
|
+
# * +:git_dir+ - Directory from which the git repo can be reached (the one containing .git or any of its children).
|
95
|
+
# * +:application_name+ - which application has been deployed
|
96
|
+
# * +:module_name+ - which module of the application has been deployed
|
97
|
+
# * +:status+ - the resulting status of the deployment
|
98
|
+
# * +:message+ - a additional message to send in the mail, commonly used to specify any non positive status.
|
99
|
+
# * +:deploy_email_from+ - the senders address
|
100
|
+
# * +:deploy_email_to+ - the recipiants address
|
101
|
+
# Please see `GITREVISIONS(7)` for more info on how to specify a revision range.
|
102
|
+
def report_by_mail_with_git_history(r1='', r2='', options={})
|
103
|
+
git = Provider::Git.new
|
104
|
+
git.repository_local_dir = options[:git_dir] || '.'
|
105
|
+
options[:message] = (options[:message] || '') + git.history(r1, r2).to_s
|
106
|
+
|
107
|
+
report_by_mail(options)
|
108
|
+
end
|
109
|
+
|
88
110
|
# Deploys a tomcat based application to a set of app servers. <br>
|
89
111
|
# The tomcats are restarted in this process.
|
90
112
|
#
|
@@ -104,6 +104,21 @@ module Provider
|
|
104
104
|
end
|
105
105
|
end
|
106
106
|
end
|
107
|
+
|
108
|
+
# Gets the git commit history of a local git repository.
|
109
|
+
#
|
110
|
+
# Parameters:
|
111
|
+
# * +:r2+ - Include commits that are reachable from r2
|
112
|
+
# * +:r1+ - but exclude those that are reachable from r1.
|
113
|
+
# Please see `GITREVISIONS(7)` for more info on how to specify a revision range.
|
114
|
+
def history(r1='',r2='HEAD')
|
115
|
+
rev_range = r1.empty? ? '' : "#{r1}..#{r2}"
|
116
|
+
|
117
|
+
Dir.chdir(@repository_local_dir) do
|
118
|
+
Processor.local_execute(["git log --oneline #{rev_range}"])
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
107
122
|
end
|
108
123
|
end
|
109
124
|
|
data/lib/depengine/version.rb
CHANGED
data/spec/git_spec.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require_relative '../lib/depengine/provider/git'
|
2
|
+
require_relative '../lib/depengine/processor/local_execute'
|
3
|
+
|
4
|
+
describe '#history' do
|
5
|
+
|
6
|
+
let(:git) { g = Provider::Git.new; g.repository_local_dir = '.'; g }
|
7
|
+
|
8
|
+
context 'no parameters given' do
|
9
|
+
it 'falls back to all history' do
|
10
|
+
expect(Processor).to receive(:local_execute).once.with(['git log --oneline ']).and_return('ok')
|
11
|
+
git.history()
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'one revision given' do
|
16
|
+
it 'falls back to history between HEAD and given revision' do
|
17
|
+
r1 = '4223abc'
|
18
|
+
expect(Processor).to receive(:local_execute).once.with(['git log --oneline 4223abc..HEAD']).and_return('ok')
|
19
|
+
git.history(r1)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
context 'two revisions given' do
|
24
|
+
it 'uses both to get commits betweem them' do
|
25
|
+
r1, r2 = '4223abc', 'caffe42'
|
26
|
+
expect(Processor).to receive(:local_execute).once.with(['git log --oneline 4223abc..caffe42']).and_return('ok')
|
27
|
+
git.history(r1,r2)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
data/spec/helper_spec.rb
CHANGED
@@ -145,4 +145,25 @@ describe "the report_by_mail method" do
|
|
145
145
|
worker.report_by_mail(h)
|
146
146
|
end
|
147
147
|
|
148
|
+
describe '#report_by_mail_with_git_history' do
|
149
|
+
it 'does include the git history in the message object' do
|
150
|
+
worker = Deployment::Worker.new
|
151
|
+
h = {
|
152
|
+
:application_name => "testapplication",
|
153
|
+
:module_name => "testmodule",
|
154
|
+
:job_name => "testjob",
|
155
|
+
:status => "SUCCESS",
|
156
|
+
:message => "i dont know what could possibly go wrong",
|
157
|
+
:deploy_email_from => "#{ENV['USER']}@localhost",
|
158
|
+
:deploy_email_to => "#{ENV['USER']}@localhost"
|
159
|
+
}
|
160
|
+
git_history = "825dc42 foo improved\ne626123 bar renamed\n"
|
161
|
+
allow(Processor).to receive(:local_execute).and_return(git_history)
|
162
|
+
expect(worker).to receive(:report_by_mail).once.with(
|
163
|
+
h.merge({:message => h[:message]+git_history})
|
164
|
+
)
|
165
|
+
worker.report_by_mail_with_git_history('', '', h)
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
148
169
|
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.
|
4
|
+
version: 3.0.20
|
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-
|
11
|
+
date: 2014-08-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -267,6 +267,7 @@ files:
|
|
267
267
|
- spec/demo_recipe/recipes/demo.rb
|
268
268
|
- spec/deployhelper_spec.rb
|
269
269
|
- spec/fileops_spec.rb
|
270
|
+
- spec/git_spec.rb
|
270
271
|
- spec/helper_spec.rb
|
271
272
|
- spec/junit.rb
|
272
273
|
- spec/local_execute.rb
|