写点什么

什么是持续集成?如何基于 Jenkins 进行持续集成?

作者:阿里云云效
  • 2022 年 3 月 24 日
  • 本文字数:2151 字

    阅读完需:约 7 分钟

什么是持续集成?如何基于Jenkins进行持续集成?

什么是持续集成?如何关联 Jenkins 进行持续集成?本文介绍如何使用云效 Codeup 代码库关联 Jenkins 进行持续集成。主要涉及内容包括关联代码源、配置触发器的过程。​

什么是持续集成?


持续集成/CI: 持续集成(英语:Continuous integration,缩写为 CI),一种软件工程流程,将所有工程师对于软件的工作复本,每天集成数次到共用主线(mainline)上。这个名称最早由葛来迪·布区(Grady Booch)在他的布区方法中提出,但是他并没有提到要每天集成数次。之后成为极限编程(extreme programming,缩写为 XP)的一部分。在测试驱动开发(TDD)的作法中,通常还会搭配自动单元测试。持续集成的提出,主要是为了解决软件进行系统集成时面临的各项问题,极限编程称这些问题为集成地狱(integration hell)。


ps:说明来自维基百科

Jenkins 插件安装


插件管理


点击①处「系统管理」,接着点击②处「插件管理」:



Git 源码管理


在③处「可选插件」中输入“Git plugin”找到代码源管理的插件并安装:



WebHook 插件


同理,在可选插件中搜索 “Generic Webhook Trigger Plugin”,并安装。



安装后需重启 Jenkins。

Jenkins 代码源配置

Step1:新建 Jenkins 任务


首先,新建期望的 Jenkins 任务,然后准备配置代码源。

Step2:进入任务配置页面



选择源码管理-Git:


Step3:源码管理配置


选择 Git,填入 Codeup 仓库地址,例如:https://codeup.aliyun.com/xxxx/Codeup-Demo.git

此时需要填写认证信息:



选择 Credentials,如果没有,需要新建:



这里需要填写的用户名和密码,就是 Codeup 代码仓库的克隆用户名和密码。获取位置如下图所示:



配置完成后如页面不再报错,则鉴权通过。

Step4:配置触发器


继续在设置页中找到「构建触发器」:



选择「Generic Webhook Trigger」:



配置获取 Codeup Webhook 的请求参数:



参数说明:

以 Codeup Push 事件为例,push webhook 请求 body 如下。


如上在 Variable 中填 ref,表示获取 post 请求 body 中 ref 字段,Expression 中填 $.ref 表示获取 body 中 ref 的 value 值。

{  "after": "f9e10a78d6ddd897e522aac418c60c742250ca50",  "before": "b509e74e75a56026b6650c7d902474d1eaa7b3a2",  "checkout_sha": "f9e10a78d6ddd897e522aac418c60c742250ca50",  "commits": [    {      "author": {        "email": "trest@aliyun.com",        "name": "testt"      },      "id": "f9e10a78d6ddd897e522aac418c60c742250ca50",      "message": "init\n",      "timestamp": "2021-08-31T18:03:33.000Z",      "url": "https://codeup.aliyun.com/612a21eaadb2703b38cd6d14/Codeup-Demo/commit/f9e10a78d6ddd897e522aac418c60c742250ca50"    }  ],  "object_kind": "push",  "project_id": 1179553,  "ref": "refs/heads/master",  "repository": {    "description": "进入示例代码库快速了解云效 Codeup 功能",    "git_http_url": "https://codeup.aliyun.com/612a21eaadb2703b38cd6d14/Codeup-Demo.git",    "git_ssh_url": "git@codeup.aliyun.com:612a21eaadb2703b38cd6d14/Codeup-Demo.git",    "homepage": "https://codeup.aliyun.com/612a21eaadb2703b38cd6d14/Codeup-Demo",    "name": "Codeup-Demo",    "url": "git@codeup.aliyun.com:612a21eaadb2703b38cd6d14/Codeup-Demo.git",    "visibility_level": 10  },  "total_commits_count": 1,  "user_email": "binxian.tbx@antfin.com",  "user_extern_uid": "5f969843cd2214ba0e24327d",  "user_id": 96867,  "user_name": "test"}
复制代码

Step5:配置 Token 值


这里 Token 项可选,支持用户自定义,用于接收方验证请求合法性,需要在 Codeup 的 Webhook 里按照以下格式设置触发的 URL :


http://jenkis地址/generic-webhook-trigger/invoke?token=(上诉生成的token)

如果此处不使用 Token 的形式,触发的 URL 需要如下格式设置 ,否则无法验证身份:http://user:passsword@jenkins/generic-webhook...

Step6:配置构建脚本


根据你的持续集成需求,配置对应 Jenkins 脚本。

Step7:保存


Codeup 侧配置 Webhook

Step1:配置 webhook

进入库设置-Webhooks:

Step2:创建 Webhook

填入上方 Jenkins 提供的 Hook URL + 自定义的 Token。


URL 设置:

http://jenkis地址/generic-webhook-trigger/invoke?token=(上面 Step5 中设置的 token值:XXXXXXX)



注意:此方式暂不支持 Secret Token 字段。


什么是持续集成?如何基于 Jenkins 进行持续集成?本文介绍如何使用 Codeup 代码库关联 Jenkins 进行持续集成。主要涉及内容包括关联代码源、配置触发器的过程。


云效流水线 Flow是一款企业级、自动化的研发交付流水线, 提供灵活易用的持续集成、持续验证、 持续发布功能,帮助企业高质量、高效率的交付业务。本文讲述如何使用 Codeup 代码库关联 Jenkins 进行持续集成。主要涉及内容包括关联代码源、配置触发器的过程。通过云效流水线 Flow 完成从开发到上线过程的持续交付。通过持续向团队提供及时反馈,让交付过程高效顺畅。


立即体验

关于我们


了解更多关于阿里云云效 DevOps 的最新动态,可微信搜索并关注【云效】公众号;


福利:公众号后台回复【指南】,可获得《阿里巴巴 DevOps 实践指南》&《10 倍研发效能提升案例集》;


看完觉得对您有所帮助别忘记点赞、收藏和关注呦;



发布于: 3 小时前阅读数: 8
用户头像

云效,云原生时代一站式BizDevOps平台 2021.11.05 加入

云效,云原生时代一站式BizDevOps平台,支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现 10 倍效能提升

评论

发布
暂无评论
什么是持续集成?如何基于Jenkins进行持续集成?_云计算_阿里云云效_InfoQ写作平台