Как использовать параметры шаблона yaml в Azure DevOps Server 2019 on-prem? - PullRequest
1 голос
/ 07 марта 2020

Согласно официальной документации на https://docs.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops-2019 Azure DevOps Server 2019 on-prem поддерживает все.

Пока я не могу заставить его работать с простым шаблоном yaml с параметры.

Вот мой шаблон yaml (с именем prepare-sonar-qube.yml):

parameters:
- name: projectKey
  type: string

- name: projectName
  type: string
  default: ${{ parameters.projectKey }}

- name: useDotCover
  type: boolean
  default: false

steps:
- template: install-java.yml

- task: SonarQubePrepare@4
  displayName: 'Prepare SQ Analysis'
  inputs:
    SonarQube: 'SonarQube'
    scannerMode: 'MSBuild'
    projectKey: parameters.projectKey
    projectName: parameters.projectName
    ${{ if parameters.useDotCover }}: 
      extraProperties: |
        sonar.cs.dotcover.reportsPaths=$(Common.TestResultsDirectory)\coverage\*.CoverageResult.html
        sonar.inclusions=**/*.cs
    ${{ if !parameters.useDotCover }}: 
      extraProperties: |
        sonar.cs.opencover.reportsPaths=$(Common.TestResultsDirectory)\coverage\*.CoverageResult.xml 
        sonar.inclusions=**/*.cs

Вот azure -pipelines.yml:

trigger:
- master

name: 1.0.$(Date:yy)$(DayOfYear)$(Rev:.r)

jobs:
- job: Build
  pool:
    demands: DotNetFramework
  workspace:
    clean: all
  variables:
  - template: variables.yml  
  steps:
  - template: prepare-sonar-qube.yml
    parameters:
      projectKey: logs2db

...

При запуске сборки я получаю следующее сообщение об ошибке:

/prepare-sonar-qube.yml (Line: 2, Col: 1): A sequence was not expected

enter image description here

Так что я делаю не так? (Помимо того, что он был лояльным клиентом TFS, который застрял с устаревшим Azure DevOps Server 2019, который на данный момент не выглядит go нигде в сравнении с постоянно развивающимися Azure DevOps Services) *

Ответы [ 2 ]

0 голосов
/ 09 марта 2020

Вы не сделали ничего плохого. Нужно сожалеть, что это наш документ.

Синтаксис, который вы используете, - это наша новая функция richer YAML syntax, которая до сих пор не поддерживается в Azure DevOps Server 2019.

Чтобы publi c узнал об этом и избежал этого до того, как мы внесем изменения в документ, я создаю тему и объявляю об отсутствии поддержки здесь .


В настоящее время локальный сервер поддерживает только более старый синтаксис , где значения по умолчанию объявляются как отображение без ограничений типа или значения:

parameters:
  solution: '**/*.sln'

или

parameters:
  solution: ''
0 голосов
/ 07 марта 2020

Это похоже на простую проблему с отступами.

Вот фрагмент одного из моих рабочих шаблонов.

parameters:
  - name: sln
    type: string
    default: ''
  - name: slnName
    type: string
    default: ''
  - name: proj
    type: string
    default: ''

Попробуйте использовать space space - name: [name]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...