一.目的

开发人员一旦向gitlab仓库提交成功代码,gitlab就会自动触发jenkins构建项目。当然在构建后还可以添加项目部署或者自动化测试的脚本。

gitlab,jenkins的安装参考以前的文章

​​CentOS 7 下Jenkins安装部署教程​​

​​docker下gitlab安装配置使用​​

二.Jenkins配置

全局工具配置,还是点击系统管理–》Global Tool Configuration

Jenkins Gitlab持续集成打包平台搭建_git

配置jdk,点击新增JDK
把自动安装勾选掉,就会出现让你配置你已经安装的jdk的路径了。

查看Java的安装目录:

which java

Jenkins Gitlab持续集成打包平台搭建_用户名_02


系统管理->管理插件->可选插件->选择安装 Gitlab Hook Plugin和Build Authorization Token Root Plugin插件。 如果没有安装Build Authorization Token,后面gitlab在Test hook时会报403错误。

Jenkins Gitlab持续集成打包平台搭建_jenkins_03


Jenkins Gitlab持续集成打包平台搭建_gitlab_04

三.创建测试工程

在 Jenkins Dashboard 主页点击 新建任务,进入新建任务页面:

在输入框中输入工程名,选择 构建一个自由风格的软件项目,然后点击左下角的 确定按钮,进入工程配置页面。

Jenkins Gitlab持续集成打包平台搭建_jenkins_05

1.General 勾选 丢弃旧的构建

勾选Discard old builds(丢弃旧的构建),选择是否备份被替换的旧包。我这里选择备份最近的5个.

Jenkins Gitlab持续集成打包平台搭建_jenkins_06

2.源码管理 选择git

Jenkins Gitlab持续集成打包平台搭建_jenkins_07


如果是 https 形式的 URL,记得配置登录 GitLab 的用户名和密码,通过点击 Credentials 行最后面的 Add -> Jenkins 按钮,在弹出的如下对话框中输入用户名和密码:

Jenkins Gitlab持续集成打包平台搭建_gitlab_08


Add 之后,在 Credentials 的下拉框中选择这组用户名和密码。

Jenkins Gitlab持续集成打包平台搭建_gitlab_09


随后点击左下角的 保存 按钮,完成 Jenkins 工程的创建,并将它与 GitLab 的工程关联起来。

3.构建触发器

需要记下 Build when a change is pushed to GitLab 那一行中,GitLab CI Service URL: 后面的 URL,后面在配置 GitLab 工程GitLab CI Service URL后面要填在gitlab的webhooks中。

Jenkins Gitlab持续集成打包平台搭建_gitlab_10


还要点开右下角的 高级:

Jenkins Gitlab持续集成打包平台搭建_git_11


随后点击右下角的 Generate 按钮,生成 Secret token,保存这里生成的 Secret token,它同样将用于后面 GitLab 的配置。随后点击左下角的 保存 按钮,保存前面所做的配置。

4.配置 GitLab 工程

创建一个新的或选择一个已有的 GitLab 工程。然后选择 Settings -> Integrations,在 URL 一栏中输入前面保存的 GitLab CI Service URL,在 Secret Token 一栏中输入前面保存的 Secret token,然后选择需要 trigger Jenkins 工程执行构建的事件:

Jenkins Gitlab持续集成打包平台搭建_用户名_12


点击绿色的 Add webhook 按钮,完成 webhook 的创建。

Jenkins Gitlab持续集成打包平台搭建_Jenkins_13


创建好了 webhook 之后,点击 Test 下拉框中的 Push events.

点击测试,返回200的话就表示成功了。其他错误可以根据gitlab日志来排除原因gitlab/gitlab-rails/production.log:

如果遇到问题:

进行GitLab + Jenkins 自动化部署时,在GitLab的 MyProject => Settings => Integrations中输入完 “URL” 和 “Secret Token”,点击按钮 “Add webhook”时,报错如下:

Url is blocked: Requests to the local network are not allowed

解决:

进入 Admin area => Settings => Network ,然后点击 Outbound requests 右边 的“expand”按钮,如下:

Jenkins Gitlab持续集成打包平台搭建_Jenkins_14

5.验证测试:

Jenkins Gitlab持续集成打包平台搭建_git_15


Jenkins Gitlab持续集成打包平台搭建_jenkins_16