Jenkins

一、什么是Jenkins

Jenkins是开源的持续集成工具,使用java编写。Jenkins支持插件,社区繁荣。

Jenkins
使用Jenkins作为CI工具
Jenkins的主从架构

Master中有jobs、queue、executors;slave中有executors。

二、Jenkins的安装

三、Jenkins使用

1)选择‘new item’

2)输入item名称并选择类型,通常有freestyle或者pipeline,推荐pipeline

3)选择触发器,比如poll scm代表每一分钟去看一下代码库有没有代码提交,如果有就trigger。

此外还有webhook

4)使用脚本来定义stages,这也是Jenkins的特点:pipeline as code,把JenkinsFile用vcs工具管理起来。常用stage如:build、test、publish、deploy。

如果不确定怎么写,可以点击上图左下角的‘pipeline syntax’,可以从下拉列表中选择,通过交互方式进行设置,然后可以Jenkins可以自动生成script。如下所示

5)配置可视化

另外,Jenkins流水线蓝色表示成功,红色表示失败;晴天-乌云-下雨,表示构建失败频率。

6)Artifactory

比如JFrog,是包仓库,artifact就是制品(可重用组件)。通过mvn deploy把包放到artifactory。jenkins trigger的时候会有递增的版本号17、18等等,期望artifactory中的包也有对应的版本号。这一点可以通过jenkins脚本上下文变量实现。

四、其他

1)七步提交法:更新代码;本地编码;本地构建(使用mvn test);再次更新代码;本地构建;提交到代码仓库;CI上构建。

2)Ssh用于远程控制服务器,openssh用于windows上使用ssh。

3)多环境部署:staging环境一般翻译为预发布环境。

4)webhook:git push之后,Git如何通知Jenkins对应Job的工作区实时构建?答案就是:Git webhook机制发出请求,告知Jenkins服务器你要自动构建了。webhook与异步编程中"订阅-发布模型"非常类似,一端触发事件,一端监听执行。

Webhooks是用户自定义的HTTP回调;它们通常由事件触发,例如"push 代码到repo",或者"post 一个评论到博客"。当事件发生时,源网站可以发起一个HTTP请求到webhook配置的URL。

5)数据库增量部署:DB migration

6)zero downtime:蓝绿部署、滚动部署、灰度部署。

7)server provisioning:ansible

9)manual approval

五、Git flow分支策略

Git Flow 的分支结构很特别,按功能来说,可以分支为5种分支,从5 种分支的生命时间上,又可以分别归类为长期分支和暂时分支,或者更贴切描述为,主要分支和协助分支。

5.1 主要分支

在采用 Git Flow 工作流的项目中,代码的中央仓库会一直存在以下两个长期分支:Master和Develop。其中 origin/master 分支上的最新代码永远是版本发布状态。origin/develop 分支则是最新的开发进度。

当 develop 上的代码达到一个稳定的状态,可以发布版本的时候,develop上这些修改会以某种特别方式被合并到 master 分支上,然后标记上对应的版本标签。

5.2 协助分支

除了主要分支,Git Flow 的开发模式还需要一系列的协助分支,来帮助更好的功能的并行开发,简化功能开发和问题修复。协助分支分为以下几类:

1)Feature Branch:Feature 分支用来做分模块功能开发,建议命名为feature-xxx,模块完成之后,会合并到 develop 分支,然后删除。

2)Release Branch:Release 分支用来做版本发布的预发布分支,建议命名为 release-xxx。例如在软件 1.0.0 版本的功能全部开发完成,提交测试之后,从 develop 检出release-1.0.0 ,测试中出现的小问题,在 release 分支进行修改提交,测试完毕准备发布的时候,代码会合并到 master 和 develop,master 分支合并后会打上对应版本标签 v1.0.0, 合并后删除自己,这样做的好处是,在测试的时候,不影响下一个版本功能并行开发。

3)Hotfix Branch:Hotfix 分支是用来做线上的紧急 bug 修复的分支,建议命名为 hotfix-xxx。当线上某个版本出现了问题,将检出对应版本的代码,创建 Hotfix 分支,问题修复后,合并回 master 和 develop ,然后删除自己。这里注意,合并到 master 的时候,也要打上修复后的版本标签。

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