PHP调用Jenkins接口的实现

内容:

Jenkins对外提供的接口,

php如何通过curl调用Jenkins接口实现Jenkins中构建的创建


        最近,在使用Jenkins时,需要通过网页后台PHP来调用Jenkins实现Jenkins管理的项目构建的创建,发现网上对于这个讲解不是很清晰

这里自己整理了一些资料,然后通过在代码中实践,实现了一些功能。

【API】

1.创建Jenkins项目

shell 方式:

curl -X POST http://www.xxx.xxx/jenkins/createItem?name=JavaStd --user peterguo:peterguo --data-binary "@javastd.config.xml" -H"Content-Type: text/xml"

php 方式(通过exec命令):

exec(

”curl -X POST http://www.xxx.xxx/jenkins/createItem?name=JavaStd --user peterguo:peterguo --data-binary \"@javastd.config.xml\" -H\"Content-Type: text/xml\""

,$res,$rt);

注:$res 返回结果,$rt 返回为0表示成功,非0表示错误

2.禁用

shell 方式:

curl -X POST http://www.xxx.xxx/jenkins/job/JavaStd/disable  --userpeterguo:peterguo

php 方式:

php 方式(通过exec命令):

exec(”curl -X POST http://www.xxx.xxx/jenkins/job/JavaStd/disable  --userpeterguo:peterguo",$res,$rt);

注:$res 返回结果,$rt 返回为0表示成功,非0表示错误

3.启用

shell 方式:

curl -X POST http://www.xxx.xxx/jenkins/job/JavaStd/enable --userpeterguo:peterguo

php 代码中嵌入(通过exec命令):

exec(”curl -X POST http://www.xxx.xxx/jenkins/job/JavaStd/enable --userpeterguo:peterguo",$res,$rt);

注:$res 返回结果,$rt 返回为0表示成功,非0表示错误

4.删除 

curl -X POST http://www.xxx.xxx/jenkins/job/JavaStd/doDelete --userpeterguo:peterguo

php 代码中嵌入(通过exec命令):

exec(”curl -X POST http://www.xxx.xxx/jenkins/job/JavaStd/doDelete --userpeterguo:peterguo",$res,$rt);

注:$res 返回结果,$rt 返回为0表示成功,非0表示错误


5.获取项目描述 

curl -X GET http://www.xxx.xxx/jenkins/job/JavaStd/description --userpeterguo:peterguo

php 代码中嵌入(通过exec命令):

exec(”curl -X GET http://www.xxx.xxx/jenkins/job/JavaStd/description --userpeterguo:peterguo",$res,$rt);

注:$res 返回结果,$rt 返回为0表示成功,非0表示错误


6.获取配置文件 

curl -X GET http://www.xxx.xxx/jenkins/job/JavaStd/config.xml --userpeterguo:peterguo

php 代码中嵌入(通过exec命令):

exec(”curl -X GET http://www.xxx.xxx/jenkins/job/JavaStd/config.xml --userpeterguo:peterguo",$res,$rt);

注:$res 返回结果,$rt 返回为0表示成功,非0表示错误


7.触发SCM检查


curl -X GET http://www.xxx.xxx/jenkins/job/JavaStd/polling --userpeterguo:peterguo

php 代码中嵌入(通过exec命令):

exec(”curl -X GET http://www.xxx.xxx/jenkins/job/JavaStd/polling --userpeterguo:peterguo",$res,$rt);

注:$res 返回结果,$rt 返回为0表示成功,非0表示错误


8.普通触发 

curl -X GET http://www.xxx.xxx/jenkins/job/JavaStd/build --userpeterguo:peterguo

php 代码中嵌入(通过exec命令):

exec(”curl -X GET http://www.xxx.xxx/jenkins/job/JavaStd/build --userpeterguo:peterguo“,$res,$rt);

注:$res 返回结果,$rt 返回为0表示成功,非0表示错误


9.带参数触发

curl -X GET"http://www.xxx.xxx/jenkins/job/helloworld-freestyle/buildWithParameters?bAllTest=&Choices=2&strParam=abc"--user peterguo:peterguo

php 代码中嵌入(通过exec命令):

exec(”curl -X GETcurl -X GET \"http://www.xxx.xxx/jenkins/job/helloworld-freestyle/buildWithParameters?bAllTest=&Choices=2&strParam=abc\" --user peterguo:peterguo",$res,$rt);

注:$res 返回结果,$rt 返回为0表示成功,非0表示错误


10.带参数和补丁触发  

curl -X POST"http://www.xxx.xxx/jenkins/job/helloworld-freestyle/buildWithParameters?bAllTest=&Choices=2&strParam=abc"--user peterguo:peterguo -F "action=upload" -F"patch.diff=@OtherTest.java.patch"

php 代码中嵌入(通过exec命令):

exec(”curl -X POST \"http://www.xxx.xxx/jenkins/job/helloworld-freestyle/buildWithParameters?bAllTest=&Choices=2&strParam=abc\" --user peterguo:peterguo -F \"action=upload\" -F \"patch.diff=@OtherTest.java.patch\"",$res,$rt);

注:$res 返回结果,$rt 返回为0表示成功,非0表示错误


在项目中需要通过网站触发Jenkins管理项目组件的构建时,我们可以再后台利用PHP的exec来调用底层的shell,通过shell调用相应的API来实现远程触发Jenkins的功能。当然也可以利用php中的curl函数来实现这个功能。

———————————————————————EOF————————————————————————————————--



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值