jenkins持续集成从0入门到实战【七】分支构建和Webhook自动化构建

简介: 本篇给大家分享企业中比较实用的分支构建和自动化构建

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

按分支发布

在实际开发过程中,一般会使用Git Flow流程开发,多个迭代伴随着多个分支,比如develop、release、master等分支,所以存在发布同分支代码的情况。

image.png

选择指定分支发布,需要借助Git Parameter插件,也就是参数化构建中可选Git参数,插件安装如下:

image.png

image.png

image.png

image.png

保存后,点击构建,此时可以看到目前我们的代码只有一个master分支,就算你配置的默认值是develop,也不会显示出来。

image.png

image-20210213150614439.png

image.png

image.png

分支新建完成后,再次构建

image.png

修改test分支的返回代码,develop分支的不做改动,我们来看2个分支发布后的不同效果

image.png

image.png

先构建test分支,再构建develop分支,并在浏览器地址访问,查看不同分支的构建效果是否成功

image.png

image.png

上面我们介绍了按照分支发布,但是分支发布具有一定的局限性,是属于一个粗粒度较大的发布方式,所以在企业中更多的会选择Tag(标签)进行发布,Tag更具备追溯性,回滚控制会更加简单。

Tag一般用来做里程碑式的存档,比如阿里开源的Nacos框架,其中就有v1.1.0、v1.2.0

2种创建tag的方式(命令行、Git托管平台界面)

# 创建tag,并推送
$ git tag dev_20210221_01
$ git push origin --tags

image.png

image.png

注意:Tag不跟随分支,是独立在分支之外的,你在master打了一个名为A的tag,在develop分支打了一个名为B的tag,都叫tag,是存了当前代码的一份快照,但tag并不是挂靠在某一个分支。

image.png

image.png

Gitee中的标签列表

image.png

image.png

参数构建过程继续选择Git参数,并命名,参数类型选择标签

image.png

源码管理中指定参数名称

image.png

点击构建查看效果

image.png

构建后分别访问浏览器查看构建后效果

扩展:

  1. Git按照tag构建时企业中使用非常广泛的构建方式,同时由于Git天生具备快照功能,就算git打错,发布出错了也可以即时发布上一个Tag达到回滚的效果,这招非常强大,在以往我们使用SVN时,并未使用Tag的功能,而是将每个文件打好标签放在backup中,回滚时使用shell脚本将历史存档的jar包取回重启,这个操作虽然也能实现回滚,但很显然没有Git的标签功能强大。
  2. 参数化构建的配置页,高级选项也是非常不错的,如下图:

    image.png

    image.png

  3. have a good time

webhook自动构建

背景:在企业中,我们非常频繁的将代码推送到Git服务器上,如果要看到最新代码生效,需要手动去点击jenkins构建,这样的操作非常繁琐,但是jenkins提供了webhook自动构建的能力。

webhook:是指HTTP回调,GitHub、GitLab、Gitee、Codeup、Coding等各个平台都有提供有相应的回调机制,比如我push代码后,触发某一个回调,我merge代码后触发某一个回调。

各大平台的webhook如下:

image.png

image.png

image.png

  1. jenkins安装gitee插件,其他平台略有差异,但原理一样

    image.png

  2. 配置码云webhook对应push事件执行jenkins构建

    去除参数化构建,同时设置为构建指定分支

    image.png

    image.png

    由于触发构建需要外网回调支持,我们在本地演示没有公网IP或域名,此时需要借助内网穿透工具来实现,为了快速演示效果,这里我推荐使用钉钉穿透工具,使用步骤如下

    • 在安装jenkins的机器上下载工具

      # clone下载
      $ git clone --depth=1 https://github.com/open-dingtalk/pierced.git
      
      # 必须在外层目录授权
      $ chmod -R 777 pierced

      image.png

      # 运行如下命令 ,jungejenkins是你的二级域名前缀,越复杂越好
      ./ding -config=./ding.cfg -subdomain=jungejenkins 8777

      image.png

    • 如果你的jenkins部署在windows机器上,则使用CMD命令行进入目录运行即可

      # 使用cmd的方式进入该目录
      $ cd F:\install\pierced\windows_64
      
      # 运行如下命令 ,jungejenkins是你的二级域名前缀,越复杂越好
      ding -config=ding.cfg -subdomain=jungejenkins 8777

      image.png

    • 在浏览器上访问域名:http://jungejenkins.vaiwan.com,根据你的二级域名前缀来哦

      image.png

  3. 配置码云

    image.png

  4. 测试构建,3秒后你会看到jenkins已经触发了自动构建,但此时构建会出现失败的错误,如下:

    image.png

    该错误主要是由于gitee模拟的push测试参数问题导致,接下来我们手动进行修改代码推送测试

  5. 手动修改代码,并进行提交推送操作

    $ git clone http:xxx
    # 切换到develop分支,修改指定代码
    $ git add .
    $ git commit -m "push自动构建测试"
    $ git push
  6. 观察jenkins已经自动触发构建,并且构建成功,在浏览器访问查看效果,到此webhook自动构建完成

总结

本篇所讲的分支构建和自动化构建是企业中较为常见的构建方式,能覆盖大部分的发布常见

