如何通过代码使用修改后的Jenkins Pipeline脚本触发新构建任务
实现方案
下面提供两种常用的无网页操作实现方式,都可以直接调用本地修改后的Jenkinsfile触发构建:
方案1:Python 实现(推荐用于自动化测试脚本集成)
前置准备
- 安装依赖库:
pip install python-jenkins - 提前获取Jenkins访问权限:用户名 + 密码/API令牌(API令牌可在Jenkins个人设置页面生成,安全性更高)
- 提前给
TEST-PIPELINE任务添加一个字符串类型的构建参数,参数名设为CUSTOM_PIPELINE_SCRIPT,同时将任务的Pipeline定义改为Pipeline script,内容填${CUSTOM_PIPELINE_SCRIPT}即可,后续所有自定义脚本都可以通过参数传递,不需要修改任务配置。
代码示例
import jenkins # 配置项 JENKINS_URL = "http://你的Jenkins服务地址" JENKINS_USER = "你的用户名" JENKINS_TOKEN = "你的密码/API令牌" JOB_NAME = "TEST-PIPELINE" JENKINSFILE_PATH = "./Jenkinsfile" # 本地修改后的Jenkinsfile路径 # 读取本地修改后的Jenkinsfile内容 with open(JENKINSFILE_PATH, "r", encoding="utf-8") as f: pipeline_script = f.read() # 连接Jenkins服务 server = jenkins.Jenkins(JENKINS_URL, username=JENKINS_USER, password=JENKINS_TOKEN) # 传递自定义脚本参数触发构建 server.build_job(JOB_NAME, parameters={ "CUSTOM_PIPELINE_SCRIPT": pipeline_script }) print("构建任务已触发成功")
如果你不想修改原任务的配置,也可以通过代码创建一个临时测试任务,运行完成后自动删除,避免影响原流水线。
方案2:curl 命令行实现(轻量无需依赖)
直接执行以下命令即可触发,把对应占位符替换成你自己的配置即可:
curl -X POST http://你的用户名:你的API令牌@你的Jenkins地址/job/TEST-PIPELINE/buildWithParameters \ --data-urlencode CUSTOM_PIPELINE_SCRIPT@./Jenkinsfile
注意事项
- 确保你的账号拥有
TEST-PIPELINE的构建权限、参数传递权限 - 如果Jenkins开启了CSRF保护,需要先获取crumb再请求,Python的
python-jenkins库会自动处理crumb,curl需要额外加-H "Jenkins-Crumb: 你的crumb值"参数 - 测试完成后如果不需要保留参数配置,可以改回原任务的Pipeline定义
内容的提问来源于stack exchange,提问作者zxy_snow
相关产品推荐
相关产品推荐

