如何在 jenkins 声明管道中正确使用 artifactory rtDownload 的目标
How to properly use target of artifactory rtDownload in jenkins declarative pipeline
这个剪了
stage('get iter number') {
steps {
rtDownload ( //
serverId: 'MAIN-ARTIFACTORY',
spec: '''{ "files": [{"pattern": "p1/p2/p3/${BUILD_ID}/n_iter.txt", "target": "./n_iter.txt"}] }''',
)
}
}
其中 BUILD_ID = 'a/b'
将文件下载到 $WORKSPACE/p2/p3/a/b/n_iter.txt 而不是预期的 $WORKSPACE/n_iter.txt
另外,很奇怪 - 为什么 p1 不在下载路径中?
请尝试使用以下代码片段,这意味着 com/my-files/ Artifactory repository-path 中的所有文件都将下载到 my-folder Jenkins 代理文件系统上的目录。有关这方面的更多详细信息,请参阅我们的声明式管道语法维基页面 here。
rtDownload (
serverId: 'Artifactory-1',
spec: '''{
"files": [
{
"pattern": "com/my-files/",
"target": "my-folder/"
}
]
除上述内容外,您还可以参考我们GitHub页面here中提到的rtDownload示例。
默认情况下,工件会下载到文件系统中的目标路径,同时在源存储库中维护它们的层次结构(不包括存储库名称 - 因此您的示例中缺少 p1
)。
要在忽略层次结构的情况下下载工件,请在文件规范中设置 "flat": "true"
。
要对生成的层次结构进行更高级的控制,您可能需要使用 Placeholders。
在 File Specs documentation 中查看更多信息。
这个剪了
stage('get iter number') {
steps {
rtDownload ( //
serverId: 'MAIN-ARTIFACTORY',
spec: '''{ "files": [{"pattern": "p1/p2/p3/${BUILD_ID}/n_iter.txt", "target": "./n_iter.txt"}] }''',
)
}
}
其中 BUILD_ID = 'a/b' 将文件下载到 $WORKSPACE/p2/p3/a/b/n_iter.txt 而不是预期的 $WORKSPACE/n_iter.txt
另外,很奇怪 - 为什么 p1 不在下载路径中?
请尝试使用以下代码片段,这意味着 com/my-files/ Artifactory repository-path 中的所有文件都将下载到 my-folder Jenkins 代理文件系统上的目录。有关这方面的更多详细信息,请参阅我们的声明式管道语法维基页面 here。
rtDownload (
serverId: 'Artifactory-1',
spec: '''{
"files": [
{
"pattern": "com/my-files/",
"target": "my-folder/"
}
]
除上述内容外,您还可以参考我们GitHub页面here中提到的rtDownload示例。
默认情况下,工件会下载到文件系统中的目标路径,同时在源存储库中维护它们的层次结构(不包括存储库名称 - 因此您的示例中缺少 p1
)。
要在忽略层次结构的情况下下载工件,请在文件规范中设置 "flat": "true"
。
要对生成的层次结构进行更高级的控制,您可能需要使用 Placeholders。
在 File Specs documentation 中查看更多信息。