我有一个用于部署Azure网站的自定义deploy.cmd
文件。在构建和部署网站本身之前,它会执行一些自定义操作,例如安装Typesjs版本的Typescript和minifier,然后运行单元测试。
我遇到的问题是,运行此脚本似乎需要花费越来越长的时间,至少在Azure上运行。在我的开发笔记本电脑上,运行deploy.cmd
脚本大约需要90秒。但是,当我在Azure上推出它时,需要15-20分钟才能运行(有时甚至超过30-40分钟)。我毫不奇怪它在网络服务器上花了更长的时间 - 我 有点惊讶它的服用时间超过了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一起使用。
关于如何提高速度的任何其他建议?或者这基本上只是期待?
答案 0 :(得分:0)
我怀疑提到nodejs时,有一堆npm软件包作为构建的一部分被下载。在你的本地机器上,这些已经存在,但Kudu每次都在一个干净的文件夹中恢复它们。
其次,大约5分钟的构建时间用于构建(可能正在运行)测试项目。除非在部署工作流程中有意和必要,否则我建议通过标志关闭。
答案 1 :(得分:0)
你在做 build or a rebuild 吗? Build 只会在需要时构建;重建将构建一切。
此外,您可能正在部署发布版本与在本地编译和部署调试版本,并且可能是发布编译优化需要更长的时间。 (如果是这种情况,请尝试在本地进行发布构建,看看时间是否匹配)
如果您在开始时执行诸如“干净的解决方案”之类的操作,请查看您的发布配置文件。