从其他项目插件复制Artifakt不会复制任何工件

时间:2015-08-17 14:33:41

标签: jenkins promoted-builds

我有2个构建过程。一个用于编译我们的delphi项目,第二个用于在ftp服务器上部署工件。 存储工件我使用“artifact deployer”插件。

如此处copy-artifacts-from-specific-promoted-buildhow-to-promote-a-specific-build-number-from-another-job-in-jenkins中的其他一些帖子中所述,我安装了促销插件,该插件触发其他项目的构建/调用。

到目前为止一切似乎都没问题。部署作业被触发。但是在开始之后,部署工作失败并发表评论“konnte nicht auf vorgelagerten Artefaktbereich zugreifen.Archiviert das Quellprojekt Artefakte?”或“无法访问上游工件区域。是上游项目归档工件”? 但是在编译作业日志中说:

ArtifactDeployer] - Starting deployment from the post-action ...
[ArtifactDeployer] - 398 file(s) have been copied from the 'C:\Daten\jenkins\jobs\Integra-2.2.4.SP_P1\workspace' to '\\titan\IntegraWWS2\Deploy\2.2.4.SP_P1\2015-08-17_13-42-38\bin32'.
[ArtifactDeployer] - Stopping deployment from the post-action...

此外,我可以从该特定版本的网站访问存档的工件。

为了在“从其他项目复制artifacs”部分中定义特定版本,我尝试了各种版本:

  • 使用上游作业中的参数
  • “触发该作业的上游构建”选项

没有用。我确信它不是Windows访问限制问题。

2 个答案:

答案 0 :(得分:0)

“Artifact Deployer”不是主要的“Artifact Archiving”操作,在您的链接答案中描述(其中一个是我的)。

要使用这些描述的方法,您需要使用默认的“归档工件”构建后操作。这种方法将:

  • 在作业的目录结构中将工件存储在Jenkins服务器本身上。
  • 通过http://$JENKINS_URL/job/$JOB_NAME/<build_number>/artifact
  • 制作工件
  • “复制工件”插件可以使用上述位置。
  • 简而言之:Jenkins(和其他插件)知道工件的标准位置。

“Artifact Deployer”插件:

  • 将工件复制到非标准(远程)位置
  • Jenkins(以及其他插件,例如“复制工件”)不知道保存工件的位置。

您的解决方案

如果你没有特别的理由使用“Artifact Deployer”插件将工件从Jenkins移开,那么你应该考虑使用默认的“存档工件”构建后的动作。

如果有理由将工件存放在Jenkins之外(尺寸考虑,完整性,瑕疵等),那么你必须配置自己的“getter”方法,以便将工件从存储它们的任何地方带到工作区。当前的构建。

答案 1 :(得分:0)

简言之,ArtifactDeployer插件会更改工件的保存位置。这显然已经作为编译工作的一步完成了。 如果你想拆分编译和部署,那么你应该

  • 不在编译工作中使用ArtifactDeployer插件
  • 让编译作业构建标准工件
  • 在部署作业中使用CopyArtifact插件(https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin)以访问已编译的工件。
  • 将工件(在之前的步骤中复制)部署到您最喜欢的位置(您可以将复制的工件标记为部署作业中的新工件,并使用ArtifactDeployer插件发布它们)