Как установить переменную конвейера Azure Devops с помощью встроенной команды PowerShell? - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть Azure файл yaml сборки Devops, который содержит следующую задачу:

  - task: PowerShell@2
    displayName: 'Set coverage variable'
    inputs:
      targetType: 'inline'
      script: Write-Host "##vso[task.setvariable variable=coverage]Get-Content .\coverage\lcov-report\summary.txt"

Я хотел бы, чтобы эта задача установила переменную coverage в качестве значения содержимого summary.txt. Однако, когда я обращаюсь к переменной в следующей задаче, я вижу, что переменная - это буквально строка Get-Content .\coverage\lcov-report\summary.txt.

. Кажется, в документации нет примеров того, как это осуществить. Это просто ограничение сценариев? Нужно ли устанавливать команду Get-Content для переменной и затем обращаться к этой переменной?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 22 февраля 2020

Пожалуйста, используйте $ () после].

Пример:

##vso[task.setvariable variable=coverage]$(Get-Content .\coverage\lcov-report\summary.txt)"
0 голосов
/ 24 февраля 2020

На самом деле, это задокументировано. Но это может быть не слишком очевидно в нашем официальном do c :) Вы можете найти похожие do c здесь :

Важно

Предопределенные переменные, содержащие пути к файлам, переводятся в соответствующий стиль (Windows стиль C: \ foo \ против Unix style / foo /) в зависимости от типа хоста агента и типа оболочки , Если вы выполняете bash задач скрипта на Windows, вам следует использовать метод переменных среды для доступа к этим переменным, а не метод конвейерной переменной , чтобы убедиться, что вы правильно применили стиль пути к файлу.

Поскольку вы используете переменную конвейера, значение, возвращаемое 'Get-Content .\coverage\lcov-report\summary.txt' как строковый тип, является ожидаемым поведением.

Однако $ () принимает переменную, а не строку. Используйте $(Get-Content .\coverage\lcov-report\summary.txt)

После этого, в следующей задаче, просто используйте ниже, чтобы прочитать значение.

Write-Host No problem reading $env:coverage 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...