背景:为了能够提升代码质量,减少测试同学的工作,打算在开发请求合并分支的时候进行代码检测,如果检测不通过,审核人无法点击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按钮
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