一.目的
开发人员一旦向gitlab仓库提交成功代码,gitlab就会自动触发jenkins构建项目。当然在构建后还可以添加项目部署或者自动化测试的脚本。
gitlab,jenkins的安装参考以前的文章
CentOS 7 下Jenkins安装部署教程
docker下gitlab安装配置使用
二.Jenkins配置
全局工具配置,还是点击系统管理–》Global Tool Configuration
配置jdk,点击新增JDK
把自动安装勾选掉,就会出现让你配置你已经安装的jdk的路径了。
查看Java的安装目录:
which java
系统管理->管理插件->可选插件->选择安装 Gitlab Hook Plugin和Build Authorization Token Root Plugin插件。 如果没有安装Build Authorization Token,后面gitlab在Test hook时会报403错误。
三.创建测试工程
在 Jenkins Dashboard 主页点击 新建任务,进入新建任务页面:
在输入框中输入工程名,选择 构建一个自由风格的软件项目,然后点击左下角的 确定按钮,进入工程配置页面。
1.General 勾选 丢弃旧的构建
勾选Discard old builds(丢弃旧的构建),选择是否备份被替换的旧包。我这里选择备份最近的5个.
2.源码管理 选择git
如果是 https 形式的 URL,记得配置登录 GitLab 的用户名和密码,通过点击 Credentials 行最后面的 Add -> Jenkins 按钮,在弹出的如下对话框中输入用户名和密码:
Add 之后,在 Credentials 的下拉框中选择这组用户名和密码。
随后点击左下角的 保存 按钮,完成 Jenkins 工程的创建,并将它与 GitLab 的工程关联起来。
3.构建触发器
需要记下 Build when a change is pushed to GitLab 那一行中,GitLab CI Service URL: 后面的 URL,后面在配置 GitLab 工程GitLab CI Service URL后面要填在gitlab的webhooks中。
还要点开右下角的 高级:
随后点击右下角的 Generate 按钮,生成 Secret token,保存这里生成的 Secret token,它同样将用于后面 GitLab 的配置。随后点击左下角的 保存 按钮,保存前面所做的配置。
4.配置 GitLab 工程
创建一个新的或选择一个已有的 GitLab 工程。然后选择 Settings -> Integrations,在 URL 一栏中输入前面保存的 GitLab CI Service URL,在 Secret Token 一栏中输入前面保存的 Secret token,然后选择需要 trigger Jenkins 工程执行构建的事件:
点击绿色的 Add webhook 按钮,完成 webhook 的创建。
创建好了 webhook 之后,点击 Test 下拉框中的 Push events.
点击测试,返回200的话就表示成功了。其他错误可以根据gitlab日志来排除原因gitlab/gitlab-rails/production.log:
如果遇到问题:
进行GitLab + Jenkins 自动化部署时,在GitLab的 MyProject => Settings => Integrations中输入完 “URL” 和 “Secret Token”,点击按钮 “Add webhook”时,报错如下:
解决:
进入 Admin area => Settings => Network ,然后点击 Outbound requests 右边 的“expand”按钮,如下:
5.验证测试: