python 修改jenkins的配置文件
python有jenkins获取配置文件的api,也有修改配置文件的api,
下面介绍下 如果修改jenkins job的配置文件内容:
import re import time import jenkins jenkins_url="http://xxx.com/jenkins" username="zhangsan" token="1.......de" jenkins = jenkins.Jenkins(jenkins_url,username,token) #添加 旧构建记录默认配置 daysToKeep = "20" numToKeep = "10" str = '<properties>\n' + \ '<jenkins.model.BuildDiscarderProperty>\n' + \ '<strategy class="hudson.tasks.LogRotator">\n' + \ '<daysToKeep>'+daysToKeep+'</daysToKeep>\n' + \ '<numToKeep>'+numToKeep+'</numToKeep>\n' + \ '<artifactDaysToKeep>-1</artifactDaysToKeep>\n' + \ '<artifactNumToKeep>-1</artifactNumToKeep>\n' + \ '</strategy>\n' + \ '</jenkins.model.BuildDiscarderProperty>' # 获取jenkins中所有job的名字 all_jobs=jenkins.get_jobs() for job in all_jobs: job_name = job["name"] job_confogure_data = jenkins.get_job_config(job_name) # 获取job congifure info if job_confogure_data.find("jenkins.model.BuildDiscarderProperty") == -1: # 如果这个job没有勾选 构建旧记录的配置策略 job_confogure_data = re.sub("<properties>", str, job_confogure_data, 1) # 需修改第一个<properties> else: job_confogure_data = re.sub("<daysToKeep>-?\d+</daysToKeep>", "<daysToKeep>" + daysToKeep + "</daysToKeep>", job_confogure_data) job_confogure_data = re.sub("<numToKeep>-?\d+</numToKeep>", "<numToKeep>" + numToKeep + "</numToKeep>", job_confogure_data) print(job_confogure_data) jenkins.reconfig_job(job_name, job_confogure_data) # 修改job configure信息 time.sleep(3)
因为jenkins的特性是:如果构建记录的保存几天 没有配置,那么值就是-1,具体可以通过jenkins job的config.xml查看:
http://xxx.com/jenkins/job/【jobName】/config.xml
所以需要用到一些正则表达式:
<daysToKeep>-?\d+</daysToKeep>
解释:
?:表示?前面的字符可以出现0到1次
-?\d+ :表示可以是负数,也可以为负数
\d+: 这样 就只能匹配到正数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)