过程中遇到的一些问题,记录下来,希望能帮到一些有需要的人
Jenkins官网下载地址(相关安装这里我就不做任何阐述了,网上有很多相关文章)
Jenkins+ Gitblit部署前端项目Vue自动化部署遇到的问题
首先进入插件管理安装nodejs 和gitblit插件
配置在系统全局设置配置nodejs
这里可以配置多个nodejs,可以下来进行选择
首先,在GitBlit创建一个仓库并且提交相关代码
git提交相关操作这里就不做说明了
1.设置源代码管理
这里遇到的第一个问题(仓库名称不能为中文)
如果是中文git拉取代码的时候会提示以下错误
解决方式把仓库名称改为英文
当jenkins不提示有问题时,就说明验证就通过了
2.配置构建触发器(我这里主要是用Poll SCM 定时轮询获取gitbilit代码进行构建和钩子post-commit进行构建)
Poll SCM 定时轮询
首先格式为:* * * * *(五个星);
第一个*表示分钟,取值0~59
第二个*表示小时,取值0~23
第三个*表示一个月的第几天,取值1~31
第四个*表示第几月,取值1~12
第五个*表示一周中的第几天,取值0~7,其中0和7代表的都是周日
使用举例:
每隔10分钟构建一次:H/5 * * * *
每隔1小时构建一次: H H/1 * * *
每月30号构建一次: H H 30 * *
然后继续配置构建环境,这里nodejs 我选择的是默认,我默认前面全局配置的nodejs
最后配置构建步骤
首先创建一个IIS站点,我这里站点访问的文件路径为E:\IISFile\TestTest
然后依次使用Execute Windows batch command
cd C:\ProgramData\Jenkins\.jenkins\workspace\Test //进入到项目目录
npm config set registry https://registry.npm.taobao.org //设置npm 淘宝镜像
npm config get registry //检测镜像是否设置成功
npm install //执行初始化
npm run build //执行构建发布
XCOPY "C:\ProgramData\Jenkins\.jenkins\workspace\Test是\dist" /E/Y "E:\IISFile\TestTest" //拷贝文件
然后保存
最后手动按点击现在构建
然后进入到控制台查看构建情况
如果没有提示出错则表示构建成功
访问IIS站点是否正常
钩子post-commit后触发构建
jenkins 源码构建器设置
只要勾选 SCM 就可以了不用加定时器,其他的设置和上面一致
首先进入gitblit服务器
找到data\groovy 目录下jenkins.groovy
这里可以复制一份,处理改也可以,在原来的基础上改也可以
打开jenkins.groovy文件编辑
把原来的http://yourserver/jenkins 替换成你jenkins地址
我这里是http://127.0.0.1:8080
进入gitblit仓库管理里选择hook脚本
然后修改代码git提交查看构建,
提交后进入jenkins查看,发现没有触发构建
进入gitblit 里查看日志出现错误
然后用cmd curl curl http://127.0.0.1:8080/git/notifyCommit?url=https://zenghy@git.huipinyc.cn:8443/r/testtesttest.git
访问校验,发现提示需要授权token
到此,又到了填坑的地方了,一开始,以为是登录jenkins的账号密码token ,然后设置了token 加入链接里访问,依然是提示这个错误,然后就开始百度,发现百度里没有出现相关答案,也看到有些博主的一些解决方式,但是最终按照操作还是没有解决,最后没辙去看jenkins git 插件官网有没有相关现象,可能是运气好,还被真找到了,原来jenkins 在 Git 插件 4.11.3 及更早版本中,可以使用 GET 请求访问此终端节点,而无需进行身份验证。
/git/notifyCommit
(Git 插件网络钩子中缺少身份验证机制)
点击文档查看(发现是github仓库里有说明)
然后对Jenkins全局安全配置
进入jenkins 全局安全配置
然后下来找到Git plugin notifyCommit access tokens
添加添加token 添加生成
然后复制token
最后把token 拼接到gitblit data\groovy\jenkins.groovy 文件中url拼接起来
最后修改文件,提交git
发现已正常触发自动构建
using GIT_SSH to set credentials gitblit Verifying host key
using known hosts file
You're using 'Known hosts file' strategy to verify ssh host keys, but your known_hosts file does not exist, please go to 'Manage Jenkins' -> 'Configure Global Security' -> 'Git Host Key Verification Configuration' and configure host key verification.
出现此问题是:jenkins登录使用的是jenkins系统用户,而不是windows系统用户,所以读取known_hosts提示找不到
解决方式:
C:\Users\Administrator\.ssh 会有config,id_rsa,id_rsa.pub,known_hosts文件,把这4个文件拷贝到C:\Windows\System32\config\systemprofile\.ssh
注意:
另外Administrator账户是指windows登录账户
.ssh 目录不存在,则创建
到此构建就完成了