Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
jenkins
提交
a3aa29b2
J
jenkins
项目概览
xxadev
/
jenkins
与 Fork 源项目一致
从无法访问的项目Fork
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jenkins
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a3aa29b2
编写于
8月 22, 2012
作者:
N
Nicolas De loof
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #539 from pgdad/JENKINS-14772
fix JENKINS-14772
上级
bfcc93bb
1a5e41bb
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
43 addition
and
1 deletion
+43
-1
core/src/main/java/hudson/cli/BuildCommand.java
core/src/main/java/hudson/cli/BuildCommand.java
+27
-1
test/src/test/groovy/hudson/cli/BuildCommandTest.groovy
test/src/test/groovy/hudson/cli/BuildCommandTest.groovy
+16
-0
未找到文件。
core/src/main/java/hudson/cli/BuildCommand.java
浏览文件 @
a3aa29b2
...
...
@@ -48,6 +48,7 @@ import java.util.HashMap;
import
java.util.List
;
import
java.util.ArrayList
;
import
java.util.Map.Entry
;
import
java.io.FileNotFoundException
;
import
java.io.PrintStream
;
import
jenkins.model.Jenkins
;
...
...
@@ -82,6 +83,12 @@ public class BuildCommand extends CLICommand {
@Option
(
name
=
"-v"
,
usage
=
"Prints out the console output of the build. Use with -s"
)
public
boolean
consoleOutput
=
false
;
@Option
(
name
=
"-r"
,
usage
=
"Number of times to retry reading of the output log if it does not exists on first attempt. Defaults to 0. Use with -v."
)
public
String
retryCntStr
=
"0"
;
// hold parsed retryCnt;
private
int
retryCnt
=
0
;
protected
int
run
()
throws
Exception
{
job
.
checkPermission
(
Item
.
BUILD
);
...
...
@@ -114,6 +121,8 @@ public class BuildCommand extends CLICommand {
a
=
new
ParametersAction
(
values
);
}
retryCnt
=
Integer
.
parseInt
(
retryCntStr
);
if
(
checkSCM
)
{
if
(
job
.
poll
(
new
StreamTaskListener
(
stdout
,
getClientCharset
())).
change
==
Change
.
NONE
)
{
return
0
;
...
...
@@ -128,7 +137,24 @@ public class BuildCommand extends CLICommand {
if
(
sync
)
{
if
(
consoleOutput
)
{
// read output in a retry loop, by default try only once
// writeWholeLogTo may fail with FileNotFound
// exception on a slow/busy machine, if it takes
// longish to create the log file
int
retryInterval
=
100
;
for
(
int
i
=
0
;
i
<=
retryCnt
;)
{
try
{
b
.
writeWholeLogTo
(
stdout
);
break
;
}
catch
(
FileNotFoundException
e
)
{
if
(
i
==
retryCnt
)
{
throw
e
;
}
i
++;
Thread
.
sleep
(
retryInterval
);
}
}
}
// TODO: should we abort the build if the CLI is cancelled?
f
.
get
();
// wait for the completion
...
...
test/src/test/groovy/hudson/cli/BuildCommandTest.groovy
浏览文件 @
a3aa29b2
...
...
@@ -84,6 +84,22 @@ public class BuildCommandTest extends HudsonTestCase {
}
/**
* Tests synchronous execution with retried verbose output
*/
void
testSyncWOutputStreaming
()
{
def
p
=
createFreeStyleProject
();
p
.
buildersList
.
add
(
new
Shell
(
"sleep 3"
));
def
cli
=
new
CLI
(
getURL
())
try
{
cli
.
execute
([
"build"
,
"-s"
,
"-v"
,
"-r"
,
"5"
,
p
.
name
])
assertFalse
(
p
.
getBuildByNumber
(
1
).
isBuilding
())
}
finally
{
cli
.
close
();
}
}
void
testParameters
()
{
def
p
=
createFreeStyleProject
();
p
.
addProperty
(
new
ParametersDefinitionProperty
([
new
StringParameterDefinition
(
"key"
,
null
)]));
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录