Jenkins 完成自动构建与延续集成

* 写在前面的一段话:
          依据如今的事情须要,以及为了接下来新产品前后端间更高效的协同,我决议爬一下Jenkins的坑。本文经由过程git钩子+Jenkins完成了,当地git push代码,Jenkins会自动相应并拉取码云上最新的代码值服务器上,使得当地提交代码时,线上能够同步的更新代码,省去了手动更新服务器上代码的反复事情。

所需东西

  • 服务器本文用的是 CentOS 7.2 64位)
  • Jenkins
  • 码云(也可所以github、gitlab等)

Jenkins 是什么?能做什么?

Jenkins是一个开源软件项目,旨在供应一个开放易用的软件平台,使软件的延续集成变成能够。Jenkins是基于Java开辟的一种延续集成东西,用于监控延续反复的事情,功用包含:

1、延续的软件版本宣布/测试项目。

2、监控外部挪用实行的事情。

一、装置JDK

1、在装置Jenkins之前,须要先装置JDK及设置体系环境变量,由于Jenkins是基于JAVA的。

下载JDK8装置包并上传至服务器,在装置之前发起先搜检下是不是装置过JDK,由于Jenkins最新的2.x版本是基于JDK8的,经由过程下面敕令能够查询

# rpm -qa | grep java

假如有,会涌现已装置的JDK列表。实行下面敕令顺次卸载即可

# rpm -e --nodeps <列内外各项>

2、装置JDK8

# rpm -ivh <下载的装置包称号>

3、搜检JAVA版本

# java -version

4、设置环境变量

翻开设置文件

# vim /etc/profile  

按i键能够进入编辑形式,按pagedown翻到末了,增加上以下设置

export JAVA_HOME=<JDK装置的途径>
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

按Esc退出编辑形式,并输入下面敕令保留并强迫退出

:wq!

从新运用修改后的设置文件

# source /etc/profile

PS:能够打印出$PATH变量,检察是不是设置胜利

# echo $PATH

假如输出了相对应的途径则申明设置胜利,能够举行下一步了!

二、装置Jenkins

1、犹如装置JDK,先下载Jenkins的.war装置包并上传至服务器(也能够将Jenkins存储库增加到yum repos,并从这里装置Jenkins.概况可见 Jenkins文档 ),进入Jenkins包地点文件夹实行下面敕令启动Jenkins

# java -jar jenkins.war --httpPort=8090

启动后用浏览器翻开http://&lt;ip>:8090,暗码复制粘贴即可,然后根据提醒登录,并装置引荐的插件…
OK,至此,基本准备事情已完成,我们在服务器上装置了Jenkins并启动,然后举行了初始化设置。接下来我们就须要建立了一个新使命,最先设置我们须要的功用了。

思索下我的需求:当地push代码到码云,Jenkins自动拉取最新的代码。所以须要将当地、服务器与码云三者间关联起来

三、完成git钩子功用

1、在Jenkins插件治理里找到已装置插件,如图

《Jenkins 完成自动构建与延续集成》

搜检一下三个插件是不是装置,假如没有,请装置

  1. Git plugin
  2. Publish Over SSH
  3. Generic Webhook Trigger Plugin

2、装置好后重启Jenkins,接下来就是新建一个使命:

《Jenkins 完成自动构建与延续集成》

《Jenkins 完成自动构建与延续集成》

《Jenkins 完成自动构建与延续集成》

PS: 假如你的项目在拉取代码后须要别的操纵,诸如:装置依靠、打包等,可在构建、构建后操纵里设置,本文不再演示

3、设置码云的webhooks

《Jenkins 完成自动构建与延续集成》

增加 url花样为 http://&lt;User ID>:<API Token>@<Jenkins IP地点>:端口/generic-webhook-trigger/invoke

个中 userid 和 api token 在jenkins的体系治理-治理用户-admin-设置里

《Jenkins 完成自动构建与延续集成》

暗码就是jenkins上岸的暗码,填写完成保留,点击测试如图

《Jenkins 完成自动构建与延续集成》
涌现图示效果,而且Jenkins里显现构建胜利

《Jenkins 完成自动构建与延续集成》

那末申明git钩子已见效。你也能够当地push代码来测试一下!

来看看jenkins拉取的代码吧,在jenkins workspace里能够找到

《Jenkins 完成自动构建与延续集成》

四、终究目标

那末题目来了,我认为如许就Everything has been done,翻开后居然是这个模样

《Jenkins 完成自动构建与延续集成》

想一想我最初的目标,自动化的流程是完成了,然则及时同步线上预览挂掉了,这可真的是不可不能够不能够的,我决议出去看看表面的天下找找灵感(答案),果真被我找到了

《Jenkins 完成自动构建与延续集成》

要领一:在jenkins敕令行剧本输入

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

《Jenkins 完成自动构建与延续集成》

要领二:在启动时指定参数

《Jenkins 完成自动构建与延续集成》

# java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war --httpPorrt=8090

运转,假如照样报错 记得清下浏览器缓存

至此,done!

五、总结下

Jenkins 功用非常壮大,在如今前端项目工程化的背景下,能够替开辟和测试职员做许多反复性的事情,本次基于Jenkins做的只是一个销运用场景下的demo,在公司新产品开辟时也能够基于此举行更多功用的完美!

    原文作者:CharHo
    原文地址: https://segmentfault.com/a/1190000015949934
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