【问题标题】:How to create Jenkins Job with Customized XML in python如何在 python 中使用自定义 XML 创建 Jenkins 作业
【发布时间】:2018-02-02 14:46:28
【问题描述】:

我正在尝试使用 python 中的 Jenkins 模块创建 Jenkins 作业。我能够成功连接 jenkins 并执行 get job_count 以及 create_job() 方法。

在 create_job() 方法中,我只能使用“jenkins.EMPTY_CONFIG_XML”参数执行此操作。我如何传递我自己的 xml 配置文件?下面是我的代码,我在本地保存了配置,如何通过替换 EMPTY_CONFIG_XML 来传递它。我尝试了几件事,没有奏效。网上没找到。我下面的代码正在工作。它正在使用 EMPTY_CONFIG_XML 创建 TestJob。有人可以帮助如何传递自定义的 XML 文件吗?谢谢你的帮助!

import jenkins
import xml.etree.ElementTree as ET

server = jenkins.Jenkins("http://x.x.x.x:8080", username="foo", password="baar")

#print server.get_whoami()
server.create_job("TestJob",jenkins.EMPTY_CONFIG_XML)

【问题讨论】:

    标签: python xml jenkins


    【解决方案1】:

    查看documentation for create_jobconfig_xml 参数应该作为 xml 的字符串表示形式传递。

    我使用了xml.etree.ElementTree 来解析 XML 文件并将其转换为字符串:

    import xml.etree.ElementTree as ET
    
    def convert_xml_file_to_str():
        tree = ET.parse(path_to_config_file)
        root = tree.getroot()
        return ET.tostring(root, encoding='utf8', method='xml').decode()
    
    def main():
        target_server = jenkins.Jenkins(url, username=username, password=password)
        config = convert_xml_file_to_str()
        target_server.create_job(job_name, config)
    
    main()
    

    我发现this 线程对理解如何解析 XML 文件非常有帮助,它也很好地解释了 Python2/3 之间的差异。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多