【jenkins】gitlab配置MR jenkins流水线门禁
1. 新建流水线项目
2. 配置jenkins流水线项目触发方式为Opened Merge Request Events
配置目标分支和生成token
3. gitlab添加jenkins项目的webhook
强制拦截配置
4. 配置流水线
pipeline { agent { node { // 节点名称 label 'node-1' customWorkspace "${env.JOB_NAME}/${env.BUILD_NUMBER}" } } options { gitLabConnection('gitlab') } stages { stage('PreEnv') { steps { script { RECEIVER = RECEIVER } sh 'java -version' } } stage('Checkout') { steps { checkout changelog: true, 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}" ]], extensions: [[ $class: 'RelativeTargetDirectory', relativeTargetDir: 'ningbo-port-cloud-platform' ]], submoduleCfg: [], userRemoteConfigs: [[ url: "${env.gitlabSourceRepoURL}" ]] ] } } stage('Build') { steps { // TODO UnitTest echo 'start Build ......' } } } post { success { send_email('Succeed', "$RECEIVER") updateGitlabCommitStatus(name: 'build', state: 'success') } failure { send_email('Failed', "$RECEIVER") updateGitlabCommitStatus(name: 'build', state: 'failed') addGitLabMRComment comment: "构建日志地址:${env.BUILD_URL}console" } unstable { send_email('unstable', "$RECEIVER") updateGitlabCommitStatus(name: 'build', state: 'success') addGitLabMRComment comment: "构建日志地址:${env.BUILD_URL}console" } aborted { send_email('Aborted', "$RECEIVER") updateGitlabCommitStatus(name: 'build', state: 'failed') } } } def send_email(String result, String receiver) { emailext ( subject: "Build: ' + $result", body: '$DEFAULT_CONTENT', to: "$receiver" ) }
5. 测试, 通过自己的分支向master分支提交MR
参考链接:https://blog.csdn.net/nklinsirui/article/details/100521145
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?