#powershell #azure-devops #yaml
#powershell #azure-devops #yaml
Вопрос:
Если у меня есть конвейер YAML;
variables:
- name : myVariable
value : 'abcd'
и если я хочу запустить какой-нибудь встроенный powershell — как я могу получить доступ к этому значению (abcd) в сценарии powershell;
Я ожидал, что это сработает, но этого не произошло;
- task: PowerShell@2
displayName: "Do the thing"
inputs:
targetType: 'inline'
script:
write-host $(myVariable)
Комментарии:
1. Afaik, в PowerShell нет собственных анализаторов YAML, но есть несколько внешних, например: powershellgallery.com/packages/powershell-yaml
2. Привет, Джеймс Кук, согласно вашему описанию, я протестировал его, и он работает, я поделился определением yaml и результатом ниже, вы можете это проверить. Если я вас неправильно понял, пожалуйста, опишите ваш вопрос более подробно. Полное определение Yaml лучше. Спасибо.
Ответ №1:
мы могли бы обратиться к этому документу, чтобы указать переменные на уровне конвейера, этапа или задания.
Определение сборки YAML:
pool:
vmImage: 'vs2017-win2016'
variables:
- name : myVariable
value : 'abcd'
steps:
- task: PowerShell@2
displayName: "Do the thing"
inputs:
targetType: 'inline'
script:
write-host $(myVariable)
Результат:
Ответ №2:
Не уверен, работает ли это в Azure DevOps, но в GitLab это:
$VAR_NAME
или
$env:VAR_NAME
Я использую эти две строки в существующем yaml, и они работают нормально:
- $PKG_VERSION = (Get-ChildItem -Path . -Filter *.version).basename
- Write-Host $PKG_VERSION
Комментарии:
1. Если вы не знаете, правильный ли ваш ответ, не публикуйте его как ответ.