我正在设置jenkins项目的*nix系统,有以下流程。
我是否必须将所有这些创建为一个单一的工作,然后在项目中组合在一起。为此,我应该使用管道插件还是多任务插件?如果我也可以在任何时候独立启动这些步骤,比如“签出和编译”,看看构建是否稳定,或者not.these步骤大多是顺序的,但并不总是稳定的,那就更好了。你能帮我轻松地管理詹金斯的工作流程吗?
发布于 2013-12-16 01:46:42
首先,Jenkins将监视您的Subversion存储库,并在检测到有人对该特定Subversion URL进行提交时立即启动该作业。它还将处理签出和/或更新,因此已经处理了步骤#1。
在构建步骤中,Jenkins可以执行多个构建步骤,包括用Ant编译(这是一个Java项目吗?如果没有,为什么要使用Ant?)。运行其他构建和shell脚本,然后检查这些脚本的退出状态,并将构建声明为成功或失败。可以为您处理步骤2-5。
当然,有各种各样的插件可以用于FTP文件,运行构建后的shell脚本等。例如,如果您有编译代码的位置(比如从Java JAR文件中获取),您可以在构建后的步骤中这样做。
构建后步骤的优点是它可以处理Ant构建文件中可能没有的内容(例如FTP步骤或标记构建)。构建后的步骤可以从单元测试、代码风格插件(如Findbug、Checkstyle、JavaDoc生成、PMD等)生成图表。
构建和构建后步骤的问题是,如果有任何一个失败,您的构建将被标记为失败。这可能不是你想要的。
在这种情况下,您可以将构建分成几个组件。例如,一个组件编译并构建DSL。另一个则将DSL推到环境中。这样,您的构建就可以成功,但是我们的构建引发的第二项工作--将DSL推入环境--可以标记为单独的失败。
您也可以使用推广插件。此插件的优点是允许您选择特定的构建。例如,将DSL推送到环境中可能是一个提升步骤。当您找到您喜欢的构建时,可以将DSL推送到环境中。我们使用Ant和Ivy和Maven来生成jars。我使用的推广插件有两件事。当构建成功完成时,我通过一个升级插件作业将该jar发布为快照,每当构建成功时,该插件就会触发。当开发人员对jar很满意时,他会用另一个Promotion作业手动提升jar,它将把jar发布到我们的发布存储库中,所有其他项目都将使用jar。
基本上,使用Jenkins没有正确的答案。您可以将所有步骤放入单个构建过程(可以运行数十个构建系统),也可以将构建划分为多个构建,这些构建将一个接一个地触发。(您可以使用复制伪插件将构建在一个构建中的内容复制到另一个构建中。)或者,您可以使用“促销插件”来选择要推入环境的构建。
幸运的是,Jenkins易于设置和使用,您将很快掌握它的诀窍。你可以尝试一种方式,然后尝试另一种方式,看看哪种方式最有效。
https://stackoverflow.com/questions/20599397
复制相似问题