听起来可能是一个非常基本的问题 - 但我找不到任何文章可以解释为什么 Jenkins 提供构建后步骤和操作。
在詹金斯 - 我确实看到构建后步骤与操作中的选项是不同的,但是
- 执行顺序是什么?
- 我们什么时候应该使用哪个选项?
- 最佳实践是什么?
乍一看,这是 Jenkins 的工作流程(没有额外的插件)
-
[如有需要,按需定制]安装工具,(如JDK、Ant、Maven等).
-
[选修的]执行 SCM 检验,(例如 SVN 或 Git)。
- 执行构建步骤,(如构建Ant项目、编译代码等)。
-
[选修的]执行构建后步骤,(例如存档工件、发送电子邮件等)。
有些插件允许在安装工具后立即执行操作,例如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
- 如果退出代码是
0
(成功),Jenkins 继续下一个构建步骤(如果有)
- 如果退出代码不是
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(使用前将#替换为@)