Promptcloud 探索 Gerrit 和 Jenkins 集成设置

已发表: 2017-01-20
目录显示
使用 Gerrit 和 Jenkins 进行集成设置
什么是格瑞特?
什么是 Jenkins 及其用途?
持续集成的工作流程
一、Gerrit的安装
2. 初始登录
3. SSH 密钥生成
4.Jenkins的安装
5.启动Jenkins进程

使用 Gerrit 和 Jenkins 进行集成设置

重复和复杂的任务会使开发人员的生活变得有些单调。 值得庆幸的是,我们有工具可以定期处理平凡的任务,而一旦您设置它们就不会抱怨。 当您向测试和部署添加自动化时,该解决方案可以称为“持续集成”。 这样的设置可以自动测试和部署项目,让您有更多时间专注于编写代码,而不是将代码推送到服务器。 以下是使用 Gerrit 和 Jenkins进行持续集成设置的方法。 使用 Gerrit 和 Jenkins 设置 CI

什么是格瑞特?

Gerrit 是一个基于 git 的开源代码审查系统,具有基于 Web 的界面,可让您从 git 客户端推送更改、审查更改并自动与主代码合并。 每次进行更改时,都会创建相同的补丁集。 Gerrit 允许不同的补丁集比较。 它还可以选择在特定行或整个补丁上添加反馈或评论。 审阅者可以用以下之一对更改进行评分: +2 – 对我来说看起来不错,已批准。 +1 - 对我来说看起来不错,但其他人必须批准。 0 – 没有得分。 -1 – 我希望你不提交这个。 -2 – 阻止提交。 +2 评论意味着代码可以默认提交给主人。 这可以根据需要进行配置。

什么是 Jenkins 及其用途?

Jenkins 是用于持续集成的流行构建服务器。 它是基于 Web 的,并允许在发生更改时自动构建过程。 Jenkins 可以独立工作,即使没有 Git 或 Gerrit。 它具有允许事件触发器的钩子,因此当发生更改时,会自动进行构建。 当 Jenkins 和 Gerrit 一起使用时,构建将有一个成功/失败标记,以指示它们是否通过了测试。 Jenkins 将在执行构建后运行测试回归。 完成后,它将像其中一位审阅者一样发布测试结果。 如果构建失败,它将拒绝补丁。 在测试失败的情况下,您可以根据 CI 的质量设置 -1 或 -2。 与此同时,其他代码审查者也可以在此时审查代码。 如果所有的审查都通过了,代码可以被推送到公共存储库

持续集成的工作流程

  1. 开发人员从 Git 签出源代码
  2. 开发人员进行所需的更改
  3. 开发人员将更改推送到 Gerrit
  4. Gerrit 向 Jenkins 发送变更通知进行集成测试
  5. Jenkins 直接从 Gerrit git 服务器中提取更改,并根据我们的项目配置运行所有测试用例
  6. 其他开发人员审查更改并批准 (+2)
  7. 当 Jenkins 通过构建并且更改得到其他开发人员的批准后,Gerrit 将更改合并到主项目 git 存储库

使用 Gerrit 和 Jenkins 工作流的集成设置 一、Gerrit的安装

  • 要求:JRE,最低版本 1.8。
  • tGerrit 战争包下载链接

如果你有 MySQL,你可以将它用于 Gerrit 数据库。 在 MySQL 中为 Gerrit 创建用户和数据库。

mysql> 创建用户 'gerrit2'@'localhost' 由 'secret' 识别;

mysql> 创建数据库 reviewdb;

mysql> GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';

mysql> 刷新权限;

现在运行以下命令来初始化站点。

 # java -jar gerrit.war init –batch -d ~/

在这个初始化过程中,gerrit 服务是默认启动的。 如果您想进行任何更改,即 mysql 数据库、登录身份验证、发送电子邮件服务器和 httpd url,您可以编辑~//etc/gerrit.config文件并在~ //etc/secure 中添加 ldap 和数据库密码详细信息.config文件。 如果进行任何设置更改,必须重新启动 gerrit 服务才能生效。

 # ~//bin/gerrit.sh 重启

~//bin/gerrit.sh脚本作为 gerrit 复制到init.d目录,并将其添加到机器启动时启动。

2. 初始登录

现在在浏览器中加载您的 Gerrit URL。 您也可以使用此命令找到 Gerrit Web URL。

# git config -f ~//etc/gerrit.config gerrit.canonicalWebUrl

现在使用您在 Gerrit 配置文件中配置的方法使用登录身份验证登录 Gerrit Web 界面。 默认情况下,它是 OpenID。 LDAP 是最常用的身份验证方法之一。

成功登录 Gerrit 网页后,您必须登录您将在其中进行开发的客户端计算机。您必须为您的 ssh 会话生成 RSA 密钥。 如果您已经拥有这些文件,则可以跳过密钥生成步骤。

# ls -l ~/.ssh

authorized_keys 配置 id_rsa id_rsa.pub known_hosts

3. SSH 密钥生成

# ssh-keygen -t rsa

生成公钥/私钥 rsa 密钥对。

