2017-09-07 25 views
1

我已经设置了一个CI Build,它也在执行一些测试。VisualStudioOnline CI为什么在前提下构建GetSources很慢?

在GetSources步骤中,将Clean设置为true。 我使用了一个git repo。

当我在托管代理中运行构建时,“getSources”大约需要20秒。当我在内部代理上运行构建时,“getSources”大约需要20分钟!

我可以看到,内部代理大多数闲置在CPU和内存方面。我还验证了网络速度约为50 MBit/s。

为什么getSources需要这么长时间?

+0

被克隆的Git仓库有多大? –

+0

VSTS的手动git克隆花费多长时间到本地构建服务器上? – DaveShaw

+0

回购约为530 MB,内部系统的克隆持续约7分钟。 – ChrisM

回答

1

Clean选项对托管代理没有影响。

无论您为干净选项设置了什么(对于干净源代码/所有构建目录/输出目录等都为false或true),当您使用托管代理队列构建时,它始终只下载源代码。

假设您将Clean设置为true并清理所有构建目录。对于私人代理,它将删除包含源文件夹,二进制文件夹,工件文件夹等的整个工作文件夹。但对于托管代理,它只能每次下载源代码。

因此,Hosted代理的执行时间与大多数时间的私有代理不同。

要加快建立私人代理,你可以按照以下任何方面:

  • 一套干净的为假(更有效)。

    由于您在CI构建中排队,因此如果将Clean设置为false,那么私人代理将只会将已修改/创建/删除的文件更新到本地源文件夹。

  • 只有干净的来源,如果你仍然需要设置干净为真。

    它只会清理文件和子文件夹源文件夹(s/)。但是如果你的项目足够大,你最好使用这种方式将Clean设置为false。

+0

如果仅更改** Clean sources **,则私有代理会在“获取源代码”步骤中执行多少分钟?如果托管代理之间仍然存在较大差异,是否可以单独显示日志? –

0

要回答“为什么?”,事实上,您正在系统和Mi​​crosoft数据中心之间复制所有这些文件。我经历过相同的情况,并购买了一些额外的管道以适应。