jenkins移动端CI实战

一、背景

当前客户端的发版周期为每周一次,这对移动端的持续集成与交付提出更高的要求,需要快速搭建稳定可靠的持续集成与交付系统。

二、现状

双端打包机使用的都是连接公司局域网的实体主机,打包需要开发人员登录到打包机上,使用打包命令手动打包,需要经历打包、测试,如果 QA 同学反馈问题,则需要进行修复,然后再次经历打包、测试,直至测试通过,才能交付产品。如果存在多分支打包任务,则需要等待其他同学完成后才能使用打包机,过程十分漫长。

三、搭建CI环境

经过一系列的方案讨论后,我们决定在现有的基建基础上做些改进,来完成一系列的自动化体系。
1、将打包机与之前搭建的jenkins服务器打通,使用jenkins来完成打包工作
2、测试平台接入jenkins api,通过平台完成打包请求的发起动作
最后流程就是:
平台 --> jenkins --> 打包机执行任务 --> 打包完成 --> 发送通知
平台页面
在这里插入图片描述

jenkins页面
在这里插入图片描述
参数化构建所需插件
在这里插入图片描述

连接打包机

连通方式:
1、使用内网穿刺方式,将打包机局域网转发至公网,实现公网和局域网的相互访问
知乎教程:https://www.zhihu.com/question/50646943
cpolar官网:https://dashboard.cpolar.com/get-started
缺点:收费且限速,免费版ip会变更,而且不安全,适合个人玩家,不适合搭建公司级服务
2、使用gitlabci方式,通过gitrunner连接gitlab服务器和打包机,这种方式就不需要jenkins了
3、通过jenkins子节点连接,这里需要使用java-web方式来设置子节点连接方式,这里需要注意的一点是,jenkins的master节点要在公网服务器,打包机为局域网才可以使用

这里主要演示下第三种:
jenkins配置
在这里插入图片描述

jenkins build 脚本

#!/bin/bash -l

sh jenkins路径/checkGit.sh -g git@git.inframe.club:iOS/ZQMusic.git
cd jenkins工作区/ZQMusic
sh updateShell.sh
sh .zqsh/publish.sh -p $JOB_NAME -c Profile -d $BUILD_ID -i com.zhenqu.music -b xx_3.68_bugfix -n "xxxx(Dev_3.62)"

服务端调度代码

实现jenkins调度接口(含go、python两种实现代码实例)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值