如何将通用文件上传到Jenkins作业?

时间:2014-12-15 19:39:30

标签: jenkins jenkins-plugins

我正在尝试找到一种方法来提示用户在构建之前选择一个通用文件并将其从本地计算机上传到Jenkins作业。用户要上传的输入文件不一定是文本或属性文件。

我特意试图让用户“选择”他们想要的文件 - 浏览他们的文件;用户不应该传递文件的路径。

由于

3 个答案:

答案 0 :(得分:29)

使用文件参数

  

File参数允许构建接受用户在安排新构建时提交的文件。在签出/更新完成后,该文件将被放置在已知位置的工作区内,以便您的构建脚本可以使用此文件。

enter image description here

如果您需要验证文件是否具有某个扩展名,则必须使用脚本作为工作的一部分,并且作业失败,扩展名/内容类型与您需要的不匹配。

答案 1 :(得分:3)

当您不知道文件名是什么或需要在到达目的地之前更改其名称时,这会很烦人。你需要进行黑客攻击。我就是这样做的:

  1. 使用“文件参数”参数上传文件
  2. 使用特定于操作系统的脚本将文件从您命名为File Parameter的任何内容重命名为您想要的任何内容,例如,如果我的File Parameter的{​​{1}}值为File location {1}}而不是实际的相对文件路径,我会做类似这样的事情,例如,在“执行Windows批处理命令”的构建步骤中的Windows:
  3. file_name

    然后只需使用ArtifactDeployer将所有内容复制到您想要的位置。

    ps:这不会删除数字签名,因此移动操作应该被认为是最安全的。

答案 2 :(得分:0)

Jenkins文件参数的使用不适用于Jenkins管道。他们没有为管道禁用这种构建参数是荒谬的。更可笑的是,他们至少没有,在帮助文档中针对该参数标识此SEVERE限制。

本来可以节省我几个小时的时间来弄清楚为什么它在我的管道中不起作用。

有关更多详细信息,请参见此功能请求:https://issues.jenkins-ci.org/browse/JENKINS-27413