在轻量级执行程序上运行管道时,如何在Jenkins声明性管道中使用重量级帖子

时间:2019-01-10 15:47:37

标签: jenkins jenkins-pipeline

我有一个如下所示的管道:

pipeline {
  agent none
  stages {
    stage('Build') {
      agent any
      steps { ... }
    }
    stage('Tests') {
       parallel {
         stages { ...}
    }
 }
 post {
   cleanup {
      node {
         [something heavyweight]
      }
   }
}

我的问题是我无法确定如何包装[something heavyweight]。我试图通过在轻量级执行程序上运行管道来遵循最佳实践。我认为替代方案是在发布之前的一个阶段,该阶段由可以执行清除操作的重量级执行程序执行。但是然后,我需要某种方式来确定管道的总体通过/失败。 。 。直到您真正进入最后一篇文章之前,还不知道!

1 个答案:

答案 0 :(得分:0)

我当前的解决方案是在主服务器上创建一个带有标签“ PIPELINE”的Jenkins从站,将其配置为仅运行带有该标签的作业,然后将该标签与管道中的顶级代理一起使用。有点烦人,因为无论如何总会从主服务器上的轻量级执行程序开始这项工作,但是我认为这会使资源减少以执行管道,同时保留了真正的重量级执行程序。

pipeline {
  agent { label 'PIPELINE' }
  stages {
    stage('Build') {
      agent any
      steps { ... }
    }
    stage('Tests') {
       parallel {
         stages { ...}
    }
 }
 post {
   cleanup {
      node {
         [something heavyweight]
      }
   }
}