Azure管道:加载YAML构建管道时发生错误:段数错误

时间:2018-11-10 04:14:13

标签: azure continuous-integration azure-devops

我将azure-pipelines.yml从一个项目复制到了另一个项目,但无法构建。我确保所有内容都是相同的,并且在两侧都安装了相同的扩展名...

旧版本仍然有效,但新版本无效:

An error occurred while loading the YAML build pipeline. wrong number of segments

这是YAML:

# https://aka.ms/yaml
name: $(Build.DefinitionName)_$(GitVersion_InformationalVersion)
pr:
- master
pool:
  vmImage: 'VS2017-Win2016'    

steps:
- task: gittools.gitversion.gitversion-task.GitVersion@3
  displayName: GitVersion

- powershell: .\bootstrap.ps1
  displayName: 'Restore pre-requisites'

- powershell: .\build.ps1 -OutputDirectory $(Build.ArtifactStagingDirectory)\$(Build.DefinitionName) -SemVer $(GitVersion.InformationalVersion) -Verbose
  displayName: 'Run build script'

- task: richardfennellBM.BM-VSTS-PesterRunner-Task.Pester-Task.Pester@8
  displayName: 'Pester Tests'
  inputs:
    additionalModulePath: '$(Build.ArtifactStagingDirectory)'
    CodeCoverageFolder: '$(Build.ArtifactStagingDirectory)'
    resultsFile: '$(Common.TestResultsDirectory)\Test-$(Build.DefinitionName)_$(Build.BuildNumber).xml'
    CodeCoverageOutputFile: '$(Common.TestResultsDirectory)\Coverage-$(Build.DefinitionName)_$(Build.BuildNumber).xml'

- task: PublishTestResults@2
  displayName: 'Publish Test Results'
  condition: always()
  inputs:
    testRunner: NUnit
    searchFolder: '$(Common.TestResultsDirectory)'

- task: PublishCodeCoverageResults@1
  displayName: 'Publish code coverage'
  inputs:
    summaryFileLocation: '$(Common.TestResultsDirectory)\Coverage-$(Build.DefinitionName)_$(Build.BuildNumber).xml'

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: Module'
  inputs:
    ArtifactName: Module
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'

1 个答案:

答案 0 :(得分:10)

原来,该错误消息表明扩展名的VERSION错误。我必须提名该消息,否则对我们的帮助最少。

GitVersion任务已经(最终!)发布了版本 4 ,并且在Azure Pipeline世界中,显然意味着v3已过时。因此,安装该任务扩展的新团队现在只能使用v4(尽管我从其中复制yaml的团队仍然具有v3)。

解决方案是将第一步更改为:

steps:
- task: gittools.gitversion.gitversion-task.GitVersion@4
  displayName: GitVersion