我们在开发中最常碰到的问题是更新一句话的代码,要经历打包上传,重启服务。本着偷懒第一的原则,本文介绍Jenkins在win server 2016环境下实现推送release分支,即自动部署vue 以及node代码的功能。初学jenkins,仅仅实现简单的功能,大牛勿喷!
CI的介绍百度一大把,简单地说就是一条自动化流水线。
1.首先下载Jenkins Windows 安装包 https://jenkins.io/zh/download/
2.确保自己8080端口没有被占用
3.全部默认设置下一步,完成之后浏览器自动打开localhost:8080(若浏览器未弹出,手动打开即可)
4.复制密码登录系统之后他会让你选择安装推荐插件还是自定义选择插件安装
第一个坑来了,除非你在国外,在国内的话基本上是以失败告终的,很多包timeout。这时候就要用到镜像源了,网罗各大网站找到了Jenkins中文网的清华源(我也不知道准确是哪个的)
1)打开Jenkins安装目录,如果你没有设置的话默认是(C:\Program Files (x86)\Jenkins)。打开文件hudson.model.UpdateCenter.xml在<url></url>中填入:
https://cdn.jsdelivr.net/gh/jenkins-zh/update-center-mirror/tsinghua/current/update-center.json
2)保存
3)打开C:\Program Files (x86)\Jenkins\war\WEB-INF\update-center-rootCAs
4)新建文本文档 mirror-adapter.txt
5)填入文本
-----BEGIN CERTIFICATE-----
MIICcTCCAdoCCQD/jZ7AgrzJKTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJD
TjELMAkGA1UECAwCR0QxCzAJBgNVBAcMAlNaMQ4wDAYDVQQKDAV2aWhvbzEMMAoG
A1UECwwDZGV2MREwDwYDVQQDDAhkZW1vLmNvbTEjMCEGCSqGSIb3DQEJARYUYWRt
aW5AamVua2lucy16aC5jb20wHhcNMTkxMTA5MTA0MDA5WhcNMjIxMTA4MTA0MDA5
WjB9MQswCQYDVQQGEwJDTjELMAkGA1UECAwCR0QxCzAJBgNVBAcMAlNaMQ4wDAYD
VQQKDAV2aWhvbzEMMAoGA1UECwwDZGV2MREwDwYDVQQDDAhkZW1vLmNvbTEjMCEG
CSqGSIb3DQEJARYUYWRtaW5AamVua2lucy16aC5jb20wgZ8wDQYJKoZIhvcNAQEB
BQADgY0AMIGJAoGBAN+6jN8rCIjVkQ0Q7ZbJLk4IdcHor2WdskOQMhlbR0gOyb4g
RX+CorjDRjDm6mj2OohqlrtRxLGYxBnXFeQGU7wWjQHyfKDghtP51G/672lXFtzB
KXukHByHjtzrDxAutKTdolyBCuIDDGJmRk+LavIBY3/Lxh6f0ZQSeCSJYiyxAgMB
AAEwDQYJKoZIhvcNAQELBQADgYEAD92l26PoJcbl9GojK2L3pyOQjeeDm/vV9e3R
EgwGmoIQzlubM0mjxpCz1J73nesoAcuplTEps/46L7yoMjptCA3TU9FZAHNQ8dbz
a0vm4CF9841/FIk8tsLtwCT6ivkAi0lXGwhX0FK7FaAyU0nNeo/EPvDwzTim4XDK
9j1WGpE=
-----END CERTIFICATE-----
6)保存,更改后缀名为crt
7)在系统 - 服务里中重启Jenkins服务
5.接下来你就可以愉快的下载插件了,安装推荐或者自定义都可以。
6.进入Jenkins之后第一件事便是配置全局设置,比如配置JDK GIT Maven的安装路径啦,这里Jenkins还挺贴心的一点是他会提示配置是否正确
比如这样
如果你没有Git的配置项的话,说明你git插件没有装,去Manage Plugins点击第二个选项卡可用插件搜索Git安装重启即可,其他插件类似,我这里是node项目,所以我还得装一个nodejs,其实你不装也没事
7.新建一个item,选择第一项freestyle即可
8.配置Git源,也就是你的GIT服务器地址,账号密码,以及监控分支
这里有几个注意点,Credentials这里可以添加验证方式,可以选择SSH 或者username password,选择拉去分支,我这里是release分支,这里respository URL选择很有讲究,如果配合gitblit的话我建议你选http的,因为gitblit默认配置文件里的写法是针对http的,ssh的话要大改gitblit配置文件,并且这个地址一定要记下!!!下面配置git服务器时用得到。
9.配置触发器
我这里git服务器是gitblit搭建的,所以选择Pull SCM即可。其余的在Gitblit配置。
10.配置执行脚本
我这里有两个配置脚本一个是node的一个是vue的,由于node在windows上会存在运行之后不完成的问题,所以需要用到PM2管理器,这里有一个坑就是npm 之前一定要call不然会造成后面的命令不会执行,pm2 start之前一定要run compile编译,不然他运行的是旧版本的代码。
选择增加构建步骤 - excute Windows batch command ,执行windows批处理命令
node:
这里有一个坑就是由于Jenkins默认使用SYSTEM的环境变量的,所以一定要记得把node添加到system变量中,即在系统变量的path中添加C:\Users\Administrator\AppData\Roaming\npm,如果你是采用默认安装路径的话。不然会提示找不到命令,配置完记得重启!!!
vue:
这里有一个坑就是xcopy路径最后一定要加"\"表示复制文件夹,不然会报错,还有/y 一定要加,以防止手动确认
这里的vue需要配合nginx使用这里就不赘述了。
保存应用即可,Jenkins就配置完了
11.配置gitblit
gitblit 是一个轻量级的图形化git服务器。安装过程这里就不说了这里配合Jenkins需要进行的操作是打开gitblit安装目录 /data/groovy/,打开文件jenkins.groovy,编辑以下几项
新版本Jenkins需要干掉yourserver/jenkins后面的/jenkins,不然会报错403
最后需要形成的路径为
http://[Jenkins管理地址及端口号]/git/notifyCommit?url=[刚刚要记下的respository URL]
例:http://[email protected]:8080/r/test-proj.git
前面的@可以不加,如果你使用的respository URL是ssh://xxxxxx的话要在 def jenkinsUrl做相应的修改,这里有点java基础的应该都能看得懂
配置完成最好用postman测试下能不能访问的通
12.在gitblit 下仓库下
选择你的配置文件名,如jenkins.groovy就选jenkins
这里就全部配置完了!当你修改完代码之后推送至release分支,即可实现自动部署。