前言
在持续集成(CI)的实践中,构建触发器是自动化流程中不可或缺的一环。它决定了何时启动构建过程,从而确保代码变更能够及时地得到验证和反馈。Jenkins,作为业界领先的CI/CD工具,提供了多种构建触发器选项,以满足不同项目和团队的需求。本章节“持续集成06--Jenkins构建触发器”将深入探讨Jenkins中可用的构建触发器类型,包括定时触发器、代码变更触发器(如Git/SVN推送触发器)以及手动触发器等。通过本章节的学习,将能够根据实际项目需求,灵活配置Jenkins的构建触发器,实现自动化构建的智能化和高效化。
Jenkins构建触发器是指定义在Jenkins项目中,用于在满足特定条件时自动触发构建过程的机制。这些触发器可以根据时间、事件或其他条件来触发构建,从而自动化持续集成/持续交付(CI/CD)流程。除了手动构建外我们常用的触发模式有三种:其他项目代码更新时触发构建、定时触发构建、自动化测试代码更新时触发构建
1、其他项目更新时触发构建
当指定的其他Jenkins项目构建完成后,触发当前项目的构建。在构建链中,确保依赖的项目先构建完成,比如当开发构建代码的时候,接口自动化自动去进行运行。
勾选其他项目构建后构建,关注项目填写其他项目名,根据具体需求选择下面的触发条件
2、定时触发构建
按照预定的时间表定期执行构建任务。执行周期性的构建任务,如每日构建、每小时构建等。根据用法不难看出使用规则,我们只需要设定好执行时间,程序便会按照设定执行, 如:
每15分钟构建一次:H/15 * * * *` 或 */15 * * * *
每天8点构建一次:H 8 * * *`或`0 8 * * *
每天8点~17点,两小时构建一次:H 8-17/2 * * *
周一到周五,8点~17点,两小时构建一次:H 8-17/2 * * 1-5
每月1号、15号各构建一次,除12月:H H 1,15 1-11 *
3、代码更新时触发构建
当自动化测试代码有更新,自动进行构建jenkins项目;此方法较为特殊,我们的jenkins一般部署在公司内网,如果我们代码仓库在外网,那么当代码在Gitee远程仓库更新后,公司内网不允许外网远程仓库访问,所以不在同一网络(内网)下是无法进行更新后的触发。此时便需要我们部署本地代码仓库,这里引用的是Gogs(Gogs是一个用Go语言编写的轻量级、易于安装和管理的Git服务软件。它提供了一个简单而有效的解决方案,特别适合个人开发者或小型团队快速搭建Git服务)。具体安装、配置、使用,详见上篇文章:持续集成05--Gogs的安装与使用-CSDN博客
3.1、Jenkins拉取Gogs仓库代码
3.1.1、Jenkins配置Gogs
Jenkins进入项目--配置--源码管理,将原本的Gitee仓库地址修改为Gogs仓库地址;添加Gogs账号的凭据
3.1.2、Jenkins添加Webhook
前提:Jenkins需要安装Generic Webhook Trigger插件
根据我们安装的Generic Webhook Trigger插件进行配置,进入项目配置页--构建触发器--勾选Generic Webhook Trigger--token输入token,保存修改,记住webhook链接 http://JENKINS_URL/generic-webhook-trigger/invoke?token=jenkins_token
3.1.3、Gogs配置Webhook
添加webhook前需要先设置Gogs配置,进入服务器输入命令,修改app.ini文件,修改后保存退出,然后重启gogs
vim /usr/local/gogs/custom/conf/app.ini
# 添加内容(IP是自己服务器的地址):
LOCAL_NETWORK_ALLOWLIST = 192.168.235.133
进入Gogs页面--仓库设置--管理web钩子,输入Jenkins配置的webhook,注意Jenkins_url需要替换为Jenkins的ip+端口
3.1.4、验证更新构建
可以现在gogs中测试推送,点击推送记录可以查看推送日志信息
然后更新我们的Gogs代码内容,查看jenkins构建情况;实现代码更新,自动触发构建
总结
在本章节“持续集成06--Jenkins构建触发器”的学习中,我们深入了解了Jenkins提供的多种构建触发器类型及其配置方法。这些触发器类型包括定时触发器、代码变更触发器、手动触发器等,它们各自具有不同的适用场景和优势。通过合理选择和配置这些触发器,我们可以实现自动化构建的智能化和高效化,确保代码变更得到及时验证和反馈。现在,我们已经掌握了Jenkins构建触发器的配置技巧,可以将其应用到实际项目中,提升团队的CI/CD流程效率和质量。