python调用jenkins

目录

1下载python包

2使用

1、初始化

2、构建项目

3、参数化构建项目

4、停止一个正在运行的项目

5、激活项目状态为可构建

6、变更项目状态为不可构建

7、删除项目

8、获取项目当前构建的最后一次编号

9、通过构建编号获取任务状态

10、获取项目控制台日志

11、获取项目测试报告

3封装 


1下载python包

pip install python-jenkins

2使用

1、初始化

jk = jenkins.Jenkins(url='Jenkins地址', username='用户名', password='授权令牌')

2、构建项目

jk.build_job(name='构建的job名称')

3、参数化构建项目

jk.build_job(name='构建的job名称', parameters='构建的参数,字典类型')

4、停止一个正在运行的项目

jk.stop_build('job名称', '构建编号ID')

5、激活项目状态为可构建

jk.enable_job('job名称')

6、变更项目状态为不可构建

jk.disable_job('job名称')

7、删除项目

jk.delete_job('job名称')

8、获取项目当前构建的最后一次编号

last_build_number = jk.get_job_info('job名称')['lastBuild']['number']

9、通过构建编号获取任务状态

status = jk.get_build_info('job名称', last_build_number)['result']
状态有4种:SUCCESS|FAILURE|ABORTED|pending

10、获取项目控制台日志

result = jk.get_build_console_output(name='job名称', number=last_build_number)

11、获取项目测试报告

result = jk.get_build_test_report(name='job名称', number=last_build_number)

3封装 

# -*- coding:utf-8 -*-
import time
import jenkins

# jenkins地址
jenkins_server_url = 'http://127.0.0.1:8081/'
# 登陆jenkins的用户名
user_id = '####'
# 登陆jenkins后,在用户名>设置>API Token,下可以生成一个token
api_token = 'm###'


class jenkins_job_build(object):
    def __init__(self):
        # 初始化jenkins对象,连接远程的jenkins master server
        self.server = jenkins.Jenkins(jenkins_server_url, username=user_id, password=api_token)

    # 启动任务
    def build_jenkins_job(self, job_name, parameters=None):
        item_number = self.server.build_job(job_name, parameters=parameters)
        # print(item_number)
        return item_number  # 返回的是启动任务列队号,不是构建号,下面这个方法才是获取构建编号

    # 获取启动任务对应的构建编号
    def build_number(self, item_number):
        while True:
            time.sleep(1)
            build_info = self.server.get_queue_item(int(item_number))
            print('build',build_info)
            if 'executable' in build_info:
                build_number = build_info['executable']["number"]
                return build_number

    # 获取jenkins任务最后次构建号
    def get_job_lastBuild_number(self, job_name):
        lastBuild_number = self.server.get_job_info(job_name)['lastBuild']['number']
        return lastBuild_number

    # 判断任务是否构建完成,正在构建返回的是True
    def job_is_building(self, job_name, build_number):
        is_building = self.server.get_build_info(job_name, build_number)['building']
        return is_building

    # 获取构建完成后的结果
    def get_job_build_status(self, job_name, build_number):
        job_status = self.server.get_build_info(job_name, build_number)['result']
        return job_status

    # 获取所有正在构建中的jenkins任务
    def get_all_building_jobs(self):
        building_jobs = self.server.get_running_builds()
        return building_jobs

    # 获取所有jenkins任务
    def get_all_jobs(self):
        jobs = self.server.get_jobs()
        return jobs

    # 获取jenkins构建时控制台输出的日志
    def get_build_job_log(self, job_name, job_number):
        return self.server.get_build_console_output(job_name, job_number)


example_jenkins = jenkins_job_build()
# # 启动任务
# begin = example_jenkins.build_jenkins_job("自动化测试")
# print(begin)
# 获取启动任务对应的构建编号
# buld_number = example_jenkins.build_number(11)
# print(buld_number)
# 获取jenkins任务最后次构建号
# num = example_jenkins.get_job_lastBuild_number("自动化测试")
# print(num)
# # 判断任务是否构建完成,正在构建返回的是True
# result1 = example_jenkins.job_is_building("自动化测试",num)
# print(result1)
# # 获取构建完成后的结果
# result = example_jenkins.get_job_build_status("自动化测试",num)
# print(result)
# # 获取所有jenkins任务
# all_task = example_jenkins.get_all_jobs()
# print(all_task)
# # 获取jenkins构建时控制台输出的日志
# console = example_jenkins.get_build_job_log("自动化测试",num)
# print(console)

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jenkins是一个开源的持续集成和交付工具,可以用于构建、测试和部署软件项目。Jenkins Pipeline是Jenkins中一种用于定义、管理和执行持续集成流水线的插件。在Jenkins Pipeline中调用Python可以通过以下步骤实现。 首先,需要在Jenkins服务器上安装Python解释器。可以通过在终端或命令提示符中运行“python --version”命令来检查Python是否已安装。如果未安装,需要按照Python官方网站提供的步骤进行安装。 其次,在Jenkins中创建一个新的Pipeline项目。在项目配置中,选择“Pipeline script”选项,并在编辑栏中编写Pipeline脚本。 在Pipeline脚本中,需要使用“node”关键字指定Jenkins节点来运行Python脚本。可以选择在master节点还是在其他节点上运行脚本。示例如下: ``` pipeline { agent any stages { stage('Run Python script') { steps { node('master') { // 在master节点上运行Python脚本 sh 'python path/to/your/python/script.py' } } } } } ``` 在这个例子中,Pipeline脚本中的stage定义了一个阶段,步骤中的node('master')表示Python脚本将在master节点上运行,sh 'python path/to/your/python/script.py'则是调用Python解释器执行具体的Python脚本。 最后,保存并触发Pipeline项目。当Jenkins检测到项目变化时,将自动执行Pipeline脚本,并调用Python解释器运行相应的Python脚本。 通过上述步骤,我们可以在Jenkins Pipeline中成功调用Python,并实现我们的持续集成和交付需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值