0

我想从另一个版本的 go cd 下载一个文件(我们称之为 BUILD_A)并在我的主版本(BUILD_B)上使用它。为此,我使用 curl 来从 Go cd Artifactory 获取文件。

curl -u${user_name} -O "path/to/artifactory/xxx/builds/BUILD_A/${GO_PIPELINE_LABEL}/filename.xxx"

现在这里的问题是 BUILD_B 将 ${GO_PIPELINE_LABEL} 解释为它自己的构建,而不是来自 BUILD_A 的构建号。所以如果BUILD_A是65,BUILD_B是1001,就取BUILD_B,最后会是这个样子。

curl -u${user_name} -O "path/to/artifactory/xxx/builds/BUILD_A/1001/filename.xxx"

BUILD_A 在 curlpath 中是硬编码的。

所以我的问题是,是否可以从 Artifactory 的另一个版本和最新的 build_number 中获取文件?

4

1 回答 1

0

有一些插件可以轮询诸如 Artifactory 之类的存储库以获取 GoCD 的更新工件,例如:

https://github.com/1and1/go-maven-poller

go-maven-poller 插件提供了一个环境变量,其中包含 CURL 工件的 URL。

(免责声明:我是这个插件的维护者)

如果您不需要 Artifactory 作为源,则应留在 GoCD 中并从 BUILD_B 中的 BUILD_A 获取管道构建结果。这样做的原因是轮询会浪费你的时间。

使用另一个管道作为材料包括:

  • 将 BUILD_A 作为材质添加到 BUILD_B
  • 在 BUILD_B 中添加一个 fetch-artifact 任务以实际“拉”工件。

请参阅此处了解更多信息。

于 2020-02-26T18:29:51.503 回答