jenkins-plugin-runtime 0.1.21 → 0.1.22
Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,55 @@
|
|
1
|
+
module Jenkins::Listeners
|
2
|
+
# Receive notification of build events.
|
3
|
+
#
|
4
|
+
# Include this module in your class in order to receive callbacks
|
5
|
+
# when builds are started, completed, deleted, etc...
|
6
|
+
#
|
7
|
+
# To receive a callback, override the method with the same name as
|
8
|
+
# the event. E.g.
|
9
|
+
#
|
10
|
+
# class MyRunListener
|
11
|
+
# include Jenkins::Listeners::RunListener
|
12
|
+
#
|
13
|
+
# def started(build, listener)
|
14
|
+
# puts "build.inspect started!"
|
15
|
+
# end
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
module RunListener
|
19
|
+
extend Jenkins::Plugin::Behavior
|
20
|
+
|
21
|
+
implemented do |cls|
|
22
|
+
Jenkins.plugin.register_extension RunListenerProxy.new(Jenkins.plugin, cls.new)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Called when a build is started (i.e. it was in the queue, and will now start running
|
26
|
+
# on an executor)
|
27
|
+
#
|
28
|
+
# @param [Jenkins::Model::Build] the started build
|
29
|
+
# @param [Jenkins::Model::TaskListener] the task listener for this build
|
30
|
+
def started(build, listener)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Called after a build is completed.
|
34
|
+
#
|
35
|
+
# @param [Jenkins::Model::Build] the completed build
|
36
|
+
# @param [Jenkins::Model::TaskListener] the task listener for this build
|
37
|
+
def completed(build, listener)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Called after a build is finalized.
|
41
|
+
#
|
42
|
+
# At this point, all the records related to a build is written down to the disk. As such,
|
43
|
+
# task Listener is no longer available. This happens later than {#completed}.
|
44
|
+
#
|
45
|
+
# @param [Jenkins::Model::Build] the finalized build
|
46
|
+
def finalized(build)
|
47
|
+
end
|
48
|
+
|
49
|
+
# Called right before a build is going to be deleted.
|
50
|
+
#
|
51
|
+
# @param [Jenkins::Model::Build] The build.
|
52
|
+
def deleted(build)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Jenkins::Listeners
|
2
|
+
class RunListenerProxy < Java.hudson.model.listeners.RunListener
|
3
|
+
include Jenkins::Plugin::Proxy
|
4
|
+
|
5
|
+
def initialize(plugin, object)
|
6
|
+
super(plugin, object, Java.hudson.model.AbstractBuild.java_class)
|
7
|
+
end
|
8
|
+
|
9
|
+
def onStarted(run, listener)
|
10
|
+
@object.started(run, listener)
|
11
|
+
end
|
12
|
+
|
13
|
+
def onCompleted(run, listener)
|
14
|
+
@object.completed(run, listener)
|
15
|
+
end
|
16
|
+
|
17
|
+
def onFinalized(run)
|
18
|
+
@object.finalized(run)
|
19
|
+
end
|
20
|
+
|
21
|
+
def onDeleted(run)
|
22
|
+
@object.deleted(run)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'rspec-spies'
|
3
|
+
|
4
|
+
describe Jenkins::Listeners::RunListenerProxy do
|
5
|
+
before do
|
6
|
+
@listener = mock(Jenkins::Listeners::RunListener)
|
7
|
+
@proxy = Jenkins::Listeners::RunListenerProxy.new(mock(Jenkins::Plugin, :name => 'test-plugin'), @listener)
|
8
|
+
@build = mock(Jenkins::Model::Build)
|
9
|
+
@console = mock(Jenkins::Model::Listener)
|
10
|
+
end
|
11
|
+
|
12
|
+
describe "when started" do
|
13
|
+
before do
|
14
|
+
@listener.stub(:started)
|
15
|
+
@proxy.onStarted(@build, @console)
|
16
|
+
end
|
17
|
+
it 'invokes the started callback' do
|
18
|
+
@listener.should have_received(:started).with(@build, @console)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe 'when completed' do
|
23
|
+
before do
|
24
|
+
@listener.stub(:completed)
|
25
|
+
@proxy.onCompleted(@build, @console)
|
26
|
+
end
|
27
|
+
it 'invokes the completed callback' do
|
28
|
+
@listener.should have_received(:completed).with(@build, @console)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe 'when finalized' do
|
33
|
+
before do
|
34
|
+
@listener.stub(:finalized)
|
35
|
+
@proxy.onFinalized(@build)
|
36
|
+
end
|
37
|
+
it 'invokes the finalized callback' do
|
38
|
+
@listener.should have_received(:finalized).with(@build)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe 'when deleted' do
|
43
|
+
before do
|
44
|
+
@listener.stub(:deleted)
|
45
|
+
@proxy.onDeleted(@build)
|
46
|
+
end
|
47
|
+
it 'invokes the deleted callback' do
|
48
|
+
@listener.should have_received(:deleted).with(@build)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: jenkins-plugin-runtime
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.1.
|
5
|
+
version: 0.1.22
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Charles Lowell
|
@@ -99,6 +99,8 @@ files:
|
|
99
99
|
- lib/jenkins/cli/command_proxy.rb
|
100
100
|
- lib/jenkins/filepath.rb
|
101
101
|
- lib/jenkins/launcher.rb
|
102
|
+
- lib/jenkins/listeners/run_listener.rb
|
103
|
+
- lib/jenkins/listeners/run_listener_proxy.rb
|
102
104
|
- lib/jenkins/model.rb
|
103
105
|
- lib/jenkins/model/action.rb
|
104
106
|
- lib/jenkins/model/build.rb
|
@@ -131,6 +133,7 @@ files:
|
|
131
133
|
- spec/jenkins/cli/command_spec.rb
|
132
134
|
- spec/jenkins/filepath_spec.rb
|
133
135
|
- spec/jenkins/launcher_spec.rb
|
136
|
+
- spec/jenkins/listeners/run_listener_proxy_spec.rb
|
134
137
|
- spec/jenkins/model/action_spec.rb
|
135
138
|
- spec/jenkins/model/build_spec.rb
|
136
139
|
- spec/jenkins/model/describable_spec.rb
|
@@ -184,6 +187,7 @@ test_files:
|
|
184
187
|
- spec/jenkins/cli/command_spec.rb
|
185
188
|
- spec/jenkins/filepath_spec.rb
|
186
189
|
- spec/jenkins/launcher_spec.rb
|
190
|
+
- spec/jenkins/listeners/run_listener_proxy_spec.rb
|
187
191
|
- spec/jenkins/model/action_spec.rb
|
188
192
|
- spec/jenkins/model/build_spec.rb
|
189
193
|
- spec/jenkins/model/describable_spec.rb
|