簡體   English   中英

通過 Jenkins 聲明式管道語法並行運行多個作業

[英]Run multiple Jobs in parallel via Jenkins Declarative pipeline syntax

我想使用聲明性語法從單個管道並行執行多個作業。 這可以嗎!! 我知道我們可以使用“parallel”參數創建一個聲明性並行管道。

pipeline {

    agent any
    parallel{
    stages {
        stage('Test1') {
            steps {
                sh 'pip install -r requirements.txt'
            }
        }
        
        stage('Test2') {
            steps {
                echo 'Stage 2'
                sh 'behave -f allure_behave.formatter:AllureFormatter -o allure-results features/scenarios/**/*.feature'
            }
        }
        
        stage('Test3') {
           steps {
                script {
                    allure([
                        includeProperties: false,
                        jdk: '',
                        properties: [],
                        reportBuildPolicy: 'ALWAYS',
                        results: [[path: 'allure-results']]
                    ])
                }
            }
        }
    }
    }
}

下圖將向您展示我想要的正確流程。 任何方法如何做到這一點?

// Pipeline project: SO-69680107-1-parallel-downstream-jobs
pipeline {
    agent any
    stages {
        stage('Clean Workspace') {
            steps {
                cleanWs()
            }
        }
        stage('Parallel stage') {
            parallel {
                stage('Stage 2') {
                    steps {
                        build 'SO-69680107-2'
                        copyFiles( "$WORKSPACE\\..\\SO-69680107-2", "$WORKSPACE")
                    }
                }
                stage('Stage 3') {
                    steps {
                        build 'SO-69680107-3'
                        copyFiles( "$WORKSPACE\\..\\SO-69680107-3", "$WORKSPACE")
                    }
                }
                stage('Stage k') {
                    steps {
                        build 'SO-69680107-k'
                        copyFiles( "$WORKSPACE\\..\\SO-69680107-k", "$WORKSPACE")
                    }
                }
            } // parallel
        }
    }
}

def copyFiles( downstreamWkspc, upstreamWkspc ) {
    dir("$downstreamWkspc") { 
        bat """
            @set prompt=\$g\$s
            dir
            xcopy /f *.* \"$upstreamWkspc\\\"
            dir \"$upstreamWkspc\"
        """
    }
}

下游項目模板SO-69680107-2SO-69680107-3SO-69680107-k

// Pipeline project: SO-69680107-X
pipeline {
    agent any
    stages {
        stage('Stage X') {
            steps {
                sh 'set +x; echo "Step X" | tee SO-69680107-X.log; date; sleep 3; date'
            }
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM