持续交付 36 讲
王潇俊
携程系统研发部总监
39682 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
开篇词 (1讲)
结束语 (1讲)
持续交付 36 讲
15
15
1.0x
00:00/00:00
登录|注册

36 | 快速构建持续交付系统(三):Jenkins 解决集成打包问题

总结与实践
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
立即购买
登录 后留言

全部留言(13)

  • 最新
  • 精选
  • knightray
    请教一个问题。在Jenkins Pipeline的实践中,每次Merge Request都会触发一次构建,开发团队在bug修改中会频繁提交代码,比如一个20多个开发团队一天可能要提交50多次代码。如果每次提交都会触发自动构建,是否意味着每次都会自动部署到测试环境,那这样过于频繁的自动部署不是会干扰到测试同学的测试吗?请指教,谢谢。

    作者回复: 这个问题还是要回到本源的代码分支上来说,master是用来合并发布测试的,feature分支是功能开发和测试的,完全可以先功能发布测试,再master集成测试.这样master的部署就减少了,也稳定.也是为什么会有fat和uat两套环境的原因

    2018-10-06
    5
  • Mr.Difference
    这才是干活。可惜结束了。

    作者回复: 其实我倒不这么认为,绝大部分内容在官方文档都有,而且更详细。搭建系统应该说是最不困难的事 反而是完成搭建基本工具后,真正去深入了,就会碰到之前文章的内容,届时,希望你能再往前翻翻,寻找合适的答案:)

    2018-09-25
    3
    4
  • 骨汤鸡蛋面
    老师,我们这边使用jenkins pipeline 串联了拉代码、maven编译、制作镜像、触发k8s调度等,但带来的问题是,发布高峰期jenkins 拥堵,若是采用容器化的方式将jenkins 容器化,又会带来拉取maven缓存、及缓存不一致的问题。所以一直有冲动使用google jib 等方式,将代码到镜像一步到位,您怎么看?

    作者回复: 可以参考专栏里,构建加速那篇,有讲到这个问题的

    2018-10-30
    2
  • 铭熙
    Jenkins master的ha,走sharding的话用什么策略呢?按部门?按应用类型?求详细的方案,谢谢。

    作者回复: 都可以的,注意避免热点就可以了

    2018-09-26
    1
  • 铭熙
    Jenkins高可用有什么好的方案?

    作者回复: Jenkins本身就是master slave架构,只要保证master的ha就可以了,比较简单,sharding,热备都可以,携程是docker+sharding,master可以有多个,slave是按需拉起实例

    2018-09-26
    1
  • 帅气小黑
    统一版本号这块有啥好的方案啊?

    作者回复: 我们是在平台上产生的版本号,由平台控制

    2018-11-28
    2
  • 戴斌
    我们现在通过kubernetes插件把jenkins的主从都放到k8s中了,性能提高了很多。在考虑jenkins master多节点的场景,Master之间有共享存储,但是其他的状态怎么同步了?
    2020-03-25
    1
  • 长歌
    老师,merge request事件checkout源分支是怎么做到的,基于branchName配置不是只能指定规则内的分支么,build时会构建所有符合规则的分支,而不是提交merge request请求的分支?
    2018-10-12
    1
  • 追风筝的文鱼
    请教一个问题。 用gitlab runner和用Jenkins做cicd,各自有什么优缺点呢?如何取舍?
    2023-06-23归属地:安徽
  • woods
    请问Android和IOS的打包,除了用Mac机器还有其他方式吗? 需要打包的项目有很多,而打包机只有一个。
    2020-08-20
收起评论
显示
设置
留言
13
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部