背景:为了能够提升代码质量,减少测试同学的工作,打算在开发请求合并分支的时候进行代码检测,如果检测不通过,审核人无法点击merge合并代码
环境准备:
jenkins : 2.346.3
gitlab : 15.1.0
项目分支准备: dev 、main (研发开发好代码上传到dev, 然后申请合并到main)
1、配置jenkins
(1) 安装gitlab插件
(2) 创建流水线,配置触发器

(3)编写jenkinsfile
pipeline {
agent any
stages {
stage('Checkout') {
steps {
script{
checkout([$class: 'GitSCM', branches: [[name: '*/mainn']], extensions: [], userRemoteConfigs: [[credentialsId: 'gitlab-root', url: 'http://192.168.100.205:9000/gitlab-instance-c62a5228/rocket.git']]])
}
}
}
stage('check') {
steps {
sh '''
echo "check codes !!!!!!!!!!!!!!!"
'''
}
}
}
//updateGitlabCommitStatus会将构建状态传到gitlab
post {
failure {
updateGitlabCommitStatus name: 'build', state: 'failed'
}
success {
updateGitlabCommitStatus name: 'build', state: 'success'
}
}
}
2、配置gitlab
(1) 配置项目webhook

(2) 配置 如果流水线时间失败无法合并代码

3、测试
修改dev分支代码,然后发起请求合并至main
会观察到jenkins有流水线执行
然后观察request merge

如果流水线构建失败,则处理人无法合并代码,无法显示merge按钮

本文介绍如何通过集成Jenkins与GitLab实现自动化代码检查流程。具体步骤包括配置Jenkins与GitLab插件、设置流水线触发条件及编写Jenkinsfile等。一旦流水线构建失败,将阻止代码合并。
982

被折叠的 条评论
为什么被折叠?



