繁体   English   中英

jenkins 在不同分支上构建的配置

[英]jenkins configuration for building on different branches

我正在使用 gerritcodereview 进行代码审查,我需要为 CI、CD 创建一个 jenkins 管道。 我正在使用由 gerrit 触发器插件触发的事件。

我想获得这个:

PastchSet 创建

  • 在 refs/changes/**/**/** 分支上开始构建
  • 将结果报告给gerrit进行代码审查

更改合并(开发)或参考更新(开发)

  • 在 origin/develop 分支上构建开始
  • 部署代码到内部服务器

参考更新(主)

  • 在 origin/master 分支上构建
  • 部署代码到外部服务器

我没有找到好的答案的问题:

  • 我需要使用简单的管道还是多分支管道?
  • 如何在正确的分支上开始构建?
  • 如何使用 Jenkinsfile 而不是使用配置页面来检出正确的分支?

您应该创建多分支管道,并在 Jenkinsfile 中编写您的声明/脚本管道

示例管道

pipeline {
    agent any

    tools {
        maven 'maven-3.3.6'
        jdk 'jdk-11'
    }

    options {
        buildDiscarder(logRotator(numToKeepStr: '5'))
    }

    stages {
        stage('Build/Test') {
            when {
                changeRequest()
            }
            steps {
                sh "mvn clean verify"
            }
            post {
                success {
                    gerritReview labels: [Verified: 1], message: "Successful build, ${env.RUN_DISPLAY_URL}."
                }
                unstable {
                    gerritReview labels: [Verified: 0], message: "Unstable build, ${env.RUN_DISPLAY_URL}"
                }
                failure {
                    gerritReview labels: [Verified: -1], message: "Failed build, ${env.RUN_DISPLAY_URL}"
                }
            }
        }


        stage('Deploy') {
            when {
                branch 'develop'
            }
            steps {
                sh 'mvn deploy'
            }
        }
    }
}

stage build&test 将针对 changeRequest 中的任何更改运行,任何新更改或补丁集将触发此阶段 stage deploy 将针对合并到 develop 的任何更改触发。 一个分支可以有多个阶段,它们将按顺序执行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM