目录
1.jenkins安装gitlab插件
下载插件:http://updates.jenkins-ci.org/download/plugins/gitlab-plugin/
系统管理 --> 插件管理 --> 高级
2.gitlab生成token
点击 gitlab 用户 --> Preferences --> Access Tokens --> 填写 Token name --> 勾选api --> 点击 Create personal access token --> 复制 token
3.jenkins配置gitlab
点击 系统管理 --> 系统配置 --> 填写 gitlab 信息 --> Test Connection --> 保存
创建Credentials
4.jenkink工程配置构建触发器
新建 jenkins 工程 --> 勾选构建触发器 Build when a change is pushed to GitLab. 关注 URL --> 选择监听事件 --> 高级 --> 点击 Generate 生成 Secret token --> 添加所需构建 --> 添加构建后操作 Publish build status to GitLab --> 保存
5. gitlab打开向本地网络发送webhook请求
gitlab 10.6 版本以后为了安全,默认不允许向本地网络发送webhook请求,否则添加webhooks报错:Url is blocked: Requests to the local network are not allowed
解决办法:
管理员账号登录 --> Menu --> Admin --> Setting --> Network --> Outbound requests 后的 Expand --> 勾选上 Allow requests to the local network from web hooks and services --> Save changes
6.gitlab项目添加webhooks
点击gitlab项目 --> Setting --> Webhooks --> 填写jenkins工程中的URL和Secret token --> 勾选监听的事件 --> Add webhook --> Test (我之前已创建了一个MR,故用此测试)
触发成功 gitlab 会显示 Hook executed successfully: HTTP 200
jenkins 构建失败 gitlab 提示
添加 流水线必须成功 选项:
通用-合并请求-展开-流水线必须成功
踩过的坑:
jenkins 配置 gitlab 时,测试连接显示 error ,查后台日志报错:java.lang.NoClassDefFoundError: javax/ws/rs/ext/MessageBodyReader
解决方法:
安装插:Jersey 2 API
http://updates.jenkins-ci.org/download/plugins/jersey2-api/
安装 jenkins 时,选择安装推荐插件,会默认安装这个插件!