gpt4 book ai didi

python - 如何在 Python 中使用 Jenkins API 执行构建前和构建后步骤?

转载 作者:行者123 更新时间:2023-12-02 09:47:33 29 4
gpt4 key购买 nike

我正在使用 Jenkins Python API,并希望自动执行构建前和构建后步骤。我怎样才能实现这个目标?

我能够连接到我的 Jenkins 服务器并列出所有构建和插件,但如何使用 Python Jenkins API 自动化构建前和构建后步骤?

最佳答案



您说您想要“自动化构建前和构建后步骤”。
我假设您的意思是您想要自动向现有作业添加构建前和构建后步骤?

为此,我通常必须查看作业的 config.xml,可通过以下 URL 获取: http://<IP_of_jenkins_instance>:8080/job/<JOB_NAME>/config.xml

然后我找出需要在哪里插入构建前/构建后步骤,相应地拆分它并上传新的作业配置。

例如,下面的示例将插入“执行 Shell”构建步骤(作为第一个构建步骤!),打印“hello”。

import requests


from jenkinsapi.jenkins import Jenkins
from jenkinsapi.utils.requester import Requester


USERNAME, PASSWORD = '<USERNAME>', '<PASSWORD>'
JK = 'http://<IP of jenkins instance>:8080'


def jenkins_instance(jenkins):

requests.packages.urllib3.disable_warnings()
return Jenkins(jenkins, requester=Requester(USERNAME, PASSWORD, baseurl=jenkins, ssl_verify=False, timeout=20))


def _get_config_given_job(server, job_name):

config = server.get_job(job_name).get_config().encode('utf-8')
return config


def _upload_new_job_config(job_name, config):

url = '{0}/job/{1}/config.xml'.format(JK, job_name)
r = requests.post(url, data=config, auth=(USERNAME, PASSWORD))
if str(r.status_code).startswith('2'):
print 'Successfully updated config for:' + job_name


def main():

job_name = '<YOUR JOB NAME>'
server = jenkins_instance(JK)
config = _get_config_given_job(server, job_name)
shell_build_step = '<hudson.tasks.Shell><command>echo hello</command></hudson.tasks.Shell>'
new_config = '{0}{1}{2}{3}'.format(
config.split('<builders>')[0],
'<builders>',
shell_build_step,
config.split('<builders>')[1]
)
_upload_new_job_config(job_name, new_config)


if __name__ == '__main__':
main()

关于python - 如何在 Python 中使用 Jenkins API 执行构建前和构建后步骤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29959940/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com