在 Bamboo 中,如何将组件库存储库拉到固定位置以避免每个分支重复?

Posted

技术标签:

【中文标题】在 Bamboo 中,如何将组件库存储库拉到固定位置以避免每个分支重复?【英文标题】:In Bamboo, how do I pull a component library repository to a fixed location to avoid per-branch duplication? 【发布时间】:2014-03-26 11:35:08 【问题描述】:

我有几个项目使用大量组件库中的代码。这些库受源代码控制。

库存储库包含我所有项目使用的所有库,并包含多个库的多个版本。每个库/版本对都位于其自己的文件夹中。我的每个项目都通过其项目文件中引用的文件夹路径来识别它需要的特定库/版本对。

例如$(LibraryPath)\SomeLibrary\v1.1.5

请注意,库存储库只会添加到。不会对存储库中已有的内容进行任何更改。永远。

当然,我已经能够配置我的构建计划以将库存储库拉到工作目录的 libraries 子文件夹中。到现在为止还挺好。但是,使用 Bamboo 的自动分支管理功能,此设置意味着库存储库会为所有项目中的每个分支克隆。

不好笑。不,真的,不好笑……

我想做的是:

在每个构建计划中拉取库存储库 但将其拉到所有构建计划都相同的固定位置 不一定是绝对路径 但它确实需要位于当前构建计划的工作目录之外以避免不必要的重复

不幸的是,Bamboo 构建计划中Source Code Checkout configuration 任务的Checkout Directory 不允许我指定绝对路径或相对路径,该路径从工作目录“向上”上升一个或多个级别。提示文本明确指出“(可选)指定将检出代码的替代子目录。”事实上,指定类似..\Library 的内容会受到“禁止签出到父目录”消息的惩罚。

我看到了关于 Bamboo 的“神器共享”功能的信息。这可能会奏效,但对于我想要实现的目标来说似乎有点矫枉过正。

使用 Atlassian 的 Bamboo 持续集成实现我的目标最简单、最简单的方法是什么?

欢迎使用开箱即用的替代方案,但请不要将我引导至需要密切使用 CLI 和/或其文档假定(广泛)了解 'nix 和/或 Java 设置的任何产品。我在 Windows 上,被强大的 (G)UI 宠坏了。

【问题讨论】:

【参考方案1】:

我也有同样的问题 - 存储库的重量约为 2GB。 我想简单地“git checkout myBranch”和“git clean -fxd”而不是每次都克隆(这应该可以节省大量时间和磁盘空间)。不过我也喜欢 Bamboo 的自动触发功能,它会出现新的分支。

与 OP 一样,我希望能够将“..\SharedDirectory”放入“CheckoutDirectory”中 “源代码检查”任务,但它不会让我超出 \JOB_KEY\ 文件夹

一种可能的解决方案是:将“Source Code Checkout”任务替换为上面的两个 git 命令。这样我就可以指定确切的何时/何地/如何进行结帐。我认为在这种情况下初始结帐可能存在问题 - 但一旦解决,所有后续分支将使用相同的共享文件夹,并且不再每次拉下 2GB。

【讨论】:

开箱即用的想法很好。出于好奇:您认为这适用于“门控签到”吗?换句话说:每次推送到远程(或拉取请求)都运行这个,并且只有在构建成功时才提交?我怀疑这个提交仍然需要结帐才能工作?

以上是关于在 Bamboo 中,如何将组件库存储库拉到固定位置以避免每个分支重复?的主要内容,如果未能解决你的问题,请参考以下文章

如何配置 Bamboo,使其自动从 SVN 中的本地存储库中提取依赖的 jar?

Atlassian Bamboo 无法从远程存储库中读取

从 Bamboo 中的单独 GIT 存储库中提取文件

将 Jar Artifact 从 Bamboo 部署到 Artifactory

将快照从 Bamboo 部署到 Artifactory 时遇到问题

使用 Bit Bucket 的 SSIS 和 Bamboo 集成