我正在将一堆旧脚本转换为Jenkins pipeline作业。对于我们的许多脚本,我们使用JFrog CLI来处理与Artifactory的所有交互。对于Jenkins pipeline,我们现在可以选择通过Artifactory插件来完成。然而,我似乎找不到一种方法来替换文件中的变量。
- 使用JFrog CLI时:**
jfrog rt dl --spec spec.json --spec-vars="foo=fooValue;bar=barValue"
运行此命令时,spec.json中所有${foo}
和${bar}
的示例都将被替换为相应的值。
- 与Jenkins管道:**
rtDownload(
serverId: 'Artifactory',
spec: '''{
"files": [
{
"pattern": "spec.json"
}
]
}'''
)
接着是
rtDownload(
serverId: 'Artifactory',
specPath: 'spec.json'
)
这会得到我想要的规格文件,并下载列出的大部分文件,但无法找到需要变量的文件。我无法找到任何选项,以包括变量替换在下载文件的任何地方或之后。
我仍然可以像在脚本中一样使用JFrog CLI,或者添加另一个函数来手动修改这个文件以包括变量,尽管理想情况下我希望通过包括的管道集成来干净地完成所有事情。
如有任何建议,我们将不胜感激。
1条答案
按热度按时间k75qkfdt1#
Jenkins Artifactory插件目前不支持更改预定义的FileSpec,就像JFrog CLI使用
spec-vars
选项所做的那样。但是,如果您在管道内提供FileSpec,则可以在FileSpec中设置变量,如下所示:
这意味着您现在将把FileSpec作为Jenkinsfile的一部分来维护,而不是单独维护,这也将允许您避免每次都下载它。
如果它不能满足您的需要,另一种选择是使用第三方函数或您提到的JFrog CLI。