8

我们在哈德逊的一个项目中有一份生产工作和一份夜间工作。生产作业需要从特定的夜间构建#(作为参数提供)中提取一些工件。谁能帮助我们提示如何实现这一目标?

4

3 回答 3

8

Copy Artifact插件似乎能够做到这一点。

另一种方法可能是通过

http://server/jobs/job1/[build #]/artifacts/
于 2011-03-17T10:28:35.547 回答
1

您可以在作业的配置页面中使用“构建环境”配置工具。勾选 Configure M2 Extra Build Steps 框并添加一个 Execute Shell,它从所需的工件中 grep 内容。

于 2011-03-21T11:34:25.963 回答
0

我们有类似的需求并使用以下系统groovy:

import hudson.model.*

def currentBuild = Thread.currentThread().executable;
currentBuild.addAction(new ParametersAction(new StringParameterValue('LAST_BUILD_STATUS', 'FAILURE')));
def buildJob = Hudson.instance.getJob("ArtifactJobName");
def artifacts = buildJob.getLastBuild().getArtifacts();
if (buildJob.getLastBuild().getResult() == Result.SUCCESS && artifacts != null && artifacts.size() > 0) {
    currentBuild.addAction(new ParametersAction(new StringParameterValue('VARIABLE_NAME', artifacts[0].getFileName())));
    currentBuild.addAction(new ParametersAction(new StringParameterValue('LAST_BUILD_STATUS', 'SUCCESS')));
}

这会在其中创建一个VARIABLE_NAME带有工件名称的 from ArtifactJobName,我们使用它是因为它们都存储在一个特定的文件夹中。我不确定如果您有多个工件会发生什么,但似乎您可以从工件数组中获取它们。

当正在构建另一个并且您得到空数组时,您可以使用它getLastSuccessfulBuild来防止出现问题。ArtifactJobName

于 2014-09-12T15:47:06.867 回答