Jenkins拉取代码推送至远程服务器执行测试https://blog.csdn.net/qq_36717210/article/details/123372260?spm=1001.2014.3001.5501
之前通过将项目推送至远程服务器执行测试,构建几次后发现执行完测试需要清理远程服务器的工作目录,如果未清理工作目录,会存在以下问题:
- 之后的构建如果失败未生成报告,则会拉取之前的测试报告
- 代码更新后,直接推送至远程工作目录,可能存在冲突
Jenkins工作目录也要清理,需在构建后操作增加“Delete workwpace when build is done” 远程服务器工作目录的清理则需要执行rm命令 调整好这些后,又觉得配置的有点复杂,因此查阅了资料后,将远程服务器添加为节点来执行测试。
将远程服务器添加为节点
点击Manage Jenkins(系统管理)→Manage Nodes and Clouds(节点管理)→新建节点
节点名称随意填写即可(不建议使用中文,中文命名没有问题,但Job中无法引用),类型选择“Permanent Agent” 远程工作目录:填入远程服务器的工作目录,例如:/root/unitTest 标签:标签内容之后会需要填写在项目设置中 用法:因为只执行特定项目,所以选择“只允许运行绑定到这台机器的Job” 启动方式选择通过SSH Credentials,添加类型为“Username with password”的凭据;其中用户名和密码填入登录远程服务器的用户名和密码 Host Key Verification Strategy 选择“Non verifying Verification Strategy”
因为需要Java环境,点击“高级”,配置Java路径 Java路径可在远程服务器通过which命令(which java )获取,将返回的结果直接填入即可。 因项目涉及到拉取git代码,并使用maven命令执行,所以还需配置这两个工具的位置 在节点属性中,勾选 “Toll Locations”,点击“新增” 在名称中选中Git,目录处填写远程服务器通过which git 获取的路径值 maven的添加步骤与Git一样,目录处填写通过which mvn 获取的路径值
项目中配置节点
在项目配置中勾选“限制项目的运行节点” 标签表达式填入节点的标签 代码的拉取无需改动
构建步骤中无需再向远程服务器发送文件,也不需要通过SSH执行命令 仅需执行shell,写入shell命令即可 虽然配置了mvn工具,但仍出现了找不到命令的错误,在执行shell命令前加上source /etc/profile 使环境变量生效后解决问题 构建后步骤添加测试报告、清理工作空间。
执行测试
执行构建后,控制台输出会显示远程服务器的执行结果 远程服务器的工作目录下会显示remoting与workspace文件夹
|