14

我有一个deploy.cmd用于部署 Azure 网站的自定义文件。它做了一些自定义的事情,比如安装 nodejs 版本的 Typescript 和一个 minifier,然后运行单元测试,然后再构建和部署网站本身。

我遇到的问题是运行这个脚本似乎需要越来越长的时间,至少在 Azure 上是这样。deploy.cmd在我的开发笔记本电脑上,运行脚本大约需要 90 秒。但是当我在 Azure 上推出它时,它需要 15-20 分钟才能运行(有时需要 30-40 分钟以上)。我对它在 Web 服务器上花费的时间更长并不感到惊讶——我对它花费的时间超过 10 倍感到有点惊讶。

这是最近部署的日志文件的精简版本:

Command: deploy.cmd
18:54:16.89 - Starting deploy script
18:54:19.92 - Installing typescript
18:54:30.90 - Installing minifier
18:54:44.62 - Restoring Nuget Packages
18:55:48.25 - Building solution
18:59:09.12 - Building test projects
19:04:03.67 - Running Payboard.Common.Tests.dll
19:04:19.80 - Running Payboard.Model.Tests.dll
19:04:25.25 - Running Payboard.Services.Tests.dll
19:06:29.72 - Running Payboard.Integrations.Tests.dll
19:06:49.46 - Running Payboard.Web.Tests.dll
19:07:56.99 - Beginning KuduSync
19:08:03.16 - Finished successfully.

显然,花费大部分时间的是两个构建步骤。我想我可以将它们合并到一个构建步骤中——尽管我不完全确定这将如何与 KuduSync 一起工作。

关于如何加快速度的任何其他建议?或者这基本上只是预期的?

4

2 回答 2

0

您是在进行构建还是重建?只有在需要时才会构建;无论如何,重建都会构建一切。

此外,您可能正在部署发布版本与在本地编译和部署调试版本,并且可能需要更长时间的发布编译优化。(如果是这种情况,请尝试在本地进行发布构建并查看时间是否匹配)

如果您在开始时正在执行诸如“清洁解决方案”之类的操作,请查看您的发布配置文件。

于 2021-04-14T03:38:01.843 回答
0

我怀疑提到 nodejs,有一堆 npm 包被下载作为构建的一部分。在您的本地计算机上,这些已经存在,但 Kudu 每次都将它们恢复到一个干净的文件夹中。

其次,大约 5 分钟的构建时间用于构建(并且可能运行)测试项目。除非在部署工作流程中有意和需要,否则我建议通过标志关闭。

于 2016-07-11T11:22:35.910 回答