Bamboo 构建停留在 "Waiting to be built..." 上并克隆到 'Common'

Bamboo build stuck on "Waiting to be built..." and Cloning into 'Common'

出于某种原因,我使用 MSBuild 的 bamboo 构建在过去 4 小时内卡住了,并显示以下消息:

"Waiting to be built...".

我尝试停止构建,但卡在“正在取消...”。甚至无法禁用代理。奇怪的是在 IDLE 中有 2 个构建代理。

在我停止构建之前,构建 运行 超过 5 小时并且没有停止。日志说:

simple  04-Mar-2015 21:23:42   Submodule 'web-common' (http://bitbucket.org/abc/web-common) registered for path 'Common'
simple  04-Mar-2015 21:23:43   Cloning into 'Common'...

重新启动构建服务器。工作了几个小时,同样的问题又开始了。厌倦了在不知道根本原因的情况下重新启动构建服务器。

我是 Bamboo 和 GIT 的新手。如果您能提供有关故障排除和修复此问题的建议,那就太好了。

更新:

我通过了构建,但网络部署出现以下错误: C:\bamboo-home\artifacts\XXX\shared\build-xxxx\package 不是目录

你确定你有一个 运行 弹性实例吗? 我有一条类似的消息,我的构建排队很长时间,因为我没有任何 运行 Bamboo 可用于构建的实例。

It was password issue for submodule which is fixed.
Now I'm getting this error

Failure in artifact preparation phase during processing of: 
Subscription for Shared artifact: 
[bla, pattern: [**] anchored at: [deploy_artifact], destination: [] –  

Log message

"C:\bamboo-home\artifacts\XXX\shared\build-xxxx\package is not a directory" 

你可以看看this thread:

您是否在制定计划后创建了新的部署版本?
单一版本始终与特定版本相关。
如果您想使用更新的工件,您需要创建一个新版本。

您还可以检查复制模式,如suggested here


(原始答案)

竹子supports submodules since 3.4 and BAM 8106

如果该支持有问题,您可以 try a workaround, adding a builder task like a custom command executable 作为脚本使用:

#!/bin/bash
BUILDDIR=${bamboo.build.working.directory}
cd $BUILDDIR
git submodule update --init

(取消勾选高级选项中的"Use Submodule"选项)

这将允许您检查子模块是否真的是这里的问题。

我在 Bamboo 上收到此错误“处理过程中工件准备阶段失败:订阅共享工件: [bla,模式:[**] 锚定于:[deploy_artifact],目的地:[] – “

我使用 git 子模块,这个错误是由于 bamboo 所做的一些事情的组合似乎最终导致在后期阶段找不到的“共享工件”

我修复了如下问题

  1. 我在允许 Bamboo 处理签出 git 个子模块

    的 Bamboo 存储库中取消选中复选框“使用子模块”
  2. 我介绍了一个任务,它使用 bamboo 变量 bamboo.repository.git.repositoryUrl 从我的 git 存储库(来自 bitbucket)中显式检出 git 子模块,如下所示

    #不要使用 bamboo 本地 git 缓存 /usr/bin/git 远程删除原点

    #将您的 git 客户端指向实际的 git 存储库 /usr/bin/git 远程添加来源 ${bamboo.repository.git.repositoryUrl} /usr/bin/git远程设置-url原点${bamboo.repository.git.repositoryUrl} /usr/bin/git 远程-v

    #Make sure you first de init and then do a submodule init followed by update /usr/bin/git 子模块 deinit --all --force 。 /usr/bin/git 子模块更新 --init --recursive

    #之后你可以做下一个构建任务

在我的例子中,确保子模块被正确检出确保 bamboo 能够创建工件并共享,然后在执行依赖于这些共享工件的后续任务时找到这些工件。