web-dev-qa-db-ja.com

Azure Pipelines:YAMLビルドパイプラインの読み込み中にエラーが発生しました:セグメント数が間違っています

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)'
12
Jaykul

このエラーメッセージは、拡張機能のバージョンが間違っていたことを示しています。私はこれまでに最も役に立たなかったメッセージを推薦しなければなりません...

GitVersionタスクには(ついに!)リリースされたバージョン4があり、Azure Pipelineの世界では明らかに v3が非推奨であることを意味します。したがって、そのタスク拡張機能をインストールする新しいチームは、v4しか使用できません(ただし、yamlをコピーしたチームにはまだv3があります)。

解決策は、最初のステップを次のように変更することでした。

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