在多回购部署中,我怎样才能使管道与其源代码位于同一位置

In a multi-repo deploy, how can I can I keep the pipelines co-located with their source code

我有一个 Deploy to IBM Cloud 按钮,可以部署 3 git 存储库并且运行良好,但我遇到了维护问题。如果我在其中一个影响其构建方式的回购中进行编辑,我必须更改存在于另一个回购中的 pipeline.yml,即与我的 .bluemix\toolchain.yml 在同一个回购中。我更愿意将我的 pipeline.yml 文件独立包含在它们实际所属的回购协议中。我的 toolchain.yml 有 3 个条目,例如:

services: dashboard-build: service_id: pipeline parameters: services: - dashboard-repo name: 'dashboard-{{toolchain.name}}' configuration: content: $ref: dashboard.pipeline.yml $refType: text

我试过像这样的绝对路径: ref: https://raw.githubusercontent.com/org/repo/master/.bluemix/dashboard.pipeline.yml 但它出错了

repository contains an invalid template. File not found

我可以将管道的位置更改为在其自己的存储库中,还是必须与 toolchain.yml 位于同一位置?

是的,正如您所猜到的,任何用 $ref$text 引用的文件在同一个 repo 或 zip 文件中必须是 co-located。我们可能会在未来提供对引用和扩展另一个模板的支持,但目前还没有具体内容。

--

还有... 此处应优先使用 $text 而不是 $ref$refType

管道的 "content" 元素需要原始文本,这也是我们添加 $refType: text 的原因。但是,JSON 参考文献中指定的 $ref 明确忽略了兄弟姐妹,因此尽管我们目前支持 $refType,但以后最好只使用 $text

content: $text: dashboard.pipeline.yml