GitLab自动触发Jenkins构建

发表于:2018-3-30 08:51

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:WolfcsTech    来源:推酷

  GitLab 是当前应用非常广泛的 Git Hosting 工具, Jenkins 是非常牛逼的持续集成工具。尽管 GitLab 有内建的 GitLab CI ,但它远没有 Jenkins 那么强大好用。Jenkins 和 GitLab 在两者的结合上,都提供了非常方便的工具。在我们向 GitLab push 代码,或执行其它一些操作时,GitLab 可以将这些时间通知给 Jenkins,trigger Jenkins 工程的构建自动执行。
  要实现在向 GitLab push 代码时,自动 trigger Jenkins 工程执行构建动作,需要在 GitLab 和 Jenkins 的多个地方做配置:(1)、在 Jenkins 中安装插件;(2)、配置 GitLab 用户;(3)、配置 Jenkins 服务器;(4)、配置 Jenkins 工程;(5)、配置 GitLab 工程。
  在 Jenkins 中安装插件
  选择 系统管理 -> 管理插件 打开插件管理也页面,如下图:
  在 可选插件 中选择 Gitlab Hook Plugin 和 GitLab Plugin 等插件,然后点击下方的 直接安装 按钮安装插件:
  创建测试工程
  为了便于测试,这里分别先在 Jenkins 和 GitLab 上创建测试工程。在 Jenkins Dashboard 主页点击 新建任务 ,进入新建任务页面:
  在输入框中输入工程名,选择 构建一个自由风格的软件项目 ,然后点击左下角的 确定按钮 ,进入工程配置页面。
  在工程配置页面的 源码管理部分 ,输入 GitLab repo 的 URL,如下图:
  如果是 https 形式的 URL,记得配置登录 GitLab 的用户名和密码,通过点击 Credentials 行最后面的 Add -> Jenkins 按钮,在弹出的如下对话框中输入用户名和密码:
  Add 之后,在 Credentials 的下拉框中选择这组用户名和密码。没有添加 GitLab 的用户密码的话,Jenkins 报错 —— 无法访问 repo,如下图:
  随后点击左下角的 保存 按钮,完成 Jenkins 工程的创建,并将它与 GitLab 的工程关联起来。
  配置 GitLab 用户
  创建一个用户或选择一个已有用户,用来让 Jenkins 和 GitLab API 交互。这个用户将需要是全局的管理员或添加进每个组/工程,并作为成员。需要开发者权限来报告构建状态。这是由于,当使用了 ‘Merge when pipeline succeeds’ 功能时,成功的构建状态可以触发合并。GitLab Plugin 的一些功能可能需要其它的一些权限。比如,有一个选项用于在构建成功时,接受 merge request。使用这一功能需要 developer,master 或 owner 级的权限。
  选择 Settings -> Account :
  拷贝其中的 Private token ,稍后在配置 Jenkins 服务器时会用到。
  配置 Jenkins 服务器
  需要配置 Jenkins 服务器来与 GitLab 服务器通信。
  在 Jenkins 中,选择 系统管理 -> 系统设置 ,在系统设置中找到 GitLab 的部分:
  在 Connection name 后的输入框中输入连接名称,在 Gitlab host URL 后的输入框中输入 GitLab 服务器的 URL 地址。点击 Credentials 行最后面的 Add -> Jenkins 按钮,弹出如下对话框,在 Kind 后的下拉列表中选择 GitLab API token ,并把上一步拷贝的 Private token 粘贴到 API token 后面的输入框中。随后在 Credentials 的下拉框中选择 GitLab API token 。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号