我试图为新的VSTS部署保持较低的构建时间,但我遇到了一个问题:我想进行门控部署,其中构建和测试都需要成功部署运行,但由于我们的基础设施,我需要使用带有部署标志的msbuild。
当前构建步骤使用标志:<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid
android:color="@color/pink_dark"/>
<corners
android:radius="3dp"/>
</shape>
当前架构:
/p:AllowUntrustedCertificate=True /p:DeployOnBuild=true /p:PublishProfile="$(PublishProfileName)" /p:Username=$(UserName);Password=$(Password) /p:EnableMSDeployAppOffline=true
理想的架构:
Step 1: Nuget Restore (3s)
Step 2: Build/Deploy Solution (50s)
Step 3: Other Deploy Tasks (102s)
基本上我不想在我不需要的地方招两次50,但是当我使用flag /p:DeployOnBuild时,我不知道msbuild的做法有何不同。
答案 0 :(得分:1)
我认为您应该将所需架构的第4步和第5步拆分为版本定义
这不仅是一种最佳实践,它还允许您仅在构建(步骤1,2和3)成功时激活第二部分,从而节省您的时间。
您可以将发布配置为在构建成功时自动触发,以避免手动触发并节省时间
也许您可以在两个测试项目/类别之间拆分测试,从而允许您微调测试任务,仅针对您需要的目标。
希望有所帮助
答案 1 :(得分:1)
/ p:DeployOnBuild的参数表示在成功构建后部署项目。构建之间没有什么不同,然后发布/部署。
对于第4步,构建时不会花费50多倍的时间,它会检查文件是否被修改,如果没有,结果是最新的,这意味着它不会构建你的项目再次,所以不需要50多个额外的时间。别担心。确保配置和平台相同。
另一方面,baywet的建议相当不错,分4步和5步即可发布。