Jenkins通过python脚本实现远程触发gitlab流水线

用到的python库

python-gitlab

1.安装gitlab库

pip install python-gitlab

在这里插入图片描述
2.编写python脚本

import gitlab
def process_pipeline(process_pipeline):
    if isinstance(process_pipeline,dict):
        git_url,git_access_token,project_id,git_ref,git_job_trigger = process_pipeline.values()
    else:
        raise Exception("传入的参数必须为字典")
    gl = gitlab.Gitlab(git_url,private_token=git_access_token)
    project = gl.projects.get(project_id)
    pipeline = project.trigger_pipeline(git_ref,git_job_trigger)
    pipeline_status = ""
    pipeline_ref = ""
    print("*" * 200)
    while pipeline.finished_at is None:
        pipeline.refresh()
        pipeline_status = pipeline.status
        pipeline_ref = pipeline.ref
    print("result:%s" %(pipeline))
    print("*" * 200)
    if pipeline_status == "success":
        print("当前gitlab pipeline状态为:%s,当前运行的分支为:%s" %(pipeline_status,pipeline_ref))
    elif pipeline_status == "failed":
        print("gitlab pipeline运行失败请检查,当前状态为:%s,当前运行的分支为:%s" %(pipeline_status,pipeline_ref))
    elif pipeline_status == "canceled":
        print("用户取消执行,当前状态为:%s,当前运行的分支为:%s" %(pipeline_status,pipeline_ref))
    else:
        print("非常见状态请检查,当前状态为 %s,当前运行的分支为:%s" %(pipeline_status,pipeline_ref))
process_pipeline(
    {
        'git_url': "https://gitlab.example.com",
        'git_access_token': "xxxx-xxxxxxxxxxx",
        'project_id': xxxxx,
        'git_ref': "test",
        'git_job_trigger': "xxxxxxxxxxx"
    }
)    

3.去到Jenkins中创建项目(需要在Jenkins服务器配置python环境及安装相关第三方库)
在这里插入图片描述
4.查看运行效果
在这里插入图片描述
5.本次试验是通过gitlab的cicd将镜像发布至阿里云ACK容器集群,可结合kubernetes接口获取pod更新镜像后的启动状态,确保pod完全启动后可通过apifox执行自动接口测试,从而实现 自动化发布及测试。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不爱吃肉@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值