如何在"钻石加入"中复制文物。詹金斯建造管道?

时间:2014-08-27 16:09:26

标签: jenkins jenkins-plugins

Copy Artifacts Plugin上是否有任何文档/示例,即“由构建参数指定”选项?

我正在尝试在this SO question中执行“join-diamond”管道,并且无法弄清楚在“从另一个项目复制工件”的Parameter Name选项中放入什么构建步骤以正确复制我的工件。

enter image description here

我的所有作业都有一个PL_BUILD_NUMBER参数,我想用它来选择要复制工件的构建。

mailing list post表示参数必须是XML。所以我尝试了这个:

BUILD_SELECTOR=<SpecificBuildSelector><buildNumber>$PL_BUILD_NUMBER</buildNumber></SpecificBuildSelector>

但它不起作用。我在日志中得到了这个例外:

java.lang.NullPointerException
    at java.io.StringReader.<init>(Unknown Source)
    at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1035)
    at hudson.plugins.copyartifact.BuildSelectorParameter.getSelectorFromXml(BuildSelectorParameter.java:80)
    at hudson.plugins.copyartifact.ParameterizedBuildSelector.getBuild(ParameterizedBuildSelector.java:52)
    at hudson.plugins.copyartifact.CopyArtifact.perform(CopyArtifact.java:280)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:772)
    at hudson.model.Build$BuildExecution.build(Build.java:199)
    at hudson.model.Build$BuildExecution.doRun(Build.java:160)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:535)
    at hudson.model.Run.execute(Run.java:1740)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:233)

我应该放什么?

还有“这个版本是参数化的 - &gt;复制工件的构建选择器”,我不知道是否应该使用它...

谢谢!

1 个答案:

答案 0 :(得分:5)

您正在混合 由构建参数指定 特定构建 。目前尚不清楚你在询问哪一个。

对于 由构建参数指定 ,您需要在两个位置进行配置:

  • 在“此版本已参数化”下,选择“构建选择器以复制工件
  • 此参数的名称是我们稍后将为复制工件构建步骤提供的内容。
  • 从UI角度来看,将提示用户使用构建选择器界面(允许所有类型的选择:最后构建,特定构建,最新提升等)。
  • 在“复制工件”构建步骤的“哪个版本”下,选择“由构建参数指定”。
  • 它会显示另一个名为“参数名称”的字段(默认为BUILD_SELECTOR)。
  • 是我们之前创建的“构建选择器,用于复制工件”参数的名称
  • 由于默认值为BUILD_SELECTOR,如果您同时调用了参数BUILD_SELECTOR,则无需进行任何更改。

BUILD_SELECTOR参数的值将根据您在构建之前在参数屏幕上选择的内容而发生很大变化。您可以通过将参数的值打印为测试(Windows上为echo %BUILD_SELECTOR%,* nix上为echo $BUILD_SELECTOR),然后手动运行构建并尝试使用不同的选择器来查看其可能的值。

具体来说,值:
<SpecificBuildSelector><buildNumber>123</buildNumber></SpecificBuildSelector>
将在用户在参数屏幕上选择特定版本时使用,并输入值123

如果您需要从作业外部设置此参数值(例如从脚本或 Parameterized Trigger plugin ),则需要遵循此特定结构,具体取决于你想要的选择。

编辑:重新阅读您的问题和您的实际要求(不是问题标题)

在您的情况下,您不需要“构建选择器以复制工件”参数。你只需要:

  • 复制工件构建步骤
  • 输入项目名称以从
  • 复制
  • 哪个版本下,选择特定版本
  • 内部版本号下,输入$PL_BUILD_NUMBER(您说您已在作业中使用)