jenkins--根据项目prid自动更新部署

说明

  • 公司采用的是基于pull request开发流程。(如果是基于分支的开发流程,原理一样)
  • 公司的测试流程:开发者提交PR后,测试人员登录测试服务器进入项目,基于项目master分支拉取PR代码后,编译部署重启服务。
  • 测试的项目:gitlab,托管在码云

目标

  • 通过jenkins实现自动的更新测试机项目代码然后编译部署重启服务。

新建一个自由风格的job,然后配置

1. General
  • General中勾选‘参数化构建过程’,添加参数String Parameter
  • 使用 ${pr_iid} 引用输入参数值
jenkins--根据项目prid自动更新部署_第1张图片
输入图片说明
2. 构建
  • 构建步骤选择:Send files or execute commands over SSH,并选择目标服务器
  • 添加Exec command:即实现手工登录测试服务器的操作即可。
jenkins--根据项目prid自动更新部署_第2张图片
测试服务器上执行的Exec command
  • 说明,更新代码步骤:先把本地HEAD指向main/master,然后fetch PR的ref(码云和GitHub都已经实现克隆分支代码),然后合并pr_iid分支的代码,最后删除克隆PR时新建的本地pr_iid分支。
  • 另外这里我们选择ssh方式克隆PR代码避免http方式需要输入密码而导致失败。(main指的是目标项目的ssh地址)
jenkins--根据项目prid自动更新部署_第3张图片
码云克隆项目PR说明
3. 点击Build with Paramters
  • 输入目标项目的pr对应的id,点击开始构建即可


    jenkins--根据项目prid自动更新部署_第4张图片
    输入图片说明
4. 构建结果
  • 更新项目代码过程:
jenkins--根据项目prid自动更新部署_第5张图片
更新项目代码
  • 编译重启服务过程:
jenkins--根据项目prid自动更新部署_第6张图片
编译重启gitlab
5. 遇到的问题
  • 问题1:由于编译部署的时间比较长大概5分钟左右,从而导致构建[Exec timed out or was interrupted after 120,011 ms]。
  • 解决:更改默认设置的Exec command时间,从默认的2分钟改成10分钟。
jenkins--根据项目prid自动更新部署_第7张图片
设置Exec timeout

你可能感兴趣的:(jenkins--根据项目prid自动更新部署)