为什么我的 Azure DevOps 管道无法加载阶段?

问题描述 投票:0回答:1

下面的 yaml 创建一个管道。管道按预期运行,除非您尝试通过门户查看/跳过阶段。此时,我收到错误消息

Unable to load the pipeline's stages.

当我通过门户手动创建管道时,使用与自动生成的管道相同的 ymlPath,我可以加载管道阶段。

parameters:
  - name: 'branch'
    type: string
    default: 'main'
  - name: 'folderPath'
    type: string
  - name: 'pipelineName'
    type: string
  - name: 'repositoryName'
    type: string
  - name: 'repositoryType'
    type: string
    default: 'tfsgit'
  - name: 'skipFirstRun'
    type: boolean
    default: true
  - name: 'ymlPath'
    type: string
  - name: 'jobName'
    type: string
    default: 'CreatePipeline'
  - name: 'dependsOn'
    type: object
    default: []
  - name: 'displayName'
    type: string
    default: 'Create a Pipeline'
  
jobs:
  - job: '${{ parameters.jobName }}'
    displayName: '${{ parameters.displayName }}'
    dependsOn: '${{ parameters.dependsOn }}'
    pool:
      vmImage: windows-latest
    steps:       
      - script: echo $(System.AccessToken) | az devops login
        displayName: 'Login to DevOps'

      - task: PowerShell@2
        name: 'CreatePipeline'
        displayName: 'Create a Pipeline'
        inputs:
          targetType: 'inline'
          failOnStderr: true
          script: |
            $pipelineResult = (az pipelines create `
              --name "${{ parameters.pipelineName }}" `
              --repository "${{ parameters.repositoryName }}" `
              --folder-path "${{ parameters.folderPath }}" `
              --repository-type "${{parameters.repositoryType }}" `
              --branch "${{ parameters.branch }}" `
              --skip-first-run "${{ parameters.skipFirstrun }}" `
              --yml-path "${{ parameters.ymlPath}}" `
              --debug `
              | ConvertFrom-Json)

            Write-Host "##vso[task.setvariable variable=pipelineId;isOutput=true;]$($pipelineResult.id)"
        env:
          SYSTEM_ACCESSTOKEN: $(System.AccessToken)
  1. 我尝试直接运行
    az pipeline show
    CLI 命令,但由于我的组织阻止它而面临策略问题。
  2. 我尝试比较门户中的两个管道(设置等),它们看起来完全相同。
azure-devops yaml azure-pipelines azure-cli
1个回答
0
投票

我的组织最近遇到了同样的问题:尽管我们的 YAML 语法很好,但我们无法加载管道阶段或资源。我不确定我们的解决方案是否适合您的解决方案,但我们发现空的“YAML 的默认代理池”设置导致了该问题(似乎是 Microsoft 错误)。要找到此设置,请执行以下操作:

  • 导航到您的管道并选择“编辑”
  • 打开右上角的烤肉串菜单并选择“触发器”
  • 打开 YAML 选项卡,并验证“YAML 的默认代理池有值”

我不认为价值特别重要。我们为所有管道作业指定池,因此它永远不会被使用。我希望这对您有帮助,就像对我们有帮助一样!

© www.soinside.com 2019 - 2024. All rights reserved.