问题 Jenkins参数化构建上传文件并保存原始文件名


如何在Jenkins参数化构建“文件参数”中保存原始文件名下的上传文件?


5944
2017-12-19 11:50


起源

您能否详细说明您遇到的问题? - Slav
我有上传文件的用户,请说some1.txt和some2.txt,但我强制在param中指定文件名。我想使用相同的文件名。 - pavel.mileshchenko


答案:


您可以从参数中获取与参数名称(文件位置字段)同名的原始文件名。

例如,如果文件位置是“my_file”,则可以通过执行以下命令将其重命名为original:

mv my_file ${my_file}

13
2018-04-23 13:46



非常酷的作弊,谢谢! - Wile E.
添加了此问题 issues.jenkins-ci.org/browse/JENKINS-11326 - Robert Scholte


的“文件”参数 Jenkins参数化构建 永远得到 相同 你工作中的名字。

我们能够通过指定来排除这种情况  参数:

  • 一个参数是类型 文件  - 这将内容发送到文件。
  • 其他参数是类型   - 这将获取文件的原始名称。

在我们的脚本中,我们通过第一个参数获取文件,
然后 改名 它作为第二个。
(用户必须  两个字段的值相同...)

更新:

如上所述 马钱 (和 詹姆斯拉斯金),这个问题是 在2011年左右解决
所以你现在可以通过以下方式访问原始文件:

例如,如果您的文件参数已命名 文件1
然后你的脚本得到了 内容 该文件的 File1
它可以 访问原始文件 通过使用local参数 ${File1}

我怀疑当脚本和用户不在同一个操作系统上时会变得棘手,
即:用户在Windows中编写路径,脚本在Unix上运行


2
2017-12-21 17:43



谢谢。那就是我做的。我认为这是詹金斯的限制。有人需要请求这个很酷的功能,比如使用相同的文件名。然后不需要字符串参数,你就不会犯错误。 - pavel.mileshchenko
也许如果一个参数指向数据而另一个参数将保存文件的原始名称会更容易。我们应该打开一个变更请求。 - Gonen
正如Nux的回答中所提到的,这已经得到了解决 issues.jenkins-ci.org/browse/JENKINS-11326  - 现在允许您从环境值$ {parameter_name}获取原始文件名 - James Ruskin
谢谢 - 更新了我的答案 - Gonen