PHP调用Jenkins接口的实现
2016-07-23 21:34
615 查看
内容:
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————————————————————————————————--
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————————————————————————————————--
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- Php Installing An Expansion
- rem : web app适配的秘密武器
- jquery高级应用之Deferred对象
- 关于浮动与清除浮动,你应该知道的
- 数组reduce方法的高级技巧
- php7 读取php.ini[4]
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站