如何在Jenkins文件中声明多个代理,然后在后续阶段中引用它们?

时间:2018-07-03 13:40:35

标签: jenkins jenkins-pipeline jenkins-declarative-pipeline

我正在尝试运行包含多个代理的jenkins文件,但是遇到了错误。这是我的詹金斯文件的一个片段:

pipeline {
    agent {
        docker {
            label 'agentAAA'
            ...
        }
        node {
            label 'agentBBB'
            ...
        }
    }
    ...
    stages {
        stage('to run on AAA') {
            agent {
                label 'agentAAA'
            }
            ...
        }
        stage('to run on BBB') {
            agent {
                label 'agentBBB'
            }
            ...
        }
        stage('to run on BBB') {
            agent {
                label 'agentBBB'
            }
            ...
        }

我遇到这些错误:

  • 每个座席部分仅允许一种座席类型
  • 未指定代理类型。必须是[any,docker,dockerfile,label,none]之一

我在文档中找不到任何有关如何引用先前声明的代理的示例。我看到了如何在每个阶段声明代理,但是最后我在文件中多次重复声明。

1 个答案:

答案 0 :(得分:1)

您需要为整个管道将agent指定为none,然后可以为每个阶段明确指定agent,如以下示例所示。根据需要填充详细信息。

pipeline {
    agent none
    stages {

stage ('Stage-1'){
   agent {label 'agent-1'}
    steps{
        script{
        }
    }
   }   

stage ('Stage-2'){
   agent {label 'agent-2'}
    steps{
        script{
        }
    }
    }
}
}

请参阅链接以获取更多详细信息-https://jenkins.io/doc/book/pipeline/jenkinsfile/#using-multiple-agents