2011-04-25 62 views
8

我需要强制停止在远程服务器上运行的Hudson版本。有没有一个命令/ API来做到这一点?HUDSON:如何从命令行阻止hudson作业?

为前:触发一个新的版本,我们可以这样做: - HUDSON_URL /工作/ JOBNAME /建造

寻找类似的API时停止构建。

回答

10

你应该能够做出HTTP请求

http://HUDSON_URL/job/JOBNAME/BUILDNUMBER/stop

,你可以做一个XPath的请求来获取内部版本号

http://HUDSON_URL/job/JOBNAME/api/xml?xpath=//lastBuild/number/text()

可能有办法把最新的BUG或lastBuild代替BUILDNUMBER,但如果没有,你可以使用2个http获取。

+4

http:// HUDSON_URL/job/JOBNAME/lastBuild/stop stopped ,,感谢您的回复 – girishs 2011-04-26 12:32:18

+0

感谢您的回复! – 2014-07-16 00:40:52

3

从上面的回答(upvoted),@girishs'评论,我自己的一些工作,在Windows环境(Linux的很可能使用wget,而不是curl,没有测试):

curl --request POST -u <USER>:<PASS> "%JENKINS_URL%/job/%JOB_NAME%/lastBuild/stop" 

...这将停止最近的版本,而不需要任何将来的配置编辑。所有你需要的是你的用户/传球组合。

+0

如果您不想将明文密码放入shell脚本中,则可以用用户的API令牌代替。仍然不是很好的安全性,但稍好一些。 (来源:https://wiki.jenkins-ci.org/display/JENKINS/Authenticating+scripted+clients) – 2015-01-28 20:23:40