文章目录
- 一、要求
- 二、pipeline模板xml的内容可以通过如下方式获取
- 三、代码
- 四、效果
- 五、参考文章
一、要求
将hudson.model.StringParameterDefinition的参数名从DB_TYPE改为OS_TYPE,并创建名字为test1
的Job
二、pipeline模板xml的内容可以通过如下方式获取
http://Jenkins地址/job/job名/config.xml
三、代码
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import jenkins
from xml.etree import ElementTree as ET
jenkins_server_url = "http://192.168.1.2:6060/"
username = "admin"
token = "112f52051d1432cade5d555b5c595a"
server = jenkins.Jenkins(jenkins_server_url, username=username, password=token)
print(server.get_version()) # Jenkins版本
# pipeline模板
pipeline_template = """
<flow-definition plugin="[email protected]_29023983d67">
<actions>
<org.jenkinsci.plugins.workflow.multibranch.JobPropertyTrackerAction plugin="[email protected]_e52371b_">
<jobPropertyDescriptors>
<string>hudson.model.ParametersDefinitionProperty</string>
</jobPropertyDescriptors>
</org.jenkinsci.plugins.workflow.multibranch.JobPropertyTrackerAction>
</actions>
<description></description>
<keepDependencies>false</keepDependencies>
<properties>
<hudson.model.ParametersDefinitionProperty>
<parameterDefinitions>
<hudson.model.StringParameterDefinition>
<name>DB_TYPE</name>
<trim>true</trim>
</hudson.model.StringParameterDefinition>
</parameterDefinitions>
</hudson.model.ParametersDefinitionProperty>
</properties>
<definition class="org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition" plugin="[email protected]">
<script></script>
<sandbox>true</sandbox>
</definition>
<triggers/>
<disabled>false</disabled>
</flow-definition>
"""
xml_root = ET.XML(pipeline_template) # 获取文件根标签
str_param_object = xml_root.find("properties").find("hudson.model.ParametersDefinitionProperty").find("parameterDefinitions").iter("hudson.model.StringParameterDefinition") # 获取字符串参数标签
for str_param_cell in str_param_object:
str_param_cell.find("name").text = "OS_TYPE" # 修改<name></name>之间的值
tree = ET.ElementTree(xml_root)
tree.write("config.xml", encoding="utf-8",short_empty_elements=True) # 如果文件不存在,则创建文件,如果文件已存在则修改相应内容
f = open('config.xml', 'r') # 打开文件
xml = f.read() # 读取文件内容
f.close()
server.create_job("test1",xml)
四、效果
五、参考文章
python 操作xml的方式介绍使用Python操作Jenkins(创建,构建,获取Job日志和报告)