36 | 快速构建持续交付系统(三):Jenkins 解决集成打包问题
王潇俊
该思维导图由 AI 生成,仅供参考
在上一篇文章中, 我和你一起利用开源代码平台 GitLab 和代码静态检查平台 SonarQube 实现了代码管理平台的需求。那么,我今天这篇文章的目的,就是和你一起动手基于 Jenkins 搭建集成与编译相关的系统。
Jenkins 的安装与配置
Jenkins 这个开源项目,提供的是一种易于使用的持续集成系统,将开发者从繁杂的集成工作中解脱了出来,使得他们可以专注于更重要的业务逻辑实现。同时,Jenkins 还能实时监控集成环境中存在的错误,提供详细的日志文件和提醒功能,并以图表的形式形象地展示项目构建的趋势和稳定性。
因此,在携程,我们选择 Jenkins 作为了代码构建平台。而为了用户体验的一致性,以及交付的标准化,携程针对 Java、.net 等用到的主要语言,为开发人员封装了对于 Jenkins 的所有操作,并在自研的持续交付平台中实现了整个持续交付的工作流。
而如果是第一次搭建持续交付系统,我建议你不用像携程这样进行二次开发,因为 Jenkins 本身就可以在持续交付的构建、测试、发布流程中发挥很大的作用,完全可以满足你的搭建需求。而且,它提供的 Pipeline 功能,也可以很好地驱动整个交付过程。
所以,在这篇文章中,我就以 Jenkins 为载体,和你分享如何搭建集成与编译系统。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了如何使用Jenkins解决集成和编译问题,包括Jenkins的安装和配置过程、配置Jenkins对GitLab的访问权限、以及使用Jenkins Pipeline构建工作流。重点讨论了Jenkins Pipeline的特点和优势,以及如何通过Jenkins实现持续集成和自动化编译。此外,还涉及了多语言平台构建问题、多语言CI流水线管理、Jenkins Pipeline的管理以及多平台构建产物管理等相关内容。作者分享了解决这些问题的方法和实践经验,为读者提供了一套完整的持续交付系统搭建方案。建议读者按照文章提供的方法自行尝试搭建,如有问题可与作者讨论。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《持续交付 36 讲》,新⼈⾸单¥59
《持续交付 36 讲》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(13)
- 最新
- 精选
- knightray请教一个问题。在Jenkins Pipeline的实践中,每次Merge Request都会触发一次构建,开发团队在bug修改中会频繁提交代码,比如一个20多个开发团队一天可能要提交50多次代码。如果每次提交都会触发自动构建,是否意味着每次都会自动部署到测试环境,那这样过于频繁的自动部署不是会干扰到测试同学的测试吗?请指教,谢谢。
作者回复: 这个问题还是要回到本源的代码分支上来说,master是用来合并发布测试的,feature分支是功能开发和测试的,完全可以先功能发布测试,再master集成测试.这样master的部署就减少了,也稳定.也是为什么会有fat和uat两套环境的原因
2018-10-065 - Mr.Difference这才是干活。可惜结束了。
作者回复: 其实我倒不这么认为,绝大部分内容在官方文档都有,而且更详细。搭建系统应该说是最不困难的事 反而是完成搭建基本工具后,真正去深入了,就会碰到之前文章的内容,届时,希望你能再往前翻翻,寻找合适的答案:)
2018-09-2534 - 骨汤鸡蛋面老师,我们这边使用jenkins pipeline 串联了拉代码、maven编译、制作镜像、触发k8s调度等,但带来的问题是,发布高峰期jenkins 拥堵,若是采用容器化的方式将jenkins 容器化,又会带来拉取maven缓存、及缓存不一致的问题。所以一直有冲动使用google jib 等方式,将代码到镜像一步到位,您怎么看?
作者回复: 可以参考专栏里,构建加速那篇,有讲到这个问题的
2018-10-302 - 铭熙Jenkins master的ha,走sharding的话用什么策略呢?按部门?按应用类型?求详细的方案,谢谢。
作者回复: 都可以的,注意避免热点就可以了
2018-09-261 - 铭熙Jenkins高可用有什么好的方案?
作者回复: Jenkins本身就是master slave架构,只要保证master的ha就可以了,比较简单,sharding,热备都可以,携程是docker+sharding,master可以有多个,slave是按需拉起实例
2018-09-261 - 帅气小黑统一版本号这块有啥好的方案啊?
作者回复: 我们是在平台上产生的版本号,由平台控制
2018-11-282 - 戴斌我们现在通过kubernetes插件把jenkins的主从都放到k8s中了,性能提高了很多。在考虑jenkins master多节点的场景,Master之间有共享存储,但是其他的状态怎么同步了?2020-03-251
- 长歌老师,merge request事件checkout源分支是怎么做到的,基于branchName配置不是只能指定规则内的分支么,build时会构建所有符合规则的分支,而不是提交merge request请求的分支?2018-10-121
- 追风筝的文鱼请教一个问题。 用gitlab runner和用Jenkins做cicd,各自有什么优缺点呢?如何取舍?2023-06-23归属地:安徽
- woods请问Android和IOS的打包,除了用Mac机器还有其他方式吗? 需要打包的项目有很多,而打包机只有一个。2020-08-20
收起评论