搭建Jenkins,配合github实现CI/CD

背景:
        近几年CI/CD盛行,但具体是什么?怎么用?内心是模糊的。公司内部有现成的CI/CD平台,但个人想自己摸索了解一番,于是便开始了探索。

目的:

       本文的目的在于通过自己搭建Jenkins,实现CI/CD,从而加深对CI/CD的理解,便于日后运用于项目实践中。当前实现的效果时,编写完自动化脚本后,提交代码后,github hook触发jenkins构建,构建后执行脚本并发送邮件通知。



一、CI/CD是什么?(一个流程)

CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法。CI/CD 的核心概念是持续集成、持续交付和持续部署。作为一个面向开发和运营团队的解决方案,CI/CD 主要针对在集成新代码时所引发的问题(亦称:“集成地狱”)。

CI 持续集成(Continuous Integration)

CD 持续交付(Continuous Delivery)

CD 持续部署(Continuous Deployment)

简而言之,CI/CD就是一个流程,用于实现应用开发中的高度持续自动化和持续监控

用自己的话理解:CI/CD 就是开发童鞋合并各个模块的代码后,触发自动化测试,验证新版本是否可用。测试通过后,自动快速部署一个全新的可用的版本。本文仅仅是验证合并代码后,自动触发自动化测试,验证是否可用。具体如下图:

二、Jenkins是什么?

可以去jenkins官网学习。官网介绍:Jenkins是开发自动化服务的领袖,为项目提供了上百个支持构建、部署和自动化的插件

Jenkins介绍


1、Jenkins安装:

        注意:jenkins依赖java环境,目前要求是java 11以下

Jenkins下Java依赖

 1.1 JDK 11安装

            安装后命令行执行:java --version确认版本是否正确,如下图:


java 版本

1.2 Jenkins采用war形式安装


war 安装

 下载后,运行命令启动jenkins

java -jar jenkins.war

然后浏览器打开:localhost:8080 并根据向导设置密码。此时jenkins便已安装完成!


Jenkins 登陆界面

注意:若不记得jenkins安装目录,可通过以下命令找到jenkins.war,并启动jenkins

mdfind -name jenkins.war

java -jar jenkins.war

三、Jenkins实战

1、新建任务


新建任务


2、配置github


配置github源码地址

注意这里需要添加github的账号密码。


github账号密码配置


github分支配置

3、增加构建步骤,执行shell脚本:(这里是执行我们项目接口自动化的脚本)


增加执行shell步骤


填写执行命令


保存

保存后,第一个job就构建完成了!

点击立即构建,效果如图:


构建成功


构建日志

4、github hook配置

            上面是手动触发构建,要实现github提交代码触发构建,需要在github上配置hook,具体操作如下:


github上addwebhook


payload url

注意:这里的url不能是本地url(127.0.0.1或localhost这种),必须是公网地址哦。由于本人实在本地搭建怼jenkins且本人无服务器,为了实现这个功能,搜索了ngrok这个神器!!!

5、ngrok使用


ngork介绍

简而言之,就是将本地 Web 服务器暴露给 Internet!让外网可以访问到本地服务。使用也很简单,下载ngrok并解压到执行目录后,直接执行命令:

ngrok http 8080

效果如图:


ngrok启动

紧接着,github中webhook的playload url就可以填写这个ngrok的公网地址了哦


github webhook


github提交触发构建

截止到目前,github提交自动触发jenkins构建就已经完成了!!!

四、Jenkins邮件通知

            任务构建执行完后,想查看构建和执行情况怎么办?Jenkins 邮件通知来搞定!

1、下载邮件插件,路径:系统管理-》插件管理下,搜索E-mail notification,找到:Extended E-mail Notification 下载后重启jenkins

2、进行邮件通知配置,路径:系统管理-》全局配置下,找到Extended E-mail Notification。注意这里需要准确填写端口号,发送者邮箱以及密码。注意这里的密码不是邮箱的登陆密码哦,而是邮箱中的授权码,具体如图:


授权码


邮箱配置


设置默认收件人

如果任务中没有另外设置收件人,则使用系统设置的收件人

3、通过测试邮件发送接收,验证邮件配置是否正确。

邮件发送测试

4、添加构建后操作步骤

构建后操作


添加Recipient List

邮件通知配置


5、触发方式选择:Always(实际根据自身需要配置哈)

邮件触发方式选择

点击保存后,点击立即构建,查看控制台信息,可以看到已经在发送邮件了。


如果想要更丰富的邮件报告,可以研究下邮件模板哦!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354