Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn Jenkins为多个任务设置_Svn_Unix_Jenkins - Fatal编程技术网

Svn Jenkins为多个任务设置

Svn Jenkins为多个任务设置,svn,unix,jenkins,Svn,Unix,Jenkins,我正在*nix系统上设置jenkins项目,该系统具有以下流程 从SVN的分支机构进行结帐 使用ANT从svn编译上述代码签出 创建DSL 选择dsl和环境服务器ip、端口 将DSL推送到选定的环境ip、端口 我是否必须将所有这些都作为一个工作创建,然后在项目中组合在一起。 我应该使用管道插件还是多任务插件?如果我也可以在任何时间点独立地启动这些步骤中的任何一个,比如签出和编译,看看构建是否稳定,那就更好了。 您能帮助我如何在jenkins中轻松管理此工作流吗?首先,jenkins将监视您的Su

我正在*nix系统上设置jenkins项目,该系统具有以下流程

从SVN的分支机构进行结帐 使用ANT从svn编译上述代码签出 创建DSL 选择dsl和环境服务器ip、端口 将DSL推送到选定的环境ip、端口 我是否必须将所有这些都作为一个工作创建,然后在项目中组合在一起。 我应该使用管道插件还是多任务插件?如果我也可以在任何时间点独立地启动这些步骤中的任何一个,比如签出和编译,看看构建是否稳定,那就更好了。
您能帮助我如何在jenkins中轻松管理此工作流吗?

首先,jenkins将监视您的Subversion存储库,并在检测到有人对该特定Subversion URL进行提交时立即停止作业。它还将处理签出和/或更新,因此这是已经处理的步骤1

在构建步骤中,Jenkins可以执行多个构建步骤,包括使用Ant编译。这是一个Java项目吗?如果没有,为什么要使用Ant?。运行其他构建和shell脚本,然后检查其中每个脚本的退出状态,并宣布构建成功或失败。这可以为您完成步骤2-5

当然,有各种各样的插件可用于FTP文件、运行构建后shell脚本等。例如,如果您有一个获取Java JAR文件等编译代码的位置,则可以在构建后步骤中执行此操作

构建后步骤的优点是,它可以处理Ant构建文件中可能没有的内容,例如FTP步骤或标记构建。构建后步骤可以从单元测试、编码风格插件(如Findbugs、Checkstyle、JavaDoc生成、PMD等)生成图表

生成和生成后步骤的问题是,如果任何一个步骤失败,您的生成将被标记为失败。这可能不是你想要的

在这种情况下,您可以将构建划分为几个组件。例如,一个组件编译并构建DSL。另一个将DSL推送到环境中。通过这种方式,您的构建可能会成功,但是由我们的构建触发的第二项工作——将DSL推入环境——可以被标记为单独的失败

你也可以使用推广插件。这个插件的优点是允许您选择特定的构建。例如,将DSL推送到环境中可能是一个提升步骤。当您找到自己喜欢的构建时,您将DSL推送到环境中。我们使用Ant和常春藤以及Maven制作罐子。我使用推广插件有两个目的。当一个构建成功完成时,我会通过一个升级插件作业将该jar发布为快照,每当一个构建成功时,该作业就会触发。当开发人员对jar感到满意时,他会使用另一个升级插件工作手动升级jar,该工作将jar发布到所有其他项目都将使用的发布库中

基本上,使用詹金斯没有正确的答案。您可以将所有步骤放在一个构建过程中,该过程可以运行几十个构建系统,或者将构建划分为多个构建,这些构建一个接一个地被触发。您可以使用将一个构建中构建的内容复制到另一个构建中。或者,您可以使用升级插件来选择要将哪些构建推送到您的环境中


幸运的是,Jenkins易于安装和使用,您将很快掌握其中的诀窍。您可以尝试一种方法,然后尝试另一种方法,看看哪种方法效果最好。

我没有使用管道插件,但听起来您可能会发现它很有用。查看文档,看起来它实际上对构建管道并没有多大作用——只是在一个屏幕上显示整个管道。它说,作为构建后操作标准Jenkins配置的一部分,您需要触发其他构建。而且,您可能仍然需要我上面提到的复制工件插件。因此,三个构建,将工件从一个复制到另一个,并触发下一个构建,作为构建后项目的一部分进行构建。非常感谢David给出如此清晰的答案。您能帮助我如何将流程分解为组件吗?我想将其分解为三个组件。组件1步骤1,2:签出和编译,组件2步骤3仅DSL创建,组件3步骤4,5。我应该使用管道插件还是任何其他插件?我应该如何选择我的环境IP和端口?敬请推荐OK David。环境IP和端口的选择如何?我无法理解您的最后一行,所以,三次构建,将工件从一个复制到另一个,并触发下一次构建,作为构建后项目的一部分,您可以详细说明吗?您需要手动输入IP和端口吗?或者,每个构建都是相同的吗?或者,是否有多个IP和端口?您可能需要使用升级插件,这样您就可以指定这些项目,而不是每次都自动进行部署。有一个
您可能会发现有用的特殊插件。很久以前我用过一次。它可以让你做一个自动触发的标准构建,但会触发一个带有特殊参数的特殊构建。您已经构建了一个触发构建,用于构建您的DSL。要进行BUILD_B,您需要将编译后的工件从BUILD_A复制到BUILD_B,以便BUILD_B可以构建DSL。BUILD_B将触发BUILD_C并再次将DSL或任何需要部署的标准端口和ip复制到服务器。BUILD_C可以使用BUILD w/Parameters插件,因此有人可以触发另一个构建到不同的端口和IP。或者,您可能希望在Build_B中进行构建升级,而忘记Build_C来选择端口和IP并进行部署。任何一种方法都可以