博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python-jenkins模块之jobs相关操作
阅读量:4148 次
发布时间:2019-05-25

本文共 2865 字,大约阅读时间需要 9 分钟。

文章目录

1 jobs创建

1.1 使用python jenkins默认模板创建jobs

实例演示了如何使用默认模板创建目录,在目录里面创建jobs,获取jobs配置以及如何删除目录及目录里面的jobs

>>> import jenkins>>> server = jenkins.Jenkins('http://192.168.37.133:8081', username='sudley', password='******')>>> server.create_job('version', jenkins.EMPTY_FOLDER_XML)>>> server.create_job('version/empty', jenkins.EMPTY_CONFIG_XML)>>> jobs = server.get_jobs()>>> print(jobs)[{
'_class': 'com.cloudbees.hudson.plugins.folder.Folder', 'name': 'version', 'url': 'http://192.168.37.133:8081/job/version/', 'jobs': [{
'_class': 'hudson.model.FreeStyleProject', 'name': 'empty', 'url': 'http://192.168.37.133:8081/job/version/job/empty/', 'color': 'notbuilt'}], 'fullname': 'version'}]>>> print (jobs[0]['fullname'])version>>> my_job = server.get_job_config('version/empty')>>> print(my_job)
false
true
false
false
false
>>> server.copy_job('version/empty','version/empty_2')>>> server.delete_job('version')

1.2 批量创建jenkins任务

可以在jenkins页面上面先配置一个template模板工程,然后在工程的基础上面实现批量创建jobs的工作

比如创建命令为:

python3 create_jobs.py 2019.12.18 SDL2019-XL

create_jobs.py:

#!/usr/bin/env python# -*- coding:utf-8 -*-# author: Sudley# ctime: 2019/12/18import sysimport jenkinsdef create_jobs(version,product):    username = 'sudley'    password='******'    server = jenkins.Jenkins('http://%s:%s@192.168.37.133:8081', username, password)    template_job = server.get_job_config('2019/template')    new_job = template_job.replace('VERSION',version).replace('PRODUCT',product)    try:        server.create_job('2019/new_job', new_job)    except jenkins.JenkinsException as e:        print(e)        print ('delete the job 2019/new_job')        server.delete_job('2019/new_job')        if __name__ == '__main__' :    version = sys.argv[1]    product = sys.argv[2]    create_jobs(version,product)

现在只需要有提供一个version,product列表,然后加一个循环来调用此脚本就能实现批量创建任务。

1.3 jobs配置、构建及信息获取

server.get_job_config('version/empty')server.build_job('empty')server.disable_job('empty')server.copy_job('empty', 'empty_copy')server.rename_job('testjobs','testjobs2')server.enable_job('empty_copy')server.reconfig_job('empty_copy', jenkins.RECONFIG_XML)# build a parameterized job# requires creating and configuring the api-test job to accept 'param1' & 'param2'server.build_job('api-test', {
'param1': 'test value 1', 'param2': 'test value 2'})last_build_number = server.get_job_info('api-test')['lastCompletedBuild']['number']build_info = server.get_build_info('api-test', last_build_number)# get all jobs from the specific viewjobs = server.get_jobs(view_name='View Name')print (jobs)# get jobs from the folder(folder name is '2019')jobs = server.get_jobs()jobs_2019 = jobs[0]['jobs']jobs_num_2019 = len(jobs_2019)print(jobs_2019[0]['name'])

备注:

上面的jobs指新增项目时页面任务类型,如下图的流水线、文件夹等。
在这里插入图片描述

参考资料链接:

转载地址:http://zuiti.baihongyu.com/

你可能感兴趣的文章
JavaScript substring() 方法
查看>>
HTML 5 新的表单元素 datalist keygen output
查看>>
(转载)正确理解cookie和session机制原理
查看>>
jQuery ajax - ajax() 方法
查看>>
将有序数组转换为平衡二叉搜索树
查看>>
最长递增子序列
查看>>
从一列数中筛除尽可能少的数,使得从左往右看这些数是从小到大再从大到小...
查看>>
判断一个整数是否是回文数
查看>>
经典shell面试题整理
查看>>
腾讯的一道面试题—不用除法求数字乘积
查看>>
素数算法
查看>>
java多线程环境单例模式实现详解
查看>>
将一个数插入到有序的数列中,插入后的数列仍然有序
查看>>
在有序的数列中查找某数,若该数在此数列中,则输出它所在的位置,否则输出no found
查看>>
万年历
查看>>
作为码农你希望面试官当场指出你错误么?有面试官这样遭到投诉!
查看>>
好多程序员都认为写ppt是很虚的技能,可事实真的是这样么?
查看>>
如果按照代码行数发薪水会怎样?码农:我能刷到公司破产!
查看>>
程序员失误造成服务停用3小时,只得到半月辞退补偿,发帖喊冤
查看>>
码农:很多人称我“技术”,感觉这是不尊重!纠正无果后果断辞职
查看>>