簡體   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