从零开始之持续集成之源码管理配置(Ubuntu)

来源:互联网 发布:淘宝伴侣手机 编辑:程序博客网 时间:2024/05/21 06:32

用到的技术

  • 邮箱服务器配置

    账户邮箱、报告等都离不开邮箱,此处配置一个支持域为 vzjc.com 的邮件服务器。地址为 mail.vzjc.com 或 ‘vzjc.com’, 协议为TLS的 POP3SMTP, 端口分别为 110587

    配置完成后,可以生成三个账户

    • test1@vzjc.com
    • test2@vzjc.com
    • admin@vzjc.com
  • Nginx配置 Nginx虚拟主机配置

    Nginx作为网页服务器和代理服务器。

    配置完成后,可以得到

    • 支持php的Nginx服务器
    • 可配置虚拟服务器的Nginx配置文件:/etc/nginx/sites-available/mydefault.vhost
  • Gitlab配置

    Gitlab作为代码托管而存在

    配置完成后,可以得到

    • 可访问的网页服务器 http://gitlab.zjc.com
    • Gitlab管理员登录账号为 root 及其密码
    • Gitlab登录账号 root 的邮箱为 admin@vzjc.com
  • Gerrit配置

    Gerrit用来review代码,只有review通过的代码才可以提交到Gitlab代码库

    配置完成后,可以得到

    • 可访问的网页服务器 http://review.zjc.com
    • Gerrit管理员登陆账号 admin 及其密码
    • Gerrit登录账号 admin 的邮箱为 admin@vzjc.com
  • Jenkins配置

    Jenkins可以兼具代码格式检测、自动编译等功能。它是代码 review 到Gerrit上的第一道防线,可以根据检测结果在Gerrit上操作标签 Verify +1 或 -1

    配置完成后,可以得到

    • 可访问的网页服务器 http://jenkins.zjc.com
    • Jenkins管理员登陆账号 admin 及其密码
    • Jenkins登录账号 admin 的邮箱为 admin@vzjc.com
    • Jenkins安装了 Gerrit Trigger 插件
  • Gitlab、Gerrit、Jenkins配置

    本地系统,Gitlab系统,Gerrit系统,Jenkins系统有机结合起来工作

    配置完成后,可以得到

    • 系统用户 admin , 它的SSH Key连接到Gitlab的 root 账户, 连接到Gerrit的 admin 账户 - 这是管理员身份
    • 系统用户 user1 , 它的SSH Key连接到Gitlab的 user1 账户, 连接到Gerrit的 user1 账户 - 这是普通用户身份
    • 系统用户 jenkins,Jenkins系统以 jenkins 用户身份运行,它的SSH Key连接到Gerrit的 jenkins 账户 - 用户获取代码编译和设置 Verify 标签
    • 系统用户 gerrit , Gerrit系统以 gerrit 用户身份运行,它的SSH Key连接到Gitlab的 root 用户上 - 用户Git库复制
    • Gitlab上的新组 dev-group , 其下的工程 test-project1 ;Gitlab账户 rootOwner, 账户 user1Reporter
    • Gerrit上的Git工程 test-project1, 它是独立的,但是克隆自Gitlab的同名工程,并在修改后自动Merge回Gitlab上的工程
    • Jenkins上的测试项目 test-project1 , 它监控Gerrit上的 review 提交,并在有 review 提交时自动获取代码来编译,根据编译结果在 Gerrit上设置 Verify 标签
  • 增加开发者账户 Mac系统添加CI系统的用户

    增加一个开发者:开发者即可以从Gitlab上克隆代码,修改的代码可以Review到Gerrit上

  • 增加项目 此处以增加 Android Studio 项目为例 - Jenkins自动编译Android Studio创建的工程

  • 我们的服务器要支持各种编译环境 Android, Windows, RedHat, Ubuntu, Mac。我们就会用到 Jenkins设置Window编译环境从节点 来设置从节点了

解释

源码管理用Gitlab
代码Review用到Gerrit托管
提交代码自动编译用到Jenkins

Gitlab系统上新建一个项目 test-project1
在Gerrit系统上克隆Gitlab上的 test-project1

用户(例如 user1),在Gitlab上为 Reporter 角色
user1 克隆 Gitlab 上的项目 (但是没有直接提交代码到Gitlab的权限)
user1 修改代码后可以提交 review 到 Gerrit系统

admin 用户 review代码后选择提交,提交到 Gerrit 的代码库中

Gerrit系统稍后利用其提供的复制功能,会把自己托管的代码库直接提交到Gitlab上去

2 0
原创粉丝点击