jenkins-plugin-runtime 0.1.8 → 0.1.9
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/jenkins/model/build.rb +20 -0
- data/lib/jenkins/model/listener.rb +1 -1
- data/lib/jenkins/plugin/proxies/build_wrapper.rb +3 -0
- data/lib/jenkins/plugin/runtime/version.rb +1 -1
- data/lib/jenkins/tasks/build_wrapper.rb +1 -2
- data/spec/jenkins/model/build_spec.rb +13 -4
- data/spec/jenkins/plugin/proxies/build_wrapper_spec.rb +10 -0
- metadata +2 -2
data/lib/jenkins/model/build.rb
CHANGED
@@ -2,11 +2,17 @@ require 'jenkins/filepath'
|
|
2
2
|
|
3
3
|
module Jenkins
|
4
4
|
module Model
|
5
|
+
|
5
6
|
##
|
6
7
|
# Represents a single build. In general, you won't need this
|
7
8
|
#
|
8
9
|
class Build
|
9
10
|
|
11
|
+
# Raised to indicate that a build wrapper halted a build.
|
12
|
+
# Raising this does *not* set the build result to error.
|
13
|
+
class Halt < Exception; end
|
14
|
+
|
15
|
+
|
10
16
|
# the Hudson::Model::AbstractBuild represented by this build
|
11
17
|
attr_reader :native
|
12
18
|
|
@@ -18,6 +24,20 @@ module Jenkins
|
|
18
24
|
FilePath.new(@native.getWorkspace())
|
19
25
|
end
|
20
26
|
|
27
|
+
# Halt the current build, without setting the result to failure
|
28
|
+
#
|
29
|
+
# @param [String] reason the reason for your halt, optional.
|
30
|
+
def halt(reason = nil)
|
31
|
+
raise Halt, reason
|
32
|
+
end
|
33
|
+
|
34
|
+
# Abort the current build, causing a build failure.
|
35
|
+
#
|
36
|
+
# @param [String] reason the reason for your abort, optional.
|
37
|
+
def abort(reason = nil)
|
38
|
+
raise Java.hudson.AbortException.new(reason)
|
39
|
+
end
|
40
|
+
|
21
41
|
def build_var
|
22
42
|
@native.getBuildVariables()
|
23
43
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
|
2
2
|
require 'jenkins/tasks/build_wrapper'
|
3
|
+
require 'jenkins/model/build'
|
3
4
|
|
4
5
|
module Jenkins
|
5
6
|
class Plugin
|
@@ -17,6 +18,8 @@ module Jenkins
|
|
17
18
|
env = {}
|
18
19
|
@object.setup(import(build), import(launcher), import(listener), env)
|
19
20
|
EnvironmentWrapper.new(self, @plugin, @object, env)
|
21
|
+
rescue Jenkins::Model::Build::Halt
|
22
|
+
nil
|
20
23
|
end
|
21
24
|
|
22
25
|
def getDescriptor
|
@@ -3,7 +3,6 @@ require 'jenkins/model'
|
|
3
3
|
|
4
4
|
module Jenkins
|
5
5
|
module Tasks
|
6
|
-
|
7
6
|
# Decorate a build with pre and post hooks.
|
8
7
|
# {http://javadoc.jenkins-ci.org/hudson/tasks/BuildWrapper.html}
|
9
8
|
class BuildWrapper
|
@@ -36,4 +35,4 @@ module Jenkins
|
|
36
35
|
end
|
37
36
|
end
|
38
37
|
end
|
39
|
-
end
|
38
|
+
end
|
@@ -1,10 +1,11 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Jenkins::Model::Build do
|
4
|
+
include Jenkins::Model
|
4
5
|
|
5
6
|
before :each do
|
6
7
|
@native = mock("AbstractBuild")
|
7
|
-
@
|
8
|
+
@build = Jenkins::Model::Build.new(@native)
|
8
9
|
end
|
9
10
|
|
10
11
|
it "can be instantiated" do
|
@@ -15,16 +16,24 @@ describe Jenkins::Model::Build do
|
|
15
16
|
fs = Jenkins::FilePath.new(nil)
|
16
17
|
fs.should_receive(:getRemote).and_return(".")
|
17
18
|
@native.should_receive(:getWorkspace).and_return(fs)
|
18
|
-
@
|
19
|
+
@build.workspace.to_s.should == "."
|
19
20
|
end
|
20
21
|
|
21
22
|
it "returns build variables as Hash-like" do
|
22
23
|
@native.should_receive(:getBuildVariables).and_return("FOO" => "BAR")
|
23
|
-
@
|
24
|
+
@build.build_var.should == {"FOO" => "BAR"}
|
24
25
|
end
|
25
26
|
|
26
27
|
it "returns environment variables as Hash-like" do
|
27
28
|
@native.should_receive(:getEnvironment).with(nil).and_return("FOO" => "BAR")
|
28
|
-
@
|
29
|
+
@build.env.should == {"FOO" => "BAR"}
|
30
|
+
end
|
31
|
+
|
32
|
+
it "can halt" do
|
33
|
+
expect {@build.halt "stopping"}.should raise_error(Jenkins::Model::Build::Halt, "stopping")
|
34
|
+
end
|
35
|
+
|
36
|
+
it "can abort" do
|
37
|
+
expect {@build.abort "aborting"}.should raise_error(Java.hudson.AbortException, "aborting")
|
29
38
|
end
|
30
39
|
end
|
@@ -22,4 +22,14 @@ describe Jenkins::Plugin::Proxies::BuildWrapper do
|
|
22
22
|
@object.should_receive(:teardown).with(@build, @listener, env)
|
23
23
|
environment.tearDown(@jBuild, @jListener)
|
24
24
|
end
|
25
|
+
|
26
|
+
describe "halting behavior" do
|
27
|
+
before do
|
28
|
+
@object.stub(:setup).and_raise(Jenkins::Model::Build::Halt)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "returns false if the build was halted explicitly" do
|
32
|
+
@wrapper.setUp(@jBuild, @jLauncher, @jListener).should be_nil
|
33
|
+
end
|
34
|
+
end
|
25
35
|
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.9
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Charles Lowell
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-10-
|
13
|
+
date: 2011-10-26 00:00:00 -05:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|