将二进制文件添加到 Jenkins 管道构建?

Adding binary files to Jenkins pipeline build?

将现有二进制文件添加到 Jenkins 管道构建的最佳方法是什么?

我有一个 Python 脚本,它环绕现有的封闭源代码二进制 exe 文件。由于许可,不可能将 exe 包含在 GitHub 存储库中,我想从本地服务器添加二进制文件作为构建过程中的一个步骤。封闭源二进制文件可以打包供内部使用,但不能添加到 SCM。

Jenkins 的管道是否可行?

首先,请不要在 SCM 中存储二进制文件,搜索合适的 place/tool 来执行此操作,例如 Nexus Sonatype 或 JFrog。

然后,如果您没有时间,至少将最后一个选项存储为另一个作业中的存档文件,然后使用 CopyArtifact 插件检索。

https://wiki.jenkins-ci.org/display/JENKINS/Copy+Artifact+Plugin

另一方面,如果您想在 Jenkins 中存储 "artifacts" 或自定义文件,您可以检查:

https://wiki.jenkins-ci.org/display/JENKINS/User+Content

然后你可以下载它,例如:wget

我认为有以下三种选择:

  1. 使用 Pipeline 插件中的 stash/unstash 功能

stash/unstash 上有一个很好的教程:Tutorial

  1. 使用 CopyArtifact 插件:文件可以共享,从其他作业复制,但记住它占用工作space。

  2. 使用共享工作space 插件。但这只会让事情变得复杂。

信息:

工件:存档专为长期文件存储而设计(例如,来自您的构建的中间二进制文件)。 Artifact 需要更多存储 space 和资源管理。

Stash:保存一组文件并稍后在同一构建中使用,通常在另一个 node/workspace 上使用。 stash 和 unstash 步骤设计用于小文件。 Stash/unstash 可以在管道内使用,只需为存储分配一个名称并且仅在本地工作。