背景
最近我们在整一个云执行的平台,底层用的是Jenkins
来做执行引擎,方便的把我们的脚本做一个统一的调度。
Jenkins
确实是一个非常方便的框架,它提供了一整套的RESTful
的API,可以非常方便的做二次开发,而且提供了一个python
的库,操作起来就更加方便了。
常用的Jenkins概念
我们在使用Jenkins
的时候,一般看到的都是Jenkins的View
。
也就是说我们看到的基本上都是一些视图。
每一个构建的内容,无论是执行用例,跑脚本,还是打包编译发布,都是一个job
。
每一个job
都有一个对应的name
,如果这个job
被放在某个文件夹了,那么name
就是文件夹名+job名。在查看job
信息的时候,会返回一个full_name
字段,指的就是这个了。
PythonSDK
pip install python-jenkins
执行这条命令就可以安装SDK了。
官网:https://pypi.org/project/python-jenkins/
说明文档:http://python-jenkins.readthedocs.io/en/latest/
说明文档都是英文的,如果有兴趣,看这块当然最好,不过这个SDK实际上非常非常的简单,如果直接去看源代码,也是没问题的,我在开发的过程中,基本上都是去看源码来写的,SDK里面函数命名比较直白,不用深刻理解也能够正常的去使用。
这里列一些比较常用的方法,也是我这次开发的时候用到的一些,我按照我自己写的过程中,一步一步的写出来。
开发过程
- job信息查询
在Jenkins
中,每一个构建都是一个job
,所以,我们做开发的时候,要在页面上展示历史的构建信息,因此,要能够拿到历史执行job
的信息。因此我们要使用get_job_info
这个方法。
def get_job_info(self, name, depth=0, fetch_all_builds=False):