【问题标题】:how to execute shell to install a file from artifacts dir in jenkins如何执行shell以从jenkins中的工件目录安装文件
【发布时间】:2011-05-17 15:37:59
【问题描述】:

我有一个构建步骤,用于构建我的项目并将其打包到 myfile.jar 中并将其放入我的 artifacts 目录中。

我还告诉 jenkins 归档 myfile.jar。

现在我想添加另一个构建步骤来执行 shell 命令java -jar myfile.jar 并安装它以进行进一步测试

我如何告诉 jenkins 在执行 shell 命令时指向 myfile.jar ?我不知道工件目录名称,因为它是使用内部版本号等动态创建的...

谢谢。

【问题讨论】:

  • 你不能简单地从构建过程放置的地方运行它吗? Jenkins 工件存档器不会从工作区中删除工件。

标签: shell continuous-integration hudson jenkins


【解决方案1】:

artifacts 目录在主服务器上,而不是从服务器上。

如果对您来说两者都在同一台机器上,则工件位于:

$JENKINS_HOME/jobs/$JOB_NAME/$BUILD_ID/archive

但是,就像Anders Lindahl 所说,归档工件不会将其从工作区中删除;为什么不直接从那里使用它。通常,您不想打扰档案目录...

【讨论】:

  • 我明白了。所以最好直接从工作区运行它。我的问题必须与如何访问文件有关,如果它被动态命名为“$JOB_NAME-$BUILD_ID.$BUILD_NUMBER.jar”,但现在意识到这些参数在整个构建过程中不会改变,所以我可以使用它就像'java -jar ./artifacts/$JOB_NAME-$BUILD_ID.$BUILD_NUMBER.jar'。感谢您的提示。
  • 好东西。我确实有一个很奇怪的情况。我必须存档工件,然后在上传到 FTP 站点之前加密存档。为了防止为每个 Jenkins 节点安装大量 gpg 密钥,我想在服务器端存档上执行加密,允许我在一个地方设置钥匙串。使用节点进行构建时,归档路径是否相同? Jenkins 是否将存档移动到同一位置?
  • @Therealtubot 工件始终存储在文件夹中。如果您需要加密工件,我建议创建一个在主服务器上运行的单独作业,并执行加密。这可以是您的主要工作的下游工作(构建之后)。最新工件的路径始终是$JENKINS_HOME/jobs/$JOB_NAME/lastSuccessful/archive。工件的路径没有参考节点,所以你不用担心使用的slave。
猜你喜欢
  • 2011-07-04
  • 1970-01-01
  • 1970-01-01
  • 2019-02-09
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-18
相关资源
最近更新 更多