相关文章
|
2天前
|
jenkins Devops 机器人
【DevOps】(五)Jenkins构建给企业微信推送消息
【DevOps】(五)Jenkins构建给企业微信推送消息
10 1
|
3天前
|
敏捷开发 监控 jenkins
探索自动化测试在持续集成环境中的关键作用
【5月更文挑战第6天】 在快速迭代的软件开发周期中,持续集成(CI)已经成为确保代码质量和加速交付的重要实践。本文将深入探讨自动化测试作为持续集成不可或缺的组成部分,它如何通过减少人为错误、提高测试覆盖率和加快反馈周期来强化软件开发流程。通过对现代自动化测试工具的评估以及真实案例的分析,我们揭示了自动化测试在提升软件可靠性和效率方面的核心价值,并提出了实现高效自动化测试策略的最佳实践。
|
3天前
|
敏捷开发 数据管理 测试技术
探索自动化测试在持续集成环境中的优化策略
【5月更文挑战第6天】 本文旨在深入剖析自动化测试在持续集成(CI)环境中所面临的挑战,并提出一系列创新的优化策略。通过对现代软件开发过程中自动化测试角色的分析,我们揭示了在快速迭代和部署的背景下,如何通过改进测试框架、选择合适的测试工具、以及实施数据驱动测试等手段来提高测试效率和准确性。文章不仅聚焦于技术层面的解决方案,还探讨了团队协作和流程管理对提升自动化测试效能的重要性。
|
6天前
|
设计模式 人工智能 测试技术
深入探究持续集成中的自动化测试策略
【5月更文挑战第3天】 在现代软件开发实践中,持续集成(CI)已成为提高开发效率、确保代码质量和加速产品上市速度的关键因素。自动化测试作为CI流程的核心组成部分,它确保了快速的反馈循环和高质量的构建。本文将探讨在持续集成环境中实施高效自动化测试的策略,包括测试用例的优化、测试环境的管理、以及如何整合最新的测试工具和技术。通过具体案例分析,我们将了解如何构建一个既灵活又健壮的自动化测试系统,以支持不断变化的软件开发需求。
|
6天前
|
敏捷开发 监控 测试技术
探索自动化测试在持续集成中的关键作用
【5月更文挑战第3天】 随着敏捷开发和持续集成(CI)实践的普及,自动化测试已成为确保软件质量和加速交付过程的核心环节。本文旨在深入探讨自动化测试在持续集成环境中的作用,重点分析其在提高测试效率、降低人力成本及维护软件质量保障体系中的重要性。通过实际案例研究,本文揭示了有效实施自动化测试策略的关键因素,并提出了一系列优化建议,以帮助软件开发团队充分利用自动化测试工具,实现持续交付的高效运作。
31 6
|
9天前
|
敏捷开发 监控 测试技术
探索自动化测试工具Selenium Grid的高效集成策略
【4月更文挑战第30天】在现代Web应用的快速迭代和持续部署中,测试自动化已成为确保产品质量的关键。Selenium Grid作为一款支持多种浏览器和操作系统的测试工具,提供了并行执行测试用例的能力,极大地提升了测试效率。本文将深入探讨如何高效地将Selenium Grid集成到现有的测试框架中,以及实施过程中的最佳实践,帮助团队最大化测试覆盖率,同时降低资源消耗。
|
9天前
|
敏捷开发 运维 测试技术
构建高效自动化运维体系:基于容器技术的持续集成与持续部署实践
【4月更文挑战第30天】在数字化转型的浪潮中,企业对软件交付速度和质量的要求日益提高。自动化运维作为提升效率、确保稳定性的关键手段,其重要性不言而喻。本文将探讨如何利用容器技术构建一个高效的自动化运维体系,实现从代码提交到产品上线的持续集成(CI)与持续部署(CD)。通过分析现代容器技术与传统虚拟化的差异,阐述容器化带来的轻量化、快速部署及易于管理的优势,并结合实例讲解如何在实际环境中搭建起一套完善的CI/CD流程。
|
9天前
|
中间件 测试技术 API
探索自动化测试工具的新边界:Selenium与Appium的集成实践
【4月更文挑战第30天】 随着移动应用和Web应用的不断融合,传统的自动化测试工具需要适应新的测试环境。本文将详细分析Selenium和Appium这两款流行的自动化测试工具的集成实践,探讨如何构建一个能够同时支持Web和移动端应用的自动化测试框架。通过对比两者的技术架构、功能特性以及在实际项目中的集成过程,我们旨在为读者提供一个清晰的指导,帮助他们在复杂的应用环境中实现高效、稳定的自动化测试流程。
|
9天前
|
运维 Kubernetes 持续交付
构建高效自动化运维系统:基于容器技术的持续集成与持续部署实践
【4月更文挑战第30天】 在快速发展的云计算时代,传统的运维模式已无法满足敏捷开发和快速迭代的需求。本文将介绍如何利用容器技术搭建一套高效自动化运维系统,实现软件的持续集成(CI)与持续部署(CD)。文章首先探讨了现代运维面临的挑战,接着详细阐述了容器技术的核心组件和工作原理,最后通过实际案例展示了如何整合这些组件来构建一个可靠、可扩展的自动化运维平台。
|
12天前
|
前端开发 Java 应用服务中间件
从零手写实现 tomcat-08-tomcat 如何与 springboot 集成?
该文是一系列关于从零开始手写实现 Apache Tomcat 的教程概述。作者希望通过亲自动手实践理解 Tomcat 的核心机制。文章讨论了 Spring Boot 如何实现直接通过 `main` 方法启动,Spring 与 Tomcat 容器的集成方式,以及两者生命周期的同步原理。文中还提出了实现 Tomcat 的启发,强调在设计启动流程时确保资源的正确加载和初始化。最后提到了一个名为 mini-cat(嗅虎)的简易 Tomcat 实现项目,开源于 [GitHub](https://github.com/houbb/minicat)。

热门文章

最新文章

http://www.vxiaotou.com