不遵守 Azure Pipelines 任务超时
Posted
技术标签:
【中文标题】不遵守 Azure Pipelines 任务超时【英文标题】:Azure Pipelines task timeout not respected 【发布时间】:2020-05-02 01:20:41 【问题描述】:我正在运行一个 azure 管道,如下所示。我在 3 个地方设置了超时时间:作业、池和任务,但是步骤运行验收测试总是在 60 分钟后超时并显示错误消息:
配置资源时出错(错误类型:超时)。 操作已取消。
否则,管道中的一切运行正常。
stages:
- stage: Run_Acceptance_Tests
jobs:
- job: Run_Acceptance_Tests
timeoutInMinutes: 180
pool:
name: Hosted VS2017
timeoutInMinutes: 180
demands:
- msbuild
- visualstudio
- vstest
steps:
- task: NuGetToolInstaller@0
displayName: 'Use NuGet 4.4.1'
inputs:
versionSpec: 4.4.1
- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
displayName: 'Build solution'
inputs:
solution: '$(solution)'
msbuildArgs: '/p:SkipInvalidConfigurations=true /p:ExcludeApp_Data=true /p:AutoParameterizationWebConfigConnectionStrings=false /p:MarkWebConfigAssistFilesAsExclude=false /p:ProfileTransformWebConfigEnabled=false /p:TransformWebConfigEnabled=false'
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
- task: FileTransform@2
displayName: 'Transform settings for Acceptance tests'
inputs:
folderPath: '$(Build.SourcesDirectory)'
xmlTransformationRules: '-transform **\Selenium.Tests\App.Test.config -xml **\Selenium.Tests\bin\**\Selenium.Tests.dll.config'
- task: VSTest@2
displayName: 'Run ExcelWraps Acceptance tests'
timeoutInMinutes: 180
inputs:
testAssemblyVer2: |
**\Selenium.Tests.dll
!**\obj\**
searchFolder: '$(Build.SourcesDirectory)'
pathtoCustomTestAdapters: '$(build.sourcesdirectory)\src\packages\NUnit3TestAdapter.3.10.0\build\net35\'
runInParallel: false
codeCoverageEnabled: false
platform: '$(BuildPlatform)'
configuration: '$(BuildConfiguration)'
diagnosticsEnabled: false
uiTests: true
minimumExpectedTests: 10
我已经阅读并重新阅读了文档,并且似乎已经完成了他们要求的一切。 通过将超时设置在我上面提到的位置之一,似乎已经回答了所有这些问题: - https://developercommunity.visualstudio.com/content/problem/375541/60-minutes-time-limit-per-build.html - https://developercommunity.visualstudio.com/content/problem/567714/azure-devops-timeoutinminutes-is-being-ignored-in.html - https://developercommunity.visualstudio.com/content/problem/670377/timeout-not-respected-in-multi-stage-pipeline.html - https://github.com/Microsoft/azure-pipelines-yaml/issues/48 - https://github.com/Microsoft/azure-pipelines-agent/issues/1849
如何增加测试步骤的超时时间?
【问题讨论】:
你的项目是私有的还是公共的? 项目是私有的 所以这就是原因,看我的回答:) 【参考方案1】:在私人项目中,Microsoft 在托管代理中提供的最长超时时间为 60 分钟。
请参阅文档here:
为了避免在您的工作挂起或等待时占用资源 很长,最好限制您的工作被允许的时长 跑步。使用作业超时设置以分钟为单位指定限制 用于运行作业。将该值设置为零意味着作业可以 运行:
永远在自托管代理上 360 分钟(6 小时)在 Microsoft 托管的代理上使用公共项目和公共存储库 在 Microsoft 托管的代理上使用私人项目或 60 分钟 私有存储库
【讨论】:
您可以达到最大值,在您的情况下(私人项目 + 托管代理)最长为 60 分钟。 文档说,对于指定为 0 的值,超时为 60 分钟。它没有说允许的最大值是 60 分钟。我怀疑你是对的,允许的最大值是 60。只是说文档没有这么说。以上是关于不遵守 Azure Pipelines 任务超时的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Azure Pipelines Yaml 上循环多个 Azure 订阅?
Azure DevOps Pipelines 上的 Android SDK 构建工具
Azure Pipelines:在 Powershell 中设置和访问变量
NG 构建在 Azure Pipelines 中失败,并出现 NPM 错误 134