如何 运行 对具有多个触发器的多个存储库执行相同的作业?
How to run the same job against multiple repositories with multiple triggers?
所以我正在积极尝试规避 bamboo 的工作限制,因为我有许多不活跃的存储库,当新平台更新出现或添加一次性新功能时,这些存储库偶尔会得到修复。
我希望我的存储库轮询发现我的一个存储库分支发生了变化,运行 工作,然后 presto-change-o 我们回到方块 1,我正在再次监听来自另一个更改的另一个存储库轮询更新。
示例:
- Repo 1 已推送提交
- 斑竹"hears"改变并开始工作
- Repo 2 已推送提交
- Bamboo 也听到了此更改,但由于有 1 个代理可用而未继续,此更改已排队等候稍后
- Repo 1 的触发更新完成并发布了一个可以共享的工件
- Bamboo 解析并启动 Repo 2 的工作
这样做有可能吗?到目前为止,我发现的最佳解决方案 (meh) 是只创建一个具有顺序构建的作业,它基本上是 checkout/build/checkout/build/checkout/build 但这将导致我必须 运行 通过许多不必要的步骤来轮询一个存储库中只有一个更新。这些东西又不是经常变化。
您可以将多个存储库添加到构建计划中,并在存储库轮询触发器中选中添加到计划中的所有存储库。
要添加多个存储库,
- 开放计划配置编辑
- Select 第三个选项卡 "Repositories"
- 按"Add repository"按钮。
- 配置您的存储库并保存。
- Select 第四个选项卡 "Triggers".
- 打开您的存储库轮询触发器和 select 您在步骤 3-4 中添加的所有存储库。
- 保存触发器。
根据文档,存储库轮询必须检查所有配置的存储库:
https://confluence.atlassian.com/display/BAMBOO058/Triggering+builds
您还可以将额外的存储库添加到源代码检查任务中,并检查不同子目录中的每个存储库。
例如。对于 repos R1
、R2
、R3
,您将拥有工作副本目录 ./W1
、./W2
、./W3
.
然后由您决定 - 要么将汇编程序任务 T
克隆到 T1
、T2
、T3
以相应地从每个工作副本进行构建,然后它将在每次提交时对所有作业完成,它们都会生成具有相同内部版本号的工件,或者您可以添加一个 shell 脚本任务并编写一个 shell 脚本来发现最新的提交所有工作副本(假设它是 ./W2
),为该工作副本子目录创建符号 link 作为 ./MySymbolicLink
,您组装构建的工作将从 ./MySymbolicLink
开始文件夹。
所以我正在积极尝试规避 bamboo 的工作限制,因为我有许多不活跃的存储库,当新平台更新出现或添加一次性新功能时,这些存储库偶尔会得到修复。
我希望我的存储库轮询发现我的一个存储库分支发生了变化,运行 工作,然后 presto-change-o 我们回到方块 1,我正在再次监听来自另一个更改的另一个存储库轮询更新。
示例:
- Repo 1 已推送提交
- 斑竹"hears"改变并开始工作
- Repo 2 已推送提交
- Bamboo 也听到了此更改,但由于有 1 个代理可用而未继续,此更改已排队等候稍后
- Repo 1 的触发更新完成并发布了一个可以共享的工件
- Bamboo 解析并启动 Repo 2 的工作
这样做有可能吗?到目前为止,我发现的最佳解决方案 (meh) 是只创建一个具有顺序构建的作业,它基本上是 checkout/build/checkout/build/checkout/build 但这将导致我必须 运行 通过许多不必要的步骤来轮询一个存储库中只有一个更新。这些东西又不是经常变化。
您可以将多个存储库添加到构建计划中,并在存储库轮询触发器中选中添加到计划中的所有存储库。
要添加多个存储库,
- 开放计划配置编辑
- Select 第三个选项卡 "Repositories"
- 按"Add repository"按钮。
- 配置您的存储库并保存。
- Select 第四个选项卡 "Triggers".
- 打开您的存储库轮询触发器和 select 您在步骤 3-4 中添加的所有存储库。
- 保存触发器。
根据文档,存储库轮询必须检查所有配置的存储库:
https://confluence.atlassian.com/display/BAMBOO058/Triggering+builds
您还可以将额外的存储库添加到源代码检查任务中,并检查不同子目录中的每个存储库。
例如。对于 repos R1
、R2
、R3
,您将拥有工作副本目录 ./W1
、./W2
、./W3
.
然后由您决定 - 要么将汇编程序任务 T
克隆到 T1
、T2
、T3
以相应地从每个工作副本进行构建,然后它将在每次提交时对所有作业完成,它们都会生成具有相同内部版本号的工件,或者您可以添加一个 shell 脚本任务并编写一个 shell 脚本来发现最新的提交所有工作副本(假设它是 ./W2
),为该工作副本子目录创建符号 link 作为 ./MySymbolicLink
,您组装构建的工作将从 ./MySymbolicLink
开始文件夹。