在python代码中关闭正在执行的Jenkins Job

通过python程序关闭正在执行的Jenkins Job

配置了Jenkins来进行自动化,Jenkins部署在远程服务器上,通过shell脚本执行Python的一些测试脚本,但是有一个问题,在Jenkins构建了一个Job后,即使中间的Python测试脚本出现了failed,也还会执行下去,知道执行完整个Job,为了在出现问题的时候保留现场,需要在出现问题的时候,立刻停止这个Jenkins Job。

通过python-jenkins官网可以查到jenkins对python开放的API

# https://python-jenkins.readthedocs.io/en/latest/examples.html

通过 get_running_builds()方法可以获得正在执行的Job各类信息,主要是获得job的name和number,有了name和number就可以关闭任何一个我们想关闭的Job,name和number如下
在这里插入图片描述

直接上代码

import jenkins
# 连接到 Jenkins 服务器
server = jenkins.Jenkins('http://10.5.101.120:8080', username='test', password='test')
# Jenkins一般都部署在远程服务器,这里就是服务器的IP和登录名、密码

# 获取正在运行的构建信息
running_builds = server.get_running_builds()
print(running_builds)

# 遍历所有正在运行的构建
for build in running_builds:
    job_name = build['name']
    job_number = build['number']
    # 停止指定的构建
    server.stop_build(job_name, job_number)

如果服务器在内网,那么可能会需要安装jenkins库,没有联通外网的情况下,可以在下面网站下载对应的包,然后移到服务器上手动安装即可。

# https://pypi.org/
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python使用jenkinsapi库来批量化创建Jenkins Job非常简单。我们可以使用jenkinsapi的Job类来创建一个新的job,并使用Job类的方法来设置job的参数,例如参数化构建、添加构建步骤等等。 以下是一个示例,演示如何使用jenkinsapi批量创建Jenkins Job: ```python from jenkinsapi.jenkins import Jenkins # 连接到Jenkins服务器 jenkins_url = 'http://localhost:8080' jenkins_username = 'your_username' jenkins_password = 'your_password' server = Jenkins(jenkins_url, username=jenkins_username, password=jenkins_password) # 待创建的job名称列表 job_names = ['job1', 'job2', 'job3'] # 待创建的job配置 job_config = ''' <project> <actions/> <description>My job description</description> <keepDependencies>false</keepDependencies> <properties/> <scm class="hudson.scm.NullSCM"/> <canRoam>true</canRoam> <disabled>false</disabled> <blockBuildWhenDownstreamBuilding>false</blockBuildWhenDownstreamBuilding> <blockBuildWhenUpstreamBuilding>false</blockBuildWhenUpstreamBuilding> <triggers class="vector"/> <concurrentBuild>false</concurrentBuild> <builders> <hudson.tasks.Shell> <command>echo "Hello World"</command> </hudson.tasks.Shell> </builders> <publishers/> <buildWrappers/> </project> ''' # 批量创建job for job_name in job_names: server.create_job(job_name, job_config) ``` 在这个示例,我们首先连接到Jenkins服务器,然后定义了待创建的job名称列表和待创建的job配置。然后,我们使用循环来批量创建job,使用create_job方法创建job,并将待创建的job配置作为参数传递给它。 在这个示例,我们使用的是静态的job配置,但实际上,我们也可以使用Python来动态生成job配置,例如根据参数化构建来生成job配置等等。 总之,jenkinsapi库提供了非常方便的接口来批量化创建Jenkins Job,并且可以根据实际情况进行灵活调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值