不同分支上建筑物的Jenkins构型

cuxqih21  于 2022-12-03  发布在  Jenkins
关注(0)|答案(1)|浏览(145)

我正在做代码审查与gerritcodereview,我需要创建一个Jenkins管道CI,光盘。我正在使用的事件触发的gerrit触发器插件。
我想得到这个:

已创建PastchSet

  • 在引用/更改///**分支上开始生成
  • 将结果报告给gerrit进行代码评审
    变更合并(到开发中)或参考更新(开发)
  • 在源/开发人员分支上开始构建
  • 将代码部署到内部服务器
    参考更新(主)
  • 在原始/主分支上开始构建
  • 将代码部署到外部服务器

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

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

csbfibhn1#

您应该创建多分支管道,并在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'
            }
        }
    }
}

生成和测试阶段将针对changeRequest中任何更改运行,任何新更改或补丁程序集将触发此阶段针对合并到开发中任何更改将触发部署阶段一个分支可以有多个阶段,它们将按顺序执行

相关问题