插件安装
- gitlab-plugin
添加认证
添加认证的操作,分为两个部分,一个是在 Gitlab 上完成,一个是在 Jenkins 上完成。
Gitlab 认证配置
在 Gitlab 中,使用管理员账号,生成 Access Token。
将生成的 token 拷贝。注意:token 只会展示一次,关闭页面后,就无法再拷贝。
Jenkins 认证配置
使用管理员账号,进入系统管理 -> 系统配置/Configuration System,找到 Gitlab 。
点击添加认证按钮,将 Gitlab 处复制来的 Access Token 粘贴到指定位置。
添加成功后,在 Gitlab 选项处进行配置,并测试连接。连接成功即添加完成,保存退出,即可。
创建 Jenkins 流水线
创建 Jenkins 流水线,选择 pipeline 风格。(这里仅说明 pipeline 风格流水线如何配置)
Jenkins 返回构建信息
Jenkinsfile样例
pipeline {
agent any
// 添加 gitlab 名称
// 填写 Jenkins 后台配置的 Gitlab 选项中的 Connection name。此处填写上一章节填写的名称。
options {
gitLabConnection('Gitlab')
}
parameters{
gitParameter branch:
'',
branchFilter:'origin/{.*}',
defaultValue:'<branch>',
name:'BRANCH',
quickFilterEnabled: true,
selectedValue: 'DEFAULT',
sortMode: 'NONE',
tagFilter: '*',
type:'PT_BRANCH_TAG'
}
stages {
stage('Checkout') {
steps {
// 更新 Gitlab 中的流水线状态
updateGitlabCommitStatus name: 'build', state: 'pending'
// 更新代码
checkout([$class: 'GitSCM',
branches: [[ name:"${BRANCH}" ]],
doGenerateSubmoduleConfinurations: false,
extensions: [],
//gitTool: 'Gitlab',
submoduleCig: [],
userRemoteConfigs: [[
url: "<gitlab_repo_url>",
credentialsId: '<gitlab&Jenkins_token>',
]]
])
}
}
stage('build') {
steps {
// 更新 Gitlab 中的流水线状态
updateGitlabCommitStatus name: 'build', state: 'running'
hogehoge
}
}
}
// 返回构建结果到 Gitlab 上
post {
success {
updateGitlabCommitStatus name: 'build', state: 'success'
}
failure {
updateGitlabCommitStatus name: 'build', state: 'failed'
}
}
}
实际效果
这里已经完成了,Jenkins 返回构建结果到 Gitlab 上的配置,显示效果可以在 Gitlab 中查看,效果如下所示:
也可以在提交历史上查看流水线的构建结果。
GItlab 提交代码触发构建
进入 Jenkins 流水线,选择 Build when a change is pushed to Gitlab. XXXXXXX 。
点击高级,复制 Secret token。如果需要限制触发流水线运行的分支,可以按需修改 Allowed braches 。
打开需要自动触发的 Gitlab 库,配置 webhook 。
完成添加后,可以进行事件测试,如果返回值为 200 ,则配置成功。
实际效果
其他
由于 Gitlab 10.6 版本后,为了安全,默认不允许向本地网络发送 webhook 请求,否则添加 webhook 会报错,报错信息为:Url is blocked: Requests to the local network are not allowed
解决方法为,使用管理员账号打开本地网络的 webhook 请求。
网友评论