Git是越来越火了,根据聪明的程序猿都是随大流的原则,我也开始使用Git了。当然,一个人用不如大家一起用,所以还需要一个团队能共享的git仓库,有朋友推荐了gitlab,看后感觉很好很强大,而且还有gitlab_ci进行持续构建。不过只是持续构建还不够,如果能持续部署就更好了:)
持续部署其实并不难,只要在持续构建的单元测试通过后,可以自动将最新的代码部署到测试环境,并重启测试环境的服务,我们就可以在测试服务器上访问到最新的内容了。
安装gitlab很简单,只要按照官方文档一步一步做就好了,有一点需要注意的就是,官方文档的步骤只适合Ubuntu和Debian系统。
安装gitlab之后,我把gitlab_ci装在了另外一台服务器上,当然也可以装在一起。安装时需要注意第二步,文档中使用RVM方式安装的Ruby,我测试时对后续步骤有影响,就干脆按照GitLab安装指南的做法,直接安装的Ruby。如果装在同一台服务器上,还要注意nginx的端口配置,两个不能都使用80端口。
安装一下nose,一会儿需要执行测试。
1
|
|
系统装后好,先在GitLab上创建一个项目,叫examples,我的服务器IP是192.168.8.202,项目的SSH地址是git@192.168.8.202:yachuan.chen/examples.git。
创建本地仓库:
1 2 3 4 5 6 7 8 |
|
接下来在GitLab CI(以后简称CI)添加一个持续构建的项目,我的地址是http://192.168.8.201,这里会出现一个错误提示“Project path is not a git repository”,持续构建的目录必须是一个Git仓库,其实就是在CI服务器上要有一份Examples的Clone,现在SSH到CI服务器上去创建Project path。 由于CI是使用gitlab_ci用户运行的,所以也是用该用户进行clone。
1 2 3 4 5 |
|
直接这么做会报错,因为CI服务器还没有权限使用ssh进行clone,需要本地生成一个ssh key。
1 2 3 |
|
在GitLab>Project>Examples>Deploy Keys中,点击Add Delpoy Key按钮,将id_rsa.pub的内容复制到Key中,再起个名字,再执行刚才的Clone命令就之后,可以就完成Add Project的操作了。注意,Scripts是必填项,这里先只填一个/usr/local/bin/nosetests,后续在补充。
进入CI系统的Project: examples → Details页面: 我使用的GitLab是4.0版本,按照提示,将Project URL和Project Token复制到GitLab → Project → Services中的GitLab CI中。 这时,我们进行git push后,将会触发gitlab ci执行scripts中的脚本。