利用Jenkins部署多分支的CI/CD管道


简介

Jenkins最初被称为Hudson,是由Kohsuke Kawaguchi编写的一个Java开源项目(部署和运行需要安装Java 8以上环境)。作为一个CI持续集成服务器,Jenkins可以从版本控制系统(VCS)自动拉取最新的代码,构建和进行测试,并将过程信息通知到开发人员。但实际上,Jenkins所提供的CI管道并不限于单一版本的实现。多分支管道可以让用户利用Jenkinsfile,在SCM源码库中,自动为每个代码分支创建一个独立管道。

Jenkinsfile是什么?

Jenkins的CI管道支持采用Jenkinsfile的文本文件定义,Jenkinsfile文件的内容是采用DSL(特定于域语言)编写的。用户可以将管道内所需运行的步骤写到文件内,最终以内容即代码的方式部署管道。

Jenkins的多分支管道定义

多分支管道让用户能够为同一项目的不同分支定义不同的Jenkinsfile。在一个多分支管道项目中,Jenkins能够自动发现、管理和执行包含源码级控制的分支管道。
111.jpg

架构图

创建一个简单多分支管道项目的步骤

1、在Jenkins的左上角点击“New Item”;
22.jpg

仪表板-New Item按钮

2、在“ Enter an item name field”字段中输入项目名称,向下滚动,然后选择“Multibranch Pipeline”并单击“OK”按钮;
33.jpg

多分支管道

3、加上描述(可选项);

4、填上代码分支源码库的类型(例如GitHub)并填入源码库的URL地址;

5、选择“Add”按钮添加凭证,并选中Jenkins;

6、录入 GitHub 用户名、密码、ID和描述;

7、在凭证栏选择下拉按钮,添加访问凭证;
44.jpg

分支源码库

8、点击“Save”按钮,保持这个多分支项目;

9、Jenkins将自动扫描指定的源码库,并为组织文件夹建立索引。组织文件夹意味着让Jenkins可以监视整个GitHub组织或Bitbucket团队及项目,并为包含分支的源码库自动创建新的多分支管道,并弹出拉取Jenkinsfile的请求。
55.jpg

扫描源码库的日志

10、目前Jenkins的自动扫描源码库功能只支持GitHubBitbucket类型的源码库,功能是由GitHub的组织文件夹和Bitbucket代码分支插件实现的;

11、作业一旦创建,就会自动生成触发器。
66.jpg

生成触发器

配置Webhook

12、为了让Jenkins服务器与GitHub保持通信,因此需要取得Jenkins服务器的URL hook挂钩;

13、前往” Manage Jenkins”,选择“Configure System”视图;

14、找到GitHub插件配置区域,选择“Advance”按钮;

15、选择“Specify another hook URL for GitHub configuration”
77.jpg

Webhook

16、反选并复制文本框中的内容;

17、点击“Save”,重定向到Jenkins仪表板;

18、浏览器进入GitHub页面,并选择“GitHub”库;

19、点击“Settings”按钮,导航到源码库设置;
88.jpg

设置页面
20、找到Webhook区域;

21、点击“Add Webhook”按钮,在“Payload URL”中,黏贴前面复制的 URL挂勾地址;

22、确保webhook触发器为选项为“Just the push event“;
99.jpg

添加 webhook

23、点击“Add Webhook”按钮。这动作将为源码库添加所配置的webhook。

24、一旦正确地添加了webhook,你就可以看到带勾的webhook;
1010.jpg

添加 webhook

25、回到源码库,修改分支内容或更新任意文件。在本案例中,我们更新了README.md文件;

26、随后,将看到自动触发的Jenkins任务;
1111.jpg

CI任务触发

27、等待管道执行完毕,可在“Build History”中,通过构建流水号查看构建执行的历史记录;

28、单击“build number”并选择“Console Output”。就可以看到每个CI步骤的输出。
1212.jpg

Console Output

原文链接:Implement CI/CD for Multibranch Pipeline in Jenkins(翻译:易理林)

0 个评论

要回复文章请先登录注册