2

在处理使用变量值选择的项目中的工件时,我仍然遇到 jenkins 问题。我读了这个问题:使用动态项目名称替代方法复制工件构建步骤 ,我尝试了它,但是它仍然不起作用。也许你可以帮我找出问题所在。

环境:
詹金斯版。1.460
复制神器插件版本。1.24

用户:
luis.ribeiro - 所有权利:整体;从属;工作;运行;查看;SCM;Artifactory

詹金斯工作:
build_project_2_0
build_project_1_0
deploy_project

1° 测试:
描述:运行 deploy_project 并从 build_project_2_0 和 build_project_1_0 复制工件

从另一个项目复制工件中的 deploy_project 配置:
项目名称:build_project_2_0
哪个构建:最新成功构建
仅稳定构建:选中
要复制的工件:**/*.war
目标目录:libs/wars
可选:未选中
展平目录:未选中

结果:
从“build_project_2_0”版本号 244 复制了 5 个工件
使用项目名称进行测试时结果相同:build_project_1_0



2° 测试:
描述:运行 deploy_project 并从 build_project_2_0 和 build_project_1_0 复制工件。但是项目名称来自一个参数。

deploy_project 的配置:
此构建是参数化的
参数类型:选择
名称:project_name_parameter
选择:
build_project_2_0
build_project_1_0

从另一个项目复制工件
项目名称:$project_name_parameter
哪个构建:最新成功构建
仅稳定构建:选中
要复制的工件:**/ *.war
目标目录:libs/wars
可选:未选中
扁平化目录:未选中

结果:
从项目名称的另一个项目复制工件出现此消息:值引用构建参数,因此无法验证。

运行时:
Unable to find project for artifact copy: build_project_2_0
这可能是由于项目名称或权限设置不正确;请参阅作业配置中项目名称的帮助。
构建步骤“从另一个项目复制工件”将构建标记为失败
与 build_project_1_0 时相同


3° 测试:
描述:运行 deploy_project 并从 build_project_2_0 和 build_project_1_0 复制工件。但是项目名称来自一个参数。

deploy_project 的配置:
此构建中参数化
参数类型:扩展选择参数
名称:project_name_parameter
参数类型:单选
值:build_project_2_0
属性键:build_project_2_0
默认值:build_project_2_0
默认属性键:build_project_2_0
引用值:签

从另一个项目复制工件
项目名称:$project_name_parameter
哪个构建:最新成功构建
仅稳定构建:已检查
要复制的工件:**/*.war
目标目录:libs/wars
可选:未选中
扁平化目录:未选中

结果:
从另一个项目复制工件时,项目名称下出现此消息:值引用构建参数,因此无法验证。

运行时:
Unable to find project for artifact copy: build_project_2_0 这可能是由于项目名称或权限设置不正确;请参阅作业配置中项目名称的帮助。构建步骤“从另一个项目复制工件”将构建标记为失败与 build_project_1_0 相同


4° 测试:
描述:运行 deploy_project 并从 build_project_2_0 和 build_project_1_0 复制工件。但是项目名称来自一个参数。

deploy_project 的配置:
此构建中参数化
参数类型:扩展选择参数
名称:project_name_parameter
参数类型:单选
值:build_project_2_0
属性键:build_project_2_0
默认值:build_project_2_0
默认属性键:build_project_2_0
引用值:未选中

另一个项目复制工件
项目名称:$project_name_parameter
哪个构建:最近一次成功构建
仅稳定构建:选中
要复制的工件:**/*.war
目标目录:libs/wars
可选:未选中
扁平化目录:未选中

结果:
在“项目名称”下的“从另一个项目复制工件”中出现此消息:值引用了构建参数,因此无法对其进行验证。 运行时: Unable to find project for artifact copy: build_project_2_0 这可能是由于项目名称或权限设置不正确;请参阅作业配置中项目名称的帮助。构建步骤“从另一个项目复制工件”将构建标记为失败与 build_project_1_0 相同





我仍然没有让它运行,有人可以帮助我解决这个问题吗?提前谢谢你,路易斯

4

3 回答 3

2

它看起来是正确的。我自己使用带有参数的复制工件。我只能建议几点:

  • 检查项目名称(您从中复制的名称)是否没有空格或其他特殊字符。我有很多问题。
  • 检查项目名称中的大小写
  • 尝试在复制工件步骤之前回显您的变量,也许您会注意到差异
于 2012-11-03T14:48:12.293 回答
2

有同样的问题。正如错误已经指出的那样,就我而言,这只是缺少权限。

进入您要从中复制工件的“源”-作业/项目,并检查

Permission to Copy Artifact

已正确设置为要复制 INTO 的作业。(或设置为 * 之类的通配符)。

于 2014-09-11T20:42:14.273 回答
1

我遇到了同样的问题,并用这个 shell 脚本替换了 copyArtefactPlugin,注意我的参数是使用 ParameterizedBuildPlugin 命名的“jobname”:

jobsdir=/var/lib/jenkins/jobs

function copy_artefact() {
  if [ -e "$jobsdir/$jobname/lastSuccessful/archive/" ]; then
  mkdir -p $target

  (
    cd $jobsdir/$jobname/lastSuccessful/archive/
    rsync -a $artefacts_pattern $target/ > /dev/null 2>&1 || true
  )
  fi
}

artefacts_pattern="*/noarch/*.rpm"
target="$WORKSPACE/RPMS/noarch"
copy_artefact

artefacts_pattern="*/x86_64/*.rpm"
target="$WORKSPACE/RPMS/x86_64"
copy_artefact
于 2013-12-02T10:21:05.500 回答