devops之gitlab,不仅仅是代码仓库

 不应取法,不应取非法。

 

    从svn迁移到git,大家有很多担心和期待。担心git会改变原有的项目管理方式,期待通过git解决项目中无法克服的管理难题。这里多少会让大家失望,git究其本质,只是代码版本管理工具而已。如何用、如何使项目更加顺畅即所谓取法取非法,还靠大家在项目实践中不断领悟。结合目前的项目管理方式介绍git的使用方法。尽量避免网络中常见的知识点罗列,通过项目场景讲述gitlab使用方法。

 

  • gitlab环境搭建

  • gitlab管理员配置

    1. 域名配置

    2. 外观配置

    3. admin settings

    4. 关联其他系统

    5. 新建group

  • 通用使用方式

    1. 账号注册

    2. 汉语设置

  • 项目管理者

    1. 为group添加用户

    2. 新建项目

    3. 新建分支

    4. 设置分支权限

    5. 合并分支

    6. 代码review

    7. 回退合并

    8. 关联jenkins自动发布

    9. 在gitlab上查看发布状态

    10. 生产版本发布自动生成git标签

    11. gitlab 提交信息与jira中的issue关联

  • 开发人员

    1. 下载项目

    2. 提交合并请求

 

 


 

gitlab环境搭建

 

gitlab搭建网上已经有很多教程,这里略去不表。要感谢运维的小伙伴,帮忙搭建gitlab环境。


gitlab管理员配置

 

服务域名配置
/etc/gitlab/gitlab.rb中external_url
配置好后git项目的地址使用配置的域名

外观配置,使gitlab看起来像专门为本公司定制的系统
/admin/appearance
配置公司图标、登录界面。

admin settings

/admin/application_settings

  • 注册及账户限制
    开放注册

     

如果不开放注册,需要系统管理员添加账户,适合小规模团队。

注册后的账户设置成外部账户,没有任何权限。需要项目的管理者为其添加权限后才能参与项目。

 

  •     可见性与访问控制
    非管理员只能建立私有项目。防止项目管理员失误建立公开项目,造成信息泄露。

     

  • 使用许可声明

    设置使用声明及一些约束,只有用户同意才可以使用本gitlab。

     

  • 自定义帮助页面

    使用markdown格式自定义帮助页面,也可以直接引用公司内部的外部帮助页面地址

关联其他系统

/admin/application_settings/services

与其他系统打通,我们公司使用jira做项目管理,配置了与jira的双向打通。

新建group

group是一组项目,能够包含一个或多个项目。所有新建group必须使用Private,保证只有相关人才可见。


 

通用使用方式

账号获取

设置喜好语言,目前只能部分汉化

user settings -> profile -> Preferred language


 

项目管理者

为group添加用户

新建项目

新建分支

设置分支权限

master,uat,sit只有项目管理者有提交权限。(除master外需要先建立分支后才能设置)
设置方式 project->settings->repository->Protected Branches

合并分支

    查看合并请求

    处理合并请求

代码review

在合并请求中会列出修改的代码,可以在此进行代码review,并在线提交问题。

回退合并

 

关联jenkins自动发布

jenkins配置

gitlab配置

 

在指定分支有提交(也可以是其他事件)触发jenkins构建

 

在gitlab上查看发布状态

jenkins上需要配置

 

gitlab上的流水线状态

在提交列表中查看每次提交的发布状态

 

生产版本发布自动生成git标签

需要在jenkins中配置,详细配置方法在jenkins章节中说明。

 

gitlab 提交信息与jira中的issue关联

gitlab项目设置,如下图,jira账号可以是项目管理员账号。

git提交时在注释中必须包含issue id

如“SCRUMT1-1 12344”,“Update README.md SCRUMT1-1”

 

关联效果

 


 

开发人员

下载项目

在项目首页有次项目的git地址,包含两种方式:ssh、http。如果没有设置ssh账号,需选用http模式

提交分支合并请求


 

总结,上面列举了在devops项目进行中各个环节需要使用的gitlab功能。gitlab还有很多功能,issue、看板、里程碑、wiki,可以根据项目的需要使用。

预告,下一章会介绍jenkins在devops中的作用和使用方法,欢迎关注。

 

 

相关阅读:

传统企业devops之路

devops落地,见诸相非相

 

posted on 2018-07-31 09:13  刘祺  阅读(82)  评论(0)    收藏  举报

导航