zoukankan      html  css  js  c++  java
  • PHP去调用jenkins

    背景说明:目前公司用到 jenkins(持续集成开源工具)更多情况下,通过配置,可以在gitlab上通过webhooks去调度jenkins

         或者通过 jenkins管理后台,去手动执行“立即构建”去测试。目前,gitlab去调度jenkins,每次push代码都过于频繁。

           所以很多时候不需要去调度,故改为瓦力发布一次版本时调度相关接口的测试。

    说明:jenkins 是持续集成开源工具,提供了丰富的api接口
    调用:基本上所有的操作都可以使用curl来从后台调度
    包括:创建项目,禁用项目,启用项目,获取项目描述,获取配置文件、普通触发,scm触发,带参数触发,带补丁触发。
    同时也可以使用python 库 jenkinsapi https://pypi.python.org/pypi/jenkinsapi
    Api介绍:Jenkins提供了html、json、python API,实质以http get/post方式调用的
    瓦力部署完成时去调度 jenkins 只需要走一步即可 “普通触发”
     
    API调度实践:
    1、创建job
    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);
    2、禁用
    exec(”curl -X POST http://www.xxx.xxx/jenkins/job/JavaStd/disable --user peterguo:peterguo",$res,$rt);
    3、启用
    exec(”curl -X POST http://www.xxx.xxx/jenkins/job/JavaStd/enable --user peterguo:peterguo",$res,$rt);
    4、删除
    exec(”curl -X POST http://www.xxx.xxx/jenkins/job/JavaStd/doDelete --user peterguo:peterguo",$res,$rt);
    5、获取项目描述
    exec(”curl -X GET http://www.xxx.xxx/jenkins/job/JavaStd/description --user peterguo:peterguo",$res,$rt);
    6、获取配置文件
    exec(”curl -X GET http://www.xxx.xxx/jenkins/job/JavaStd/config.xml --user peterguo:peterguo",$res,$rt);
    7、触发SCM检查
    exec(”curl -X GET http://www.xxx.xxx/jenkins/job/JavaStd/polling --user peterguo:peterguo",$res,$rt);
    8、普通触发
    exec(”curl -X GET http://www.xxx.xxx/jenkins/job/JavaStd/build --user peterguo:peterguo“,$res,$rt);
    9、带参数触发
    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);
    10、带文件触发
    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);
    11、参数和补丁触发 (带补丁触发需要先安装补丁插件,并设置项目的补丁参数)
     
     
    命令行执行:
    curl -X POST http://********/job/Test_javaBetaPush/build --user admin:password
    php代码执行:
    exec("curl -X POST http://*********/job/Test_javaBetaPush/build --user admin:password");
     
    瓦力2.0版本基本可以不用这样做了。

  • 相关阅读:
    Count and Say
    Roman to Integer LeetCode Java
    白菜刷LeetCode记-121. Best Time to Buy and Sell Stock
    白菜刷LeetCode记-103. Binary Tree Zigzag Level Order Traversal
    白菜刷LeetCode记-102. Binary Tree Level Order Traversal
    白菜刷LeetCode记-350. Intersection of Two Arrays II
    白菜刷LeetCode记-268. Missing Number
    白菜刷LeetCode记-378. Kth Smallest Element in a Sorted Matrix
    白菜刷LeetCode记-328. Odd Even Linked List
    白菜刷LeetCode记-230. Kth Smallest Element in a BST
  • 原文地址:https://www.cnblogs.com/dump/p/10385107.html
Copyright © 2011-2022 走看看