• 研发merge请求合并代码触发检测(gitlab + jenkins)


    背景:为了能够提升代码质量,减少测试同学的工作,打算在开发请求合并分支的时候进行代码检测,如果检测不通过,审核人无法点击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'
          }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    2、配置gitlab
    (1) 配置项目webhook
    在这里插入图片描述
    (2) 配置 如果流水线时间失败无法合并代码
    在这里插入图片描述

    3、测试
    修改dev分支代码,然后发起请求合并至main

    会观察到jenkins有流水线执行

    然后观察request merge
    在这里插入图片描述

    如果流水线构建失败,则处理人无法合并代码,无法显示merge按钮
    在这里插入图片描述

  • 相关阅读:
    MySQL 数据库常用命令大全(完整版)
    LeetCode - 搜索二维矩阵
    一文了解VR全景拍摄设备如何选择,全景图片如何处理
    【Kubeadm搭建K8S集群】
    短视频矩阵源码
    git 记
    Vuex的使用,详细易懂
    X3E伺服转矩模式参数设置
    mybaits入门实验
    Redis架构之哨兵机制与集群
  • 原文地址:https://blog.csdn.net/litaimin/article/details/127693375