输入保存密钥的文件(/home/user/.ssh/id_rsa):

输入密码(无密码为空):

再次输入相同的密码:

您的标识已保存在 /home/user/.ssh/id_rsa 中。

您的公钥已保存在 /home/user/.ssh/id_rsa.pub 中。

关键指纹是:

SHA256:dMMVqsoLDf8T/d5Niob69oea3rkSLTBltiZ8s1lbdeA user@localhost

密钥的 randomart 图像是:

+—[RSA 2048]—-+

| o… |

| .+o . o|

| ..+=. E..|

| .=o=.. |

| . SB * o |

| = .. * o |

| . = 。 = 。 .|

| . ○。 +o++.+ |

| . o*=*嘘。|

+—-[SHA256]—-+

# 猫 ~/.ssh/id_rsa.pub

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCwoWTT6S1pv2LP0l6r8305njSLtoupDCw8Df
GnaqW+ppfzNMtRJmAvCQpYuvE154EsGZC5csnRkUYAScOD3nri8NBsXMdD+m1mMyD
lA4ssMLhWHfstJGQ5aJ84NIR+zFK9o9QmDCVYU/
MYt2SZnmzi+Pdd4QbDWKisewmtun5rpy8vXWukKt9CHGTbv5lKyRVPF
LuQCynKbniZLV7aQD6gsVcZFG7Hj3ezBhDAZdBrCWLldy0S61DAmdH5C94xmlSuraq
HiX0pkLi4J67msvOUW6dBfeCP1VsMNz0j/
91LPlOMf5I2r1fRw1s/J1z/
UcsgBDyATwSKocNklkrd8+pp user@localhost

  • 复制上述公钥并转到您的 gerrit 网址
  • 检查网页右上角的用户名,然后单击您的用户以找到设置链接
  • 在左侧,你可以找到“SSH Public Keys”,点击它
  • 现在单击“添加密钥”按钮,粘贴您的 ssh 公钥并添加它

使用 Gerrit 和 Jenkins SSH 密钥生成器的集成设置 第一个登录和注册帐户的用户将被自动置于完全特权的管理员中。 现在您拥有创建项目的权限。 单击“项目”选项卡,然后单击“创建新项目”。 现在输入项目名称开始。 CI 设置 你去那里,在你的系统中克隆项目并开始添加你的开发代码。 # ssh [email protected] -p 29418

**** 欢迎来到 Gerrit 代码审查 ****嗨 selvam,您已通过 SSH 成功连接。 不幸的是,交互式 shell 被禁用。 要克隆托管的 Git 存储库,请使用: git clone ssh://[email protected]:29418/REPOSITORY_NAME.git与 192.168.56.137 的连接已关闭。

# git clone ssh: //[email protected] :29418/Gerrit_Test

4.Jenkins的安装

您可以使用 apt-get 或 deb 包安装 jenkins。

  • sudo apt-get 更新
  • sudo apt-get install jenkins

Jenkins 配置存在于 /etc/default/jenkins 中,您可以在其中更改 java 位置和 JAVA_ARGS。 默认情况下,jenkins 运行在 8080 上。如果您在同一台机器上运行 gerrit 和 jenkins,则默认端口 8080 已经被 gerrit 占用。 这里需要更改 jenkins 端口。 要更改它,请编辑 HTTP_PORT 值以在不同的端口上运行。

5.启动Jenkins进程

# /etc/init.d/jenkins start转到您的浏览器并使用您的 jenkins 主机名和端口号加载 jenkins 页面。

 https://:/

如果你安装了 Jenkins 2.*,jenkins 网页会询问 initialAdminPassword。 您可以在 /var/log/jenkins/jenkins.log 文件中找到密码。 日志如下所示:

需要 Jenkins 初始设置。 已创建管理员用户并生成密码。 请使用以下密码继续安装: f16b093akcnml397jcdoa239d6bafb9这也可以在以下位置找到:/var/lib/jenkins/secrets/initialAdminPassword
  • 现在去 Jenkins -> Manage Jenkins -> Plugin Manager 在 jenkins 中安装gitgerrit 插件
  • 单击“可用”选项卡并搜索“ Git Plugin ”并单击“无需重启即可安装”。 再次搜索“ Gerrit Trigger”并单击“Install without restart”。 最后,检查它是否在已安装列表中。

使用 Gerrit 和 Jenkins 插件的集成设置 Jenkins 进程由 jenkins 用户运行。 因此,我们需要在 gerrit 中启用 jenkins 用户的访问权限。

  • 使用您的身份验证方法,在 gerrit 中创建 jenkins 用户
  • 现在像之前一样为 jenkins 用户创建 ssh-keygen。 但这一次,使用空密码创建密钥并在 gerrit 中复制 jenkins 用户的公钥
  • 现在单击“新建项目”以创建新作业并在 Source Code Management/Git 部分添加您的 git url。 此外,在 Build Triggers 中选择“Gerrit event”并输入 Gerrit Project Pattern。

使用 Gerrit 和 Jenkins 事件的集成设置CI 集成活动 最后,保存配置。 完美,您的 Gerrit 和 Jenkins 设置现已完成。