14 Jenkins持续集成流程之构建触发器

在上一篇文章中,我们探讨了持续集成(CI)的基本概念,以及它如何帮助开发团队快速发现和修复代码缺陷。现在,我们将进一步深入“构建触发器”的主题,了解如何设置和使用触发器来自动化构建流程。

什么是构建触发器?

在Jenkins中,构建触发器是用于定义何时以及如何启动构建的一组规则。它们可以是自动的,也可以是手动的,通常在以下情况下发挥作用:

  • 当代码提交到版本控制系统(如Git)时。
  • 按照设定的时间表定期构建。
  • 当某个其他构建成功完成时。

通过设置合适的构建触发器,团队可以确保在正确的时间运行构建,从而实现更加高效的开发流程。

常见的构建触发器

以下是一些常见的构建触发器,我们将逐一探讨:

1. SCM轮询

使用SCM轮询触发器可以让Jenkins定期检查源代码管理(SCM)系统(如Git或SVN)以确定是否有新的提交。如果有新提交,Jenkins将自动触发构建。

设置SCM轮询的步骤:

  • 在Jenkins中,选择要配置的项目。
  • 点击“配置”按钮。
  • 在构建触发器部分,选中“Poll SCM”。
  • 在“Schedule”字段中输入一个定时表达式,例如 H/5 * * * *,这表示每5分钟检查一次。
1
2
# 该行将每5分钟检查一次代码库
H/5 * * * *

2. GitHub Webhook

对于使用GitHub的项目,可以通过Webhook来触发构建。这种方法能够在有新的代码推送时立即触发构建,而无需定期轮询。

设置GitHub Webhook的步骤:

  • 在GitHub项目的设置页面中,选择“Webhooks”部分。
  • 点击“Add webhook”按钮。
  • 在“Payload URL”中填写Jenkins的Webhook地址,格式为 http://<JENKINS_URL>/github-webhook/
  • 选择application/json作为内容类型。
  • 选择“Let me select individual events.”,然后勾选“Push events”。
  • 保存Webhook。

配置完成后,每当有新的代码推送至GitHub时,Jenkins将自动接收事件并触发构建。

3. 定时构建

有时,我们可能希望在特定的时间自动构建。例如,我们希望每个工作日的晚上11点进行构建,以创建当天的构建版本。

设置定时构建的步骤:

  • 同样在“配置”页面中,找到“Build Triggers”部分。
  • 选中“Build periodically”选项。
  • 在文本框中输入定时表达式,例如 H 23 * * 1-5,表示每周一到五的23:00触发构建。
1
2
# 该行表示每个工作日晚上11点触发构建
H 23 * * 1-5

案例分析:利用SCM轮询与Webhook结合实现自动化构建

假设我们在一个开发项目中同时使用Jenkins和GitHub。我们决定同时使用SCM轮询和GitHub Webhook来确保我们能够快速捕捉到代码更改。

首先,我们为所有开发人员在本地环境中配置了GitHub的WebHook。在开发人员提交新代码到 main 分支时,Webhook确定性地触发了Jenkins构建。

1
2
3
4
5
6
7
8
9
10
{
"ref": "refs/heads/main",
"before": "0000000000000000000000000000000000000000",
"after": "12b56a890abe35cf15e85e55123bc56e301329fa",
"repository": {
"id": 12345678,
"name": "my-repo",
"url": "https://github.com/user/my-repo"
}
}

然而,开发团队外部的自动化测试脚本,无论何时在构建环境出错,都会将错误提交到代码库。为了确保每次部署稳定,我们设定了SCM轮询,每5分钟检查一次代码库。

代码示例

以下是一个示例脚本,演示如何在GitHub上的每次Push时触发的构建,同时支持SCM轮询:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
pipeline {
agent any

triggers {
pollSCM('H/5 * * * *') // 每五分钟轮询一次
githubPush() // GitHub推送触发
}

stages {
stage('Build') {
steps {
echo 'Building...'
// 这里可以添加构建步骤
}
}
stage('Test') {
steps {
echo 'Testing...'
// 这里可以添加测试步骤
}
}
}
}

结论

通过使用Jenkins的构建触发器,开发团队能够实现更加高效的持续集成流程。在未来的文章中,我们将进一步探讨如何分析构建结果,从而为进一步的开发决策提供依据。构建触发器的合适配置,不仅提高了代码质量,还为开发流程赋予了更多的弹性与自动化能力。

14 Jenkins持续集成流程之构建触发器

https://zglg.work/jenkins-ci-zero/14/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论