Jenkins声明性pipline多奴隶

时间:2018-11-09 20:59:26

标签: docker jenkins jenkins-pipeline pipeline

我有一个包含多个阶段的管道,其中一些是并行的。到目前为止,我只有一个代码块来指示作业应该在哪里运行。

pipeline {
 triggers { pollSCM '0 0 * * 0' } 
 agent { dockerfile { label 'jenkins-slave'
                      filename 'Dockerfile'
                    }
       }
 stages{ 
  stage('1'){ 
   steps{ sh "blah" }
   } // stage
  } // stages
} // pipeline

我现在要做的是在另一个从属服务器上运行一个新阶段,而不是在docker中运行。

我尝试通过为该阶段添加一个agent语句来进行尝试,但似乎它试图在第二个从属服务器上使用docker容器来运行该阶段。

    stage('test new slave') {
     agent { node { label 'e2e-aws' } }
     steps {
      sh "ifconfig"
     } // steps
    } // stage

我收到以下错误消息 13:14:23未知标志:--workdir 13:14:23请参阅'docker exec --help'。

我尝试将管道的代理设置为none,并为每个步骤使用代理,但遇到了2个问题 1.我的帖子操作显示错误 2.具有并行阶段的阶段也有错误。

我找不到与我正在做的事类似的例子。

1 个答案:

答案 0 :(得分:0)

您可以使用节点块来选择要运行特定阶段的节点。

pipeline {
agent any
stages {
    stage('Init') {
        steps {
            node('master'){
                echo "Run inside a MASTER"
            }
        }
    }
}
}