最近研究了下Jenkins , 搭建了Jenkins + Gitlab + Maven 环境,构建testng测试用例。
环境:Windows
官网上有war 包, 和安装包,可直接下载安装,我是直接下载安装包安装的。在Window下以windows server的方式启动的。Jenkins 启动之后,访问地址如下:
http://your server ip:8080/
第一次访问时,会有新人指导,安装必要的插件、设置用户名密码等,按步骤操作即可。
登录Jenkins之后,我们需要安装必要的插件和配置maven、git等。
1、安装插件:系统管理->管理插件 。选择可选插件,搜索需要安装的插件,点击底部直接安装即可。需要安装的插件有:gitlab、testng、maven、ssh等。
2、配置jdk、git、maven等:系统管理->全局工具配置下,配置JDK、git、Maven即可:
以Git为例,如上所示,选择相应的路径, 其中顶部的Maven Configuration也需要正确配置。
三、上传代码到gitlab及其配置
Jenkins 需要从gitlab上下载代码,所以需要将Jenkins机器上的公钥添加到gitlab的ssh key上。
1、添加Credentials
首页Jenkins-> Credentials,选择右边的Jenkins如下:
按图中所示添加操作,然后填写username,private Key, 直接选择Enter directly, 将.ssh文件下的私钥拷贝过来就可以 了。
2、新建job
首页Jenkins->新建任务,我建的是Maven项目,可根据自己的需要新建。
3、配置
新建完Job后,需要在改项目下配置。主要有以下几项,可根据自己需要配置:
General: 项目名称, 丢弃旧的构建,参数化构建过程;
源码管理:我选的Git,填写相应的Repository URL,Credentials,配置过程中,总结了一下问题见后面。
Branches to build : */master
Build : Root POM , pom 文件路径。
配置完之后,尝试下构建即可。
问题1,2:源码管理->Git,Repository URL处相关报错。
1、ssh executable not found. The git plugin only supports official git client
我之前安装的git版本有问题,重新去官网下载最新的安装之后,更改git.exe的配置路径,就可以了。参考(https://issues.jenkins-ci.org/browse/JENKINS-25297)。
2、Failed to connect to repository.
重新安装git之后,更改配置时,将git.exe遗漏了,报了如下的错, 配置git时,路径一直到bin/git.exe.
Failed to connect to repository : Error performing command: C:\Program Files\Git\bin ls-remote -h git@XX/XX HEAD
改了配置之后,还是报错。底部的Credentials没有选。选上第四步添加的Credentials即可。
Failed to connect to repository : Command "C:\Program Files\Git\bin\git.exe ls-remote -h git@XX:XX/project.git HEAD" returned status code 128:
stdout:
stderr: Host key verification failed.
fatal: Could not read from remote repository
3、cannot run program“sh”(构建过程中)
java.io.IOException: Cannot run program "sh" (in directory "XX"): CreateProcess error=2
看了下我的环境变量,确实没有,所以在Jenkins里面需要指定下。
(参考:https://stackoverflow.com/questions/15135771/hudson-on-windows-error-java-io-ioexception-cannot-run-program-sh)
解决方法:Jenkins -> Configure System -> Shell , 将路径改为C:\Windows\system32\cmd.exe即可。
不同的环境很可能也会碰见需要其他的问题,一定要习惯自己搜索找答案,静下心解决。