jenkins 如何通过参数顺序执行多个作业?

icnyk63a  于 2022-11-02  发布在  Jenkins
关注(0)|答案(1)|浏览(206)

我有一个Jenkinsfile,我想在其中依次执行几个命令(不是并行)。类似于:

pipeline 
{
   stages
   {
        stage
        {
            steps
            { 
                sh "something PRODUCT1"
                sh "something PRODUCT2"
                sh "something PRODUCT3"
.
.
.

有没有更简单的语法,我可以在一个变量中定义所有的PRODUCTS,然后执行:

pipeline 
{
   PRODUCTS = [PRODUCT1, PRODUCT2, PRODUCT3]
   stages
   {
        stage
        {
            steps
            { 
                sh $PRODUCTS
.
.
.

pgpifvop

pgpifvop1#

没有OOB方法来迭代列表,但是你可以实现一些简单的东西。

pipeline {
    agent any

    stages {
        stage('Hello') {
            steps {
                echo 'Hello World'
                    script {
                        def PRODUCTS = ["PRODUCT1", "PRODUCT2", "PRODUCT3"]
                        PRODUCTS.each {
                            sh"echo ${it}"
                        }
                    }
            }
        }
    }
}

您甚至可以根据需要为每个产品创建一个阶段并按顺序执行。
下面是另一个使用Scripted Pipeline执行此操作的示例。

def PRODUCTS = ["PRODUCT1", "PRODUCT2", "PRODUCT3"]
PRODUCTS.each { prd ->
    node {
        stage("stage $prd"){
            echo 'Product $prd'
        }
    }
}

相关问题