cjuexuan / mynote

237 stars 34 forks source link

gitlab和jenkins项目管理技巧 #24

Open cjuexuan opened 7 years ago

cjuexuan commented 7 years ago

gitlab和jenkins项目管理技巧

gitlab现在是我们基本的版本管理工具,使用过程中其实有很多的小技巧,本文主要介绍了gitlab的项目管理中的一些小点,主要包括issue、commit 信息,以及二者的关联,同时简单介绍了jenkins中进行ci和配置任务依赖关系

issue

issue是项目管理中的重点,主要包括以下功能:

  1. 用于登记bug与需求
  2. 可以按照issue类型不同打上不同的tag
  3. 每个issue在每个project中有唯一的id
  4. 项目负责人可以@相应的开发进行开发
  5. 在经过单元测试和code review后,如果功能点符合,可以关闭相应的issue
  6. 可以通过gitlab的web界面进行相应的分析,比如按照tag和assignee进行筛选

image

commit

commit message可以用于追踪问题,所以 对于git的commit的message,尽量详细的说明本次提交主要干了什么,是fix 什么bug,开发什么特性,还是update 某个功能点,这同样有助于进行code review

image

另外在commit 的msg中可以如果是fix,其实是可以关联你的issue的

image

code review

code review可以有效的控制代码质量,如果按照开源社区的一些规范,如spark,如果是contributor的代码至少有一个committer去进行code review,才会被merge进入master分支

ci

gitlab和github都能进行一些简单的ci,最简单的是提交后自动去触发一个jenkins的任务

项目配置

配置一个.gitlab-ci.yml,里面会配置去触发哪个jenkins任务,以及jenkins的token,还能指定分支,也就是该分支的提交才会触发打包

gitlab配置

service

image

gitlab的项目services中开启gitlab的ci

runner

image

runner中指定一个已经存在的局域网中的一个runner,脚本类型选shell

image

jenkins配置

  1. 上下游依赖任务
  2. 邮件报警

我的做法是gitlab的master提交触发jenkins一个单元测试的ci任务,下游触发beta的打包,beta成功build以后会触发一个product的打包,这样就保证了自动打包的效率和由单元测试保证的代码质量问题

image

image

image

pull request

pull request 主要保证核心分支的代码质量,开源社区使用的比较多