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

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

按分支发布

在实际开发过程中,一般会使用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自动构建完成

总结

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

目录
相关文章
|
12月前
|
云安全 人工智能 安全
Dify平台集成阿里云AI安全护栏,构建AI Runtime安全防线
阿里云 AI 安全护栏加入Dify平台,打造可信赖的 AI
4310 166
|
人工智能 自然语言处理 API
快速集成GPT-4o:下一代多模态AI实战指南
快速集成GPT-4o:下一代多模态AI实战指南
776 101
|
缓存 监控 安全
通义大模型与现有企业系统集成实战《CRM案例分析与安全最佳实践》
本文档详细介绍了基于通义大模型的CRM系统集成架构设计与优化实践。涵盖混合部署架构演进(新增向量缓存、双通道同步)、性能基准测试对比、客户意图分析模块、商机预测系统等核心功能实现。同时,深入探讨了安全防护体系、三级缓存架构、请求批处理优化及故障处理机制,并展示了实时客户画像生成和动态提示词工程。通过实施,显著提升客服响应速度(425%)、商机识别准确率(37%)及客户满意度(15%)。最后,规划了技术演进路线图,从单点集成迈向自主优化阶段,推动业务效率与价值持续增长。
728 8
|
缓存 监控 安全
电商API集成入门:从零开始搭建高效接口
在数字化电商时代,API集成成为企业提升效率、实现系统互联的关键。本文从零开始,逐步讲解如何搭建高效、可靠的电商API接口,适合初学者学习。内容涵盖API基础、认证安全、请求处理、性能优化等核心步骤,并提供Python代码示例与数学公式辅助理解。通过实践,读者可掌握构建优质电商API的技巧,提升用户体验与系统性能。
|
人工智能 Java API
Java与大模型集成实战:构建智能Java应用的新范式
随着大型语言模型(LLM)的API化,将其强大的自然语言处理能力集成到现有Java应用中已成为提升应用智能水平的关键路径。本文旨在为Java开发者提供一份实用的集成指南。我们将深入探讨如何使用Spring Boot 3框架,通过HTTP客户端与OpenAI GPT(或兼容API)进行高效、安全的交互。内容涵盖项目依赖配置、异步非阻塞的API调用、请求与响应的结构化处理、异常管理以及一些面向生产环境的最佳实践,并附带完整的代码示例,助您快速将AI能力融入Java生态。
1689 12
|
SQL 关系型数据库 Apache
从 Flink 到 Doris 的实时数据写入实践 —— 基于 Flink CDC 构建更实时高效的数据集成链路
本文将深入解析 Flink-Doris-Connector 三大典型场景中的设计与实现,并结合 Flink CDC 详细介绍了整库同步的解决方案,助力构建更加高效、稳定的实时数据处理体系。
4165 0
从 Flink 到 Doris 的实时数据写入实践 —— 基于 Flink CDC 构建更实时高效的数据集成链路
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
1963 1
|
供应链 监控 搜索推荐
35页PPT|零售行业自助数据分析方法论:指标体系构建平台集成、会员与商品精细化运营实践
在零售行业环境剧变的背景下,传统“人找货”模式正被“货找人”取代。消费者需求日益个性化,购买路径多元化,企业亟需构建统一的指标体系,借助BI平台实现数据驱动的精细化运营。本文从指标体系构建、平台集成到会员与商品运营实践,系统梳理零售经营分析的方法论,助力企业实现敏捷决策与业务闭环。
35页PPT|零售行业自助数据分析方法论:指标体系构建平台集成、会员与商品精细化运营实践
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
986 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
人工智能 自然语言处理 分布式计算
AI 驱动传统 Java 应用集成的关键技术与实战应用指南
本文探讨了如何将AI技术与传统Java应用集成,助力企业实现数字化转型。内容涵盖DJL、Deeplearning4j等主流AI框架选择,技术融合方案,模型部署策略,以及智能客服、财务审核、设备诊断等实战应用案例,全面解析Java系统如何通过AI实现智能化升级与效率提升。
993 0

热门文章

最新文章

推荐镜像

更多