0

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

如其他一些帖子中所述,此处为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] - 从 post-action 开始部署 ...
[ArtifactDeployer] - 398 个文件已从 'C:\Daten\jenkins\jobs\Integra-2.2.4.SP_P1\workspace' 复制到 '\\titan\IntegraWWS2\Deploy\2.2.4.SP_P1\ 2015-08-17_13-42-38\bin32'。
[ArtifactDeployer] - 从 post-action 停止部署...

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

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

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

没有工作。而且我确定这不是 Windows 访问限制问题。

4

2 回答 2

0

“工件部署程序”不是您链接的答案中描述的主要“工件存档”操作(其中一个是我的)。

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

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

Artifact Deployer”插件:

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

您的解决方案

如果没有特殊原因使用“Artifact Deployer”插件将工件从 Jenkins 中移走,那么您应该考虑使用默认的“Archive the Artifacts”构建后操作。

如果有理由将工件存储在 Jenkins 之外(大小考虑、完整性、工件等),那么您必须配置自己的“getter”方法以将工件从存储它们的任何位置带到当前构建的工作区.

于 2015-08-17T15:43:25.947 回答
0

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

  • 不要ArtifactDeployer在编译作业中使用插件
  • 让编译作业构建标准工件
  • 在部署作业中使用CopyArtifact插件 ( https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin ) 以访问已编译的工件。
  • 将工件(在上一步中复制)部署到您喜欢的位置(您可以在部署作业中将复制的工件标记为新工件并使用ArtifactDeployer插件发布它们)
于 2015-08-17T15:46:58.820 回答