jenkins - Jenkins 管道中的节点、阶段和步骤之间有什么区别?

标签 jenkins jenkins-pipeline

我试图了解如何构建我的 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/*");
}

最佳答案

nodestagestep 的概念不同:

  • node 指定发生某事的地点。您给出一个名称或标签,Jenkins 就会在那里运行该 block 。

  • stage 将脚本构建为高级序列。阶段在“管道阶段” View 中显示为列,其中包含平均阶段时间和阶段结果的颜色。

  • step 是指定将发生什么的一种方法。 sh 具有类似的性质,但它是一种不同的操作。 (您还可以对已指定为项目的内容使用 build。)

因此,step 可以驻留在 node 中(如果不存在,它们将在 master 上执行)和 node s 和 step 可以通过 stage 构建成一个整体序列。

关于jenkins - Jenkins 管道中的节点、阶段和步骤之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39549215/

相关文章:

jenkins - 在 jenkinsfile 中使用主动选择 react 参数

amazon-ec2 - 在 Amazon Linux 上安装和管理 Jenkins

amazon-web-services - 在Jenkins中的Docker容器中运行命令

github - Jenkins 民意调查与 webhook

jenkins - 如何使用 Jenkins 声明式管道修改环境变量

svn - 如何在 Jenkins 中获取最新的 SVN 标签

jenkins - 无法使用 FileInputStream 从 Jenkins 管道打开文件

jenkinsfile 无法识别@Grab

amazon-web-services - AWS CloudFormation 输出到 JenkinsFile 管道

jenkins - 如何传递选择参数以调用 Jenkins 管道内的作业