如何用Python触发多个Jenkins任务?实现串行执行避免冲突
解决Jenkins任务串行执行的方案
方法一:通过Jenkins任务配置直接实现
- 打开目标Jenkins任务的配置页面,找到**“高级项目选项”(部分版本在“构建触发器”区域),取消勾选“允许并发构建”**选项。此后所有触发的构建请求会自动进入队列,等当前构建完成后再依次执行,无需修改Python触发代码。
- 若使用Pipeline流水线任务,可在Jenkinsfile中添加禁用并发的配置,强制串行执行:
pipeline { agent any options { disableConcurrentBuilds() // 禁止并发构建 } stages { stage('Build') { steps { // 写入你的构建执行步骤 } } } }
方法二:在Python触发端控制串行逻辑
如果不想修改Jenkins任务配置,可以通过Python代码在触发前检查任务状态,等待任务空闲后再触发构建。以python-jenkins库为例:
import jenkins import time # 初始化Jenkins连接 jenkins_server = jenkins.Jenkins( 'http://你的Jenkins地址', username='你的用户名', password='你的API令牌' ) target_job = '你的任务名称' def wait_until_job_idle(): while True: # 获取任务当前运行的构建列表 running_builds = jenkins_server.get_running_builds(target_job) if not running_builds: break print(f"任务{target_job}正在执行,10秒后重试...") time.sleep(10) # 等待任务空闲后触发构建 wait_until_job_idle() jenkins_server.build_job(target_job)
内容的提问来源于stack exchange,提问作者Shashank Gowda
相关产品推荐
相关产品推荐

