概述
上图CI/CD流程中涉及研发的过程,主要涉及三部分(注意顺序),简述如下:
①代码入库 代码提交到仓库的过程。
②单元测试 代码被提交后,触发单元测试,代码回合。
③前置准备 使用这么一套流程,需要做一系列整合。
术语
client
执行机,就是你提交代码的机器。一般是一台Linux,需要提交代码同学自己准备
jenkins
跑单元测试,可以定制周期,或者由其他组件触发(需要各组自己准备个slave节点,详见UT那篇博文)
gerrit
代码检视系统,代码先提交到这里,触发单元测试,并且邀请人员检视后方可入git(gerrit已经搭建好,各组创建工程即可,参见创建工程那篇博文)
git
代码托管仓库,这里是gitlab
代码合入流程
1.登录执行机
也就是你提交代码的机器,一般为Linux(因为gerrit在windows下无版本)。 这里以一台Ubuntu为例。 (注:除了第7步是在gerrit的portal上执行,以下都是在执行机上执行)
2.安装git
3.配置git
git config --global user.name "byhan"
git config --global user.email "byhan@fiberhome.com"
可通过git config –list命令查看,如下图
4.安装git-review
sudo apt-get install git-review
5.生成秘钥
ssh-keygen -t rsa -C "byhan@fiberhome.com"'
执行完成后,会生成一个公钥和一个私钥,如下图
(注1:注意替换为自己的邮箱) (注2:文件目录可以采用默认路径,也可以指定,这里指定其他路径是为了兼容社区gerrit和公司的gerrit) (注3:推荐使用默认路径,毕竟代码提交至公司的概率大的多)
6.添加私钥至本机
ssh-agent bash (不执行ssh-agent这步可能会报错:Could not open a connection to your authentication agent)
ssh-add /work/fitos/id_rsa (将私钥添加至本机的ssh服务中)
(注:若生成证书的时候路径为默认路径,这里可以不设置) (注:当ssh客户端重启,或者执行机重启后,需要重新执行ssh-add命令)
7.添加公钥到gerrit和gitlab
用个人账户登录(默认为邮箱前缀和密码)gerrit的portal 将上述执行机生成的公钥(就是那个id_rsa.pub文件的内容)添加至gerrit 点击add (gitlab同理)
8.克隆源码
重新登录执行机,创建和进入自己的代码目录 本人的工作目录是/work/fitos/1.o 然后从gitlab上克隆源码
git clone http://*.*.*.*/yp/gerrit-test-2.git
(这里的IP为gitlab的IP)
(注1:这里使用http方式) (注2:如果使用git方式,需要将生成的公钥添加至 gitlab)
9.修改工程目录下的.gitrevew文件,并上传
当你使用gitreview命令时候会读取.gitrevew的配置,他好知道向哪里提交。
[gerrit]
host=*.*.*.*
port=29418
project=openstack-dev/cloudkitty-dashboard
使用下面的git命令,修改提交至gitlab
git add .gitreview
git commit .gitreview -m ‘add .gitreview file’
git push origin master
(注1:这里直接用git push的方法直接提交到gitlab即可,或者也可以直接到gitlab的portal上去修改) (注2:如果已经修改过,忽略此步骤) (注3:这里的project统一加分组,分组方法使用gitlab上的分组) (注4:将上面的*修改替换为我们gerrit的IP地址) (注5:project项,格式为分组/项目名称 加斜线前的分组,分组的名字和gitlab上保持一致 如你这个项目在gitlab上分组是openstack-dev这里就写openstack-dev 需要注意的是,这一条只是我们的约定)
10.添加远端(此步骤可忽略,参见注解)
将gerrit地址添加为git的远端(这里的IP信息为gerrit的IP)
git remote add gerrit ssh://byhan@¥.¥.¥.¥:29418/cloudkitty.git
(注1:如果工程的.gitrevew文件已经修改,且对对应地址为我们gerrit的地址,则不需要此步骤) (注2:.gitreview文件默认是社区的gerrit地址)
14.提交检视
git review -v ![](http://i.imgur.com/zzSZNyn.png)
15.检视
登录gerrit系统,在个人变动里可以查看到刚刚的提交
点开这次提交记录,邀请相关同学进行检视 另外,如果进行了正确的设置,提交会触发单元测试,详见后文
vertify +1 两个codereivew +1 满足上述条件后,管理员直接+2操作,会出现submit按钮,点击会提交至gitlab
当发现submit是灰色的时候,需要在本地执行git reset操作