如何在jenkins声明性管道中正确使用artifactory rtDownload的目标



这个剪切的

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位置,而不是预期的$WORKSSPACE/n_iter.txt

同样,非常奇怪-为什么p1不在下载路径中?

默认情况下,工件被下载到文件系统中的目标路径,同时在源存储库中维护其层次结构(不包括存储库名称,因此示例中缺少p1(。

要在忽略层次结构的情况下下载工件,请在文件规范中设置"flat": "true"

为了对生成的层次结构进行更高级的控制,您可能需要使用占位符。

请参见文件规范文档中的详细信息。

请尝试以下片段,这意味着com/my-filess/Artifactory存储库路径中的所有文件都将下载到Jenkins代理文件系统上的myfolder目录中。有关这方面的更多详细信息,请参阅我们的声明管道语法维基页面。

rtDownload (
serverId: 'Artifactory-1',
spec: '''{
"files": [
{
"pattern": "com/my-files/",
"target": "my-folder/"
}
]

除上述内容外,您还可以参考我们GitHub页面中的rtDownload示例。

最新更新