Jenkins 管道:代理与节点?

Jenkins pipeline: agent vs node?

jenkins 管道中的 agentnode 有什么区别?

我找到了那些定义:

因此两者都用于执行流水线步骤。但是什么时候使用哪一个呢?

简单的答案是,Agent 用于 declarative 管道,node 用于 脚本 管道。

在声明性管道中,agent 指令用于指定要在哪个 agent/slave 上执行 job/task。这个指令只允许你指定任务执行的位置,哪个agent,slave,label或者docker image.

另一方面,在脚本化管道中,节点步骤可用于在特定代理、标签、从站上执行script/step。 node 步骤可选地采用代理或标签名称,然后是包含要在该节点上执行的代码的闭包。

声明式和脚本化管道(根据评论编辑):

  • declarative pipelines是管道DSL的新扩展(它基本上是一个只有一个步骤的管道脚本,一个带有参数的管道步骤(称为指令),这些指令应该遵循特定的语法。要点这种新格式的一个优点是它更严格,因此对于管道新手来说应该更容易,允许图形编辑等等。
  • scripted pipelines 是高级要求的回退。