在管道阶段之间更改节点

min*_*rse 3 jenkins jenkins-plugins jenkins-pipeline

在我的阶段中,我正在其中一个阶段中从主节点更改为从节点

pipeline {
  agent any
  stages {
    stage('Install Deps...') {
      steps {
        echo 'Do something here'
      }
    }
    stage('Build') {
      steps {
        echo 'Build stuff here...'
        stash includes: 'dist/**/*', name: 'builtSources'
        node('Protractor') {
          dir('/some-dir/deploy') {
            unstash 'builtSources'
          }
        }
      }
    }
    stage('Tests') {
      steps {
        parallel (
          "Chrome": {
            echo 'Chrome testing here...'
          }
        )
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我从Jenkins的控制台输出中可以看到,在第一阶段的开始它正确地说了“在master上运行”,而在第二阶段就变成了“在Protractor上运行”。当第三个“测试”阶段开始时,我看不到节点在控制台输出中变回主节点,这是预期的行为吗?

除非应使用node()块明确告知,否则阶段是否应在主服务器上运行?

小智 6

您有一个嵌套节点。这应该等效于:

node {
    //run stuff on any node
    node('agent'){
        //run stuff on agent; other node is still busy
    }
    //return to original node; no message since it is still open
}
//outside of all nodes
Run Code Online (Sandbox Code Playgroud)