我们在哈德森的一个项目有生产工作和夜间工作。生产作业需要从特定的夜间构建#(作为参数提供)中提取一些工件。任何人都可以帮我们提一下如何实现这个目标吗?
答案 0 :(得分:8)
答案 1 :(得分:1)
您可以在作业的配置页面中使用“构建环境”配置工具。勾选“配置M2额外构建步骤”框,然后添加一个执行外壳,它可以从所需的工件中查找内容。
答案 2 :(得分: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
中创建一个带有工件名称的ArtifactJobName
,我们使用它,因为它们都存储在特定文件夹中。我不确定如果你有多个工件会发生什么,但似乎你可以从工件数组中获取它们。
当您正在构建另一个getLastSuccessfulBuild
时,您可以使用ArtifactJobName
来防止出现问题,并且您获得的数组为null。