Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins-无法从Jenkins文件运行管道_Jenkins - Fatal编程技术网

Jenkins-无法从Jenkins文件运行管道

Jenkins-无法从Jenkins文件运行管道,jenkins,Jenkins,我有一个Jenkins文件,其中构建和测试在同一个从机上运行。 我的要求是构建必须在一个从机(比如A)上,测试必须在另一个从机(比如B)上运行 我刚刚设置了从节点B,我可以在Jenkins->Manage nodes中看到我的从节点A和B。 问题是构建阶段工作成功,但我的准备测试和测试阶段没有在从属B上执行 以下是出现的问题: 1.)在构建阶段成功后,我收到以下错误: “java.lang.NoSuchMethodError:在步骤中找不到这样的DSL方法'agent'[archive、bat、

我有一个Jenkins文件,其中构建和测试在同一个从机上运行。 我的要求是构建必须在一个从机(比如A)上,测试必须在另一个从机(比如B)上运行

我刚刚设置了从节点B,我可以在Jenkins->Manage nodes中看到我的从节点A和B。 问题是构建阶段工作成功,但我的准备测试和测试阶段没有在从属B上执行

以下是出现的问题:

1.)在构建阶段成功后,我收到以下错误:

“java.lang.NoSuchMethodError:在步骤中找不到这样的DSL方法'agent'[archive、bat、build、catchError、checkout、deleteDir、dir、dockerFingerprintFrom、dockerFingerprintRun、dockerNode、echo、EmailText、emailextrecipients、emailextrecipients、envVarsForTool、error、fileExists、findBuildScans、getContext、git、input、isUnix、junit、libraryResource、load、lock、mail、milestone、node、parallel、powershell、properties、publishHTML,pwd,readFile,readTrusted,resolveScm,retry,script,sh,sleep,stage,stash,step,svn,timeout,timestaps,tm,tool,unarchive,unstash,unarchive,validatedclarativeepeline,waitill,warnError,withContext,withCredentials,withDockerContainer,withDockerRegistry,withDockerServer,withEnv,wrapp,writeFile,ws]或符号[all、allOf、always、ant、antFromApache、antOutcome、antTarget、any、anyOf、Apitonk、architecture、archiveArtifacts、artifactManager、attach、authorizationMatrix、batchFile、booleanParam、branch、BrokenBuildProspects、BrokenTestsSpects、buildButton、buildDiscarder、buildTimestamp、buildTimestamp java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java 运行(Thread.java:748) 完成:失败 "

2.)没有看到我的分支的“准备测试”和“测试”阶段,而我可以看到与构建相关的阶段

随附我的文件代码:

pipeline {
    agent none
    options {
        skipDefaultCheckout true
    }
    stages {
        stage('build') {
            agent {
                docker {
                    image 'XYZ'
                    args '-v /etc/localtime:/etc/localtime:ro'
                }
            }
            options { skipDefaultCheckout(true) }
            steps {
                echo '########################################## Building #########################################'
                // trigger the build
                sh 'scm-src/build.sh all-projects'
            }
        }   

   }
} 


pipeline {
    agent {
        label 'laptop-hp'
    }
    stages {
        stage('prepare_test') {
              agent {
                 docker {
                    image 'ABC'
                    args '-v /home/jenkins/.ssh/:/home/jenkins/.ssh:ro -v /etc/localtime:/etc/localtime:ro'
                }
               }
            options { skipDefaultCheckout(true) }
            steps {
                echo '####################################### Prepare Test Environment ############################'
                sh 'scm-src/test.sh prepare'
            }
         }


        stage('test') {
            agent {
              docker {
                     image 'ABC'
                     args '-v /home/jenkins/.ssh/:/home/jenkins/.ssh:ro -v /etc/localtime:/etc/localtime:ro'
                 }
               }

            options { skipDefaultCheckout(true) }
            steps {
               echo '########################################## Testing ##########################################'
                sh 'scm-src/test.sh run'
            }
        }
    }  
}


我的从机B的名称是“笔记本电脑hp”,如Jenkins文件所示

Jenkinsfile是否有问题,或者我是否错过了从属B上的一些设置

问候
kdy

一个数据库中不能有多个
管道{}
块。正确的语法是在构建阶段之后立即附加测试阶段。然后为
docker{}中的每个阶段定义参数
标签
在相应的从机上运行。另外,在管道的顶层添加一次选项
skipDefaultCheckout true
就足够了

您的管道现在应该如下所示:

pipeline {
    agent none
    options {
        skipDefaultCheckout true
    }
    stages {
        stage('build') {
            agent {
                docker {
                    image 'XYZ'
                    label 'slave-A'
                    args '-v /etc/localtime:/etc/localtime:ro'
                }
            }
            steps {
                echo '########################################## Building #########################################'
                // trigger the build
                sh 'scm-src/build.sh all-projects'
            }
        }   
        stage('prepare_test') {
            agent {
                docker {
                    image 'ABC'
                    label 'laptop-hp'
                    args '-v /home/jenkins/.ssh/:/home/jenkins/.ssh:ro -v /etc/localtime:/etc/localtime:ro'
                }
            }
            steps {
                echo '####################################### Prepare Test Environment ############################'
                sh 'scm-src/test.sh prepare'
            }
        }
        stage('test') {
            agent {
                docker {
                    image 'ABC'
                    label 'laptop-hp'
                    args '-v /home/jenkins/.ssh/:/home/jenkins/.ssh:ro -v /etc/localtime:/etc/localtime:ro'
                }
            }
            steps {
                echo '########################################## Testing ##########################################'
                sh 'scm-src/test.sh run'
            }
        }
    }
}