Java Jenkins的内部构建工具

Java Jenkins的内部构建工具,java,jenkins,jenkins-plugins,jenkins-cli,jenkins-scriptler,Java,Jenkins,Jenkins Plugins,Jenkins Cli,Jenkins Scriptler,我正在致力于将内部编写的基于java的构建工具迁移到Jenkins。内部构建工具为各种产品及其各自的发行版提供了1000多个作业,每个作业有10多个步骤,每个步骤都有一些要执行的代码行。这个内部构建工具是用Java编写的 内部构建工具除了读取以下文件和创建动态jsp视图之外什么都不做,从db加载构建历史并显示它 Step.prop-包含所有步骤和相应命令,例如 pdplanner:clean:YES:YES:runant-Dproperties\u file=build/dallas78.bui

我正在致力于将内部编写的基于java的构建工具迁移到Jenkins。内部构建工具为各种产品及其各自的发行版提供了1000多个作业,每个作业有10多个步骤,每个步骤都有一些要执行的代码行。这个内部构建工具是用Java编写的

内部构建工具除了读取以下文件和创建动态jsp视图之外什么都不做,从db加载构建历史并显示它

  • Step.prop-包含所有步骤和相应命令,例如
  • pdplanner:clean:YES:YES:runant-Dproperties\u file=build/dallas78.build.properties-f buildjars.xml clean\u all

    pdplanner:版本:是:否:runant-Dproperties_file=build/dallas78.build.properties版本

  • 每个作业的Clearcase配置规范文件.cs
  • 如果我们开始在jenkins为所有1000个工作岗位设置每个工作岗位,则需要一年多的时间才能为所有人成功构建。我想做一些自动化,而动态Jenkins config.xml可以通过读取每个项目的所有属性n spec文件来创建

    产品管理团队的另一个规范是——我们应该将每个步骤作为jenkins作业中的复选框,这样,如果有人确实想要执行某些步骤,他们可以相应地取消选中


    我很困惑我要用不同的选择来完成这个任务,但是还没有结束……我考虑了模板插件,可能不适合我的方式。你能分享一下你对这个问题的看法/建议和你的想法吗?

    管理层需要时不时地审视一下地球。苹果不是桔子。如果你有一个苹果,想要一个橘子,你不能把苹果画成橘子色,然后把它叫做橘子

    Jenkins与您的内部java构建系统不同。如果你要搬到詹金斯,那是因为你想要詹金斯,而不是别的什么。不要期望(或者更确切地说,管理层不应该期望)它与以前的系统完全一样,否则:你为什么首先开始改变

    自动创建config.xml。
    如果可以编写脚本,在文件系统上自动创建config.xml,那么就这样做。在从全局配置中选择“从磁盘重新加载”或重新启动Jenkins之前,这些配置不会加载到Jenkins

    有许多插件可以动态构造作业,从简单的替换一些标记文本的插件,到更复杂的提供自己的作业描述语言的插件

    每个步骤的复选框
    阅读我关于把苹果漆成橙色的评论。詹金斯没有这个。最好的方法是为每个步骤创建复选框参数,然后将每个步骤包装到插件中,插件将检查变量的值,并仅在选中时执行步骤


    您可能还需要插件来为后期构建步骤提供相同的功能。

    管理层需要偶尔看看地球。苹果不是桔子。如果你有一个苹果,想要一个橘子,你不能把苹果画成橘子色,然后把它叫做橘子

    Jenkins与您的内部java构建系统不同。如果你要搬到詹金斯,那是因为你想要詹金斯,而不是别的什么。不要期望(或者更确切地说,管理层不应该期望)它与以前的系统完全一样,否则:你为什么首先开始改变

    自动创建config.xml。
    如果可以编写脚本,在文件系统上自动创建config.xml,那么就这样做。在从全局配置中选择“从磁盘重新加载”或重新启动Jenkins之前,这些配置不会加载到Jenkins

    有许多插件可以动态构造作业,从简单的替换一些标记文本的插件,到更复杂的提供自己的作业描述语言的插件

    每个步骤的复选框
    阅读我关于把苹果漆成橙色的评论。詹金斯没有这个。最好的方法是为每个步骤创建复选框参数,然后将每个步骤包装到插件中,插件将检查变量的值,并仅在选中时执行步骤


    您可能还需要插件为后期构建步骤提供相同的功能。

    我不确定您是否仍在寻找在每个步骤上都有复选框的解决方案,但我有一个类似的情况&我只是想分享一下我采取的方法

    首先,Jenkins似乎是一个很棒的工具,它为我们提供了许多远程执行功能选项。从这里开始,我认为我们应该在编程逻辑中处理其余的部分

    因此,对于我们遇到的情况,我希望最终用户选择每次运行要执行作业的哪一部分(步骤),我添加了一个构建参数-文本类型,但我做了描述,以引导用户输入一个二进制数字,该数字捕获我们想要的输入(比如11111-执行所有步骤,10000-只执行第一步等等……我们可以添加一些检查以确保其二进制)。然后,我在Jenkins中(主)步骤运行的脚本中使用了这个构建参数来决定运行哪些子步骤(可以说这不是Jenkins步骤)。祝你好运。干杯


    虽然它看起来有点粗糙,但它起到了作用。它有助于为至少要运行的命令组添加主要条件,如果不是每个步骤的条件的话-我认为您不需要用户决定是否要为每个作业运行运行每个微步骤。

    我不确定您是否仍在寻找此解决方案的复选框在每一步上,我都遇到了类似的情况&我只是想分享一下我采取的方法

    首先,詹金斯似乎是一个很棒的工具,给了我们很多机会