码头工人利用WebHook实现持续集成

  

研发小伙伴可能对下列操作步骤会深有体会

  

写代码——》提交代码——》打包——》发布

  

在项目调试测试阶段,可能经常需要重复上面的步骤,以便将最新代码部署到特定环境供测试人员或其他人员使用

  

CI即持续集成的提出及各种解决方案,减轻了很多最初简单但繁琐的工作

  

本文将通过提交代码到git,然后通过webHook触发詹金斯打包并发布到相应容器中,开发人员只需提交代码,后续打包发布都自动实现

  

git:我使用的码云,,我的主页为:https://gitee.com/xiaochangwei

  

詹金斯:詹金斯版本。2.89.2

  

tomcat 8 jdk8 maven3.5

        [root@iZnz7e74o4ag3oZ webapps] # java - version   java版本“1.8.0_121”   Java (TM) SE运行时环境(构建1.8.0_121-b13)   Java HotSpot VM (TM) 64位服务器(构建25.121十三区最,混合模式)   [root@iZnz7e74o4ag3oZ webapps] # mvn - version   Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426;2017 - 04 - 04 - t03:39:06 +喂饲)   Maven:/usr/local/src/maven   Java版本:1.8.0_121,供应商:甲骨文公司   Java:/usr/local/src/jdk/jre   默认语言环境:en_US、平台编码:utf - 8   操作系统名称:“linux”,版本:“3.10.0-693.2.2.el7。x86_64“弓:“amd64 unix“,家庭:   [root@iZnz7e74o4ag3oZ webapps] #      

配置好环境后,在tomcat中运行詹金斯,并设置好用户名密码确保能正常登录使用

  

码头工人利用WebHook实现持续集成

  

  

1。安装插件,,通用Webhook引发插件,插件部署到容器,Git插件由于这里暂时未发布到码头工人中,通过插件部署到容器发布到tomcat中的

  

2。上传maven项目到https://gitee.com

  

3.詹金斯中新建项目ci

  

3.1配置提交的代码地址,添加有权限的用户名和密码(我的是私有项目),指定分支

  

码头工人利用WebHook实现持续集成

  

3.2:配置maven命令以及发布到tomcat的

  

码头工人利用WebHook实现持续集成

  

注意:发布项目的tomcat需要设置用户信息,即修改配置下的user.xml 具体可以参考我很早之前写的http://www.cnblogs.com/xiaochangwei/p/4952644.html

  

,,,,,,这样就可以手动构建项目了,请确保手动构建能成功后再进行下列操作

  

遇见的问题及解决方案:

  

如果构建时提示权限不对

  

生成公钥:ssh - keygen - t rsa 一直回车直结束

  

猫~/. ssh/id_rsa.pub ,将内容增加到码云上

  

码头工人利用WebHook实现持续集成

  

如果还提示没权限

  

手动先在詹金斯运行的机器上克隆一次代码,如git克隆git@gitee.com: xiaochangwei/ci-demo.git 注意输入是的

  

码头工人利用WebHook实现持续集成

  

然后再看。ssh目录,多了一个known_hosts里面有码云了,然后再手动构建,应该就能成功了

  

码头工人利用WebHook实现持续集成

  

至此,手动打包并部署就已经实现了

  

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -自动部署- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

  

1。安装上述插件后勾选通用Webhook触发增加文章参数ref 表达式值为$ .ref ,注意有个点

  

码头工人利用WebHook实现持续集成

  

增加可选的过滤器

  

码头工人利用WebHook实现持续集成

  

其实上面这部分不用设置也行,尤其是只会在詹金斯中部署一个项目的一个分支时,只需要勾选上通用Webhook触发就可以的

  

2。在码云中增加钩:http://USER ID: API TOKEN@jenkins部署的地址:端口号/jenkins/generic-webhook-trigger/调用(红色这部分不要变)

  

(这里不用api牌直接用詹金斯的登录密码也可以,api牌查看地址为:詹金斯——用户——点击用户名api令牌)

码头工人利用WebHook实现持续集成