我试图了解如何构建我的 Jenkins 2.7 pipeline Groovy 脚本。我已通读 pipeline tutorial ,但觉得它可以在这些主题上进行更多扩展。
我可以理解,一个管道可以有许多阶段
,每个阶段
可以有许多步骤
。但是 step();
和 stage
内的方法调用有什么区别,比如 sh([script: "echo hello"]);
。 节点
应该位于stage
内部还是外部?作业的整体属性应该位于节点
内部还是外部?
这是我当前在 ubuntu 主节点上的结构:
#!/usr/bin/env groovy
node('master') {
properties([
[$class: 'BuildDiscarderProperty', strategy: [$class: 'LogRotator', numToKeepStr: '10']]
]);
stage 'Checkout'
checkout scm
stage 'Build'
sh([script: "make build"]);
archive("bin/*");
}
最佳答案
node
、stage
和 step
的概念不同:
node
指定发生某事的地点。您给出一个名称或标签,Jenkins 就会在那里运行该 block 。stage
将脚本构建为高级序列。阶段在“管道阶段” View 中显示为列,其中包含平均阶段时间和阶段结果的颜色。step
是指定将发生什么的一种方法。sh
具有类似的性质,但它是一种不同的操作。 (您还可以对已指定为项目的内容使用build
。)
因此,step
可以驻留在 node
中(如果不存在,它们将在 master 上执行)和 node
s 和 step
可以通过 stage
构建成一个整体序列。
关于jenkins - Jenkins 管道中的节点、阶段和步骤之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39549215/