每当我使用sh在jenkins管道步骤中调用shell时,都会产生错误尝试执行需要节点上下文的步骤

时间:2019-07-08 15:36:05

标签: jenkins-pipeline

我正在创建jenkins管道,在其中定义代理程序的阶段和步骤。在使用sh的步骤中,它会引发错误:

  

错误:尝试在指定“无代理人”时执行需要节点上下文的步骤。使用“无代理”

时,请务必指定自己的“节点{...}”块

以下引发错误:

pipeline {
    agent none
    stages {

        stage('Build2') {
            steps {
               sh 'echo "hello world" '
            }  
        }
    }
}

但是当我使用时:

pipeline {
    agent none
    stages {

        stage('Build2') {
            steps {
               echo "hello world"
            }    
        }
    }
}

这很好

我使用其他命令使用sh并得到相同的错误。

我不确定为什么调用sh需要节点上下文。

1 个答案:

答案 0 :(得分:0)

首先foreign_field步骤和echo步骤非常不同。

第二,为什么您要sh然后在假定正在执行的计算机上运行特定操作系统的情况下运行?

其中一种解决方案是使用agent none

另一件事,这就是詹金斯文档中提到的agent any

  

在管道块的顶层应用时,不会为整个管道运行分配全局代理,并且每个阶段节都需要包含其自己的代理节。例如:agent none