gitLab & jenkins 配置MR构建门禁

  1. 新建流水线项目
    在这里插入图片描述

  2. 配置jenkins流水线项目触发方式为Opened Merge Request Events在这里插入图片描述

配置目标分支和生成token

在这里插入图片描述  
3. gitlab添加jenkins项目的webhook

在这里插入图片描述
在这里插入图片描述
强制拦截配置
在这里插入图片描述
4. 配置流水线

pipeline {
    agent {
        node {
            // 节点名称
            label '10.8.100.11'
            customWorkspace "${env.JOB_NAME}/${env.BUILD_NUMBER}"
        }
    }
    options {
        timestamps()
        gitLabConnection('gitLab')
    }
    stages {
        stage('PreEnv') {
            steps {
                sh "env"
                sh 'java -version'
            }
        }
        stage('Checkout') {
            steps {
                updateGitlabCommitStatus name: 'build', state: 'running'
                checkout changelog: false, poll: true, scm: [
                  $class: 'GitSCM',
                  branches: [[name: "origin/${env.gitlabSourceBranch}"]],
                  doGenerateSubmoduleConfigurations: false,
                  extensions: [[
                    $class: 'PreBuildMerge',
                    options: [
                      fastForwardMode: 'FF',
                      mergeRemote: 'origin',
                      mergeStrategy: 'default',
                      mergeTarget: "${env.gitlabTargetBranch}"
                    ]
                  ]],
                  extensions: [[
                    $class: 'UserIdentity', 
                    email: "${env.gitlabUserEmail}", 
                    name: "${env.gitlabUserName}"
                  ]],
                  submoduleCfg: [],
                  userRemoteConfigs: [[
                    url: "${env.gitlabSourceRepoURL}"
                  ]]
                ]
                sh 'git pull git@ip.端口/xxxxx/xxxxxxxx.git dev' 
            }
        }
        stage('Build') { 
            steps {
                sh 'cd 编译目录/; mvn clean install -Dmaven.test.skip=true'
				// 清除工作区
                cleanWs()
				// 删除工作目录
                dir("${env.WORKSPACE}@tmp") {   
                    deleteDir()
                }
            }
        }
    }
	
    post {
        success {
            updateGitlabCommitStatus name: 'build', state: 'success'
        }
        failure {
            updateGitlabCommitStatus name: 'build', state: 'failed'
            addGitLabMRComment comment: "构建日志地址:${env.BUILD_URL}console"
        }
        unstable {
            updateGitlabCommitStatus name: 'build', state: 'success'
            addGitLabMRComment comment: "构建日志地址:${env.BUILD_URL}console"
        }
        aborted {
            updateGitlabCommitStatus name: 'build', state: 'failed'
        }
    }
}

复制代码
5. 测试, 通过自己的分支向master分支提交MR

转载:https://www.cnblogs.com/fireblackman/p/15893652.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值