可能听起来像一个非常基本的问题 - 但我找不到任何解释Jenkins为什么提供构建后步骤以及行动的文章.
在詹金斯 - 我确实看到后期制作步骤与行动的选项不同,但是
执行的顺序是什么?
我们应该何时使用哪个选项?
什么是最佳做法?
Slav.. 30
一目了然,这是詹金斯的工作流程(没有额外的插件)
[根据需要,如果需要]安装工具,(如JDK,Ant,Maven等).
[可选]执行SCM签出(例如SVN或Git).
执行构建步骤(例如构建Ant项目,编译代码等).
[可选]执行构建后步骤(例如存档工件,发送电子邮件等).
有些插件允许在安装Tools之后立即执行操作,例如Pre-SCM-step和EnvInject插件.还有一些插件可以添加更多可能的构建步骤和构建后步骤.
构建和构建后步骤之间的区别部分基于逻辑分离,部分基于工作流配置.
从逻辑角度来看,当您构建/编译项目时,这是一个"构建"步骤,而当您存档工件时,由于这是在构建之后发生的,这是一个"构建后"步骤.
但是还有工作流配置注意事项,它与以下内容有关:
" 什么时候构建失败",并且
" 构建状态 "(例如成功,不稳定,失败)
当有多个 "Build"步骤时,Jenkins:
执行第一个构建步骤
检查第一个构建步骤的退出代码
如果退出代码是0
(成功),Jenkins继续下一个构建步骤(如果有的话)
如果退出代码不是0
(失败),Jenkins将构建标记为FAILED
,并继续进行Post-build操作.
Jenkins执行Post-build步骤(无论是否标记了构建FAILED
)
所以,换句话说:
如果构建步骤成功,Jenkins可以执行以下构建步骤(如果有).
如果构建步骤失败,Jenkins将不会执行以下构建步骤.
如果所有构建步骤都成功,Jenkins将标记构建SUCCESS
.
如果任何构建步骤失败,Jenkins将标记构建FAILED
.
无论构建状态(FAILED
或不是),都会执行构建后步骤.
从技术上讲,所有后期构建步骤都应该始终执行,但是在实践中,如果构建后步骤异常,则作业永远不会完成,这可能导致某些构建后步骤未执行.
此外,通常构建后的步骤不会更改构建状态,但有一些是专门为此而设计的(例如,当存档工件时,FAILED
如果找不到所有工件,您可以选择标记构建,即使毕竟构建步骤,构建标记SUCCESS
)
因此,了解上述情况后,您有责任设计自己的工作,并决定一个接一个地执行哪些步骤,只有在之前成功的情况下才会执行,并且会影响构建状态(即构建步骤),以及需要执行哪些步骤无论结果如何(即构建后的步骤).
编辑:由于我不断收到评论,这里是Jenkins(Windows)ver.1.634的全新干净安装的截图(如评论中所述).
在屏幕截图中,请注意以下内容:
新的自由式项目.
滚动条一直向下,页面上没有更多内容.
版本1.634(根据要求).
使用添加构建步骤下拉列表构建部分.
"构建后操作"部分,其中包含" 添加构建后操作"下拉列表.
所以,重新重复我之前的评论:
只有一个后期构建"任何东西"
是否要将其称为"步骤"或"行动"(詹金斯多年来改变了标签).
自定义插件可以添加许多附加功能,但是对于干净的安装,基本的工作就像我所描述的那样.