2

我正在尝试运行一个包含多个代理的 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] 之一

我在文档中找不到任何有关如何引用先前声明的代理的示例。我看到了如何在每个单独的阶段声明代理,但最终我的文件中会出现许多重复的声明。

4

1 回答 1

4

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

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

于 2018-07-04T05:50:44.933 回答