CI环境搭建----repo服务器搭建流程

由于工作需要,着手搭建了个基于gerrit的repo服务器,这里记录下流程和踩过的坑~~~

环境:linux unbuntu16.10 两个,一个为gerrit服务器,一个做repo客户端

操作概述

Server端:

1.下载repo工具,创建仓库供client端下载使用。

2.创建manifest工程

3.创建用来测试下载的工程gst-test

Client端:

1.manifest工程添加default.xml

2.server端下载repo工具

3..执行repo init

4.执行repo sync

具体流程

准备工作:

repo搭建前提:

1.将repo client所在机器的sshkey添加到gerrit服务器上的用户账号内。如果没有添加,按照如下方法执行:id_rsa.pub公钥文件的产生,注意:linux 用户一定要是后面用来搭建repo client的用户

$ sudo ssh-keygen -t rsa

查看公钥内容,执行拷贝

$ cat .ssh/id_rsa.pub 

浏览器登录gerrit用户,将公钥id_rsa.pub的内容拷贝到setting ->ssh public key中:点击 add key,将id_rsa.pub拷贝进来,保存,OK

2.repo client 所在机器安装好git

如果已经安装git,忽略本步骤,没有安装则参照如下方式安装:

$ apt-get install git

 

一、Server

1.repo 工具建仓

1)下载repogerrit

网上查到的下载repo工具的地址验证都失败,无法下载repo工具, 故从现有环境另一repo10.20.114.36服务器上clonerepo 工具,放置在gerrit服务器的git仓库下,使用命令如下:

$ git clone --bare ssh://user_name@ip:29418/repo.git

其中 user_name为gerrit注册用户的用户名 ip为gerrit服务器的IP

查看repo仓库

$ ls

All-Projects.git  All-Users.git     git-hook-test.git  gst-first.git    hook2.git     hook.git   repo.git      wang-test.git

2)重启gerrit 服务,使新增仓库加入gerrit

gerrit bin目录下执行以下命令

./gerrit.sh stop 

./gerrit.sh start

或者

./gerrit.sh restart

 

2.manifest仓库的创建

manifest仓中存放着管理git库的xml文档,下载时可以指定xml文档的名字,如果不指定,默认为default.xml

可以在浏览器中用gerrit管理员登录gerrit服务器,然后创建工程,也可以在gerrit服务器上使用git命令创建工程:

$ git init --bare manifest.git

使用git 命令添的仓库,加记得重启gerrit服务以使其加入gerrit管理。

仓库创建完成后需要在某个client端添加default.xml文件并push到服务器上。这里就使用client端完成这项工作,这个工作只在需要修改repo所管理的工程的时候再做。

3.gst-test仓创建,同manifest

$ git init --bare gst-test.git

二、Client

1.完成servermanifest仓中xml文件的上传

对于新建的repo来说,manifest仓中必须要添加xml文件,这里使用默认的default.xml

Clone

$ git clone ssh:///user_name@ip:29418/manifest.git

添加default.xml

内容如下:

  

  

user_name@ip:29418" review=" " />  

      

      

 

其中fetch=后面的内容填入路径为manifest.git所在的同级目录的路径;

project name=填入的工程,这里名字为gst-test,这个工程需要gerrit上已经创建

gerrit服务器

$ cd manifest/

$ ls

default.xml

$ git add .

$ git commit -m "update xml"

$ git push origin HEAD:refs/for/master

$ scp -p -P 29418 user_name@ip:hooks/commit-msg .git/hooks/ 

$ git commit --amend

$ git push origin HEAD:refs/for/master                                          

审核通过后commit到库中,待用...

 同样的方法向gst-test仓中提交一个文件,待用...

2.下载repo工具

Repo工具也可以到网上下载,但是目前网络上提供的地址都验证失败,这里使用自己搭建的repo库:

$ git clone ssh://user_name@ip:29418/repo.git

将其中的repo文件拷贝到~/bin/目录

$ cd repo/

$ ls

$ cp repo ~/bin/

添加可执行权限:

$ chmod a+x repo

设置PATH

PATH=~/bin:$PATH

3.执行repo init

$ repo init -u ssh://user_name@ip:29418/manifest.git

查看文件

$ ls -a

.  ..  .repo

$ ls -a .repo/

.  ..  manifests  manifests.git  manifest.xml  project.list  projects  repo

其中 ./repo/repo目录下放置的是repo工具

4.执行repo sync 同步工程

$ repo sync

查看clone下来的工程

$ ls

gst-test

OK,工程下载完成,大功告成!

如果有别的客户端要下载本项目,只需要执行客户端的2-4步。



你可能感兴趣的:(CI)