詹金斯后期构建步骤和操作 - 有什么区别

2023-12-31

听起来可能是一个非常基本的问题 - 但我找不到任何文章可以解释为什么 Jenkins 提供构建后步骤和操作。

在詹金斯 - 我确实看到构建后步骤与操作中的选项是不同的,但是

  • 执行顺序是什么?
  • 我们什么时候应该使用哪个选项?
  • 最佳实践是什么?

乍一看,这是 Jenkins 的工作流程(没有额外的插件)

  1. [如有需要,按需定制]安装工具,(如JDK、Ant、Maven等).
  2. [选修的]执行 SCM 检验,(例如 SVN 或 Git)。
  3. 执行构建步骤,(如构建Ant项目、编译代码等)。
  4. [选修的]执行构建后步骤,(例如存档工件、发送电子邮件等)。

有些插件允许在安装工具后立即执行操作,例如SCM 前步骤 https://wiki.jenkins-ci.org/display/JENKINS/pre-scm-buildstep and 环境注入 https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin插件。还有一些插件可以添加更多可能的构建步骤和构建后步骤。

构建和构建后步骤之间的差异部分基于逻辑分离,部分基于工作流配置。

从逻辑角度来看,当您构建/编译项目时,这是“构建”步骤,而当您归档工件时,因为这是在构建之后发生的,所以这是“构建后”步骤。

但还有工作流配置注意事项,它与以下因素有关:

  • "When构建会失败吗”,并且
  • "构建状态“(例如成功、不稳定、失败)

当有multiple“构建”步骤,詹金斯:

  • 执行第一个构建步骤
  • Checks for exit code of the first build step
    1. 如果退出代码是0(成功),Jenkins 继续下一个构建步骤(如果有)
    2. 如果退出代码不是0(失败),詹金斯标记构建为FAILED, and 继续到构建后操作。
  • Jenkins 执行构建后步骤(无论构建是否被标记为FAILED or not)

所以,换句话说:

  • 如果构建步骤成功,Jenkins 可以执行以下构建步骤(如果有)。
  • 如果构建步骤失败,Jenkins 将不会执行以下构建步骤。
  • If all构建步骤成功,Jenkins 将标记构建SUCCESS.
  • If any构建步骤失败,Jenkins 将标记构建FAILED.
  • 无论什么情况都会执行构建后步骤构建状态 (FAILED或不)。

从技术上讲,所有构建后步骤都应始终执行,但实际上,如果构建后步骤出现异常,则作业永远不会完成,这可能会导致某些构建后步骤无法执行。

此外,通常构建后步骤不会改变构建状态,但有一些是专门为此设计的(例如,在归档工件时,您可以选择标记构建FAILED如果未找到所有工件,即使在所有构建步骤之后,构建已被标记SUCCESS)

因此,了解上述内容后,您有责任设计您的作业,并决定需要依次执行哪些步骤,前提是前一个步骤成功,并且会影响构建状态(即构建步骤),以及需要执行哪些步骤无论结果如何(即构建后步骤),始终如此。

EDIT:

由于我不断收到评论,这里是 Jenkins (Windows) ver.1.634 的全新全新安装的屏幕截图(如评论中所述)。

在屏幕截图上,请注意以下事项:

  • 新的自由式项目。
  • 滚动条一直向下,页面上没有任何内容。
  • 版本 1.634(根据要求)。
  • Build部分与添加构建步骤落下。
  • 构建后操作部分与添加构建后操作落下。

因此,重申我之前的评论:

只有一个构建后“任何东西”

无论你想称之为“步骤”还是“行动”(詹金斯多年来改变了标签)。

自定义插件可以添加很多额外功能,但对于全新安装来说,基本工作正如我所描述的那样。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

詹金斯后期构建步骤和操作 - 有什么区别 的相关文章

随机推荐