#azure-devops #yaml #azure-pipelines
#azure-devops #yaml #azure-конвейеры
Вопрос:
azure-pipelines.yml
Как мне перечислить в файле все переменные, определенные в «Группе переменных», созданной в пользовательском интерфейсе?
Я хотел бы сделать это, чтобы я мог записать эти переменные в .env
файл на этапе сборки конвейера.
Комментарии:
1. Привет, как насчет проблемы? Разрешил ли приведенный ниже ответ ваш вопрос? Если нет, не могли бы вы сообщить мне последнюю информацию об этой проблеме?
Ответ №1:
На уровне конвейера нет разницы между переменными, установленными в конвейере, и переменными из группы переменных. Но вы можете использовать Azure DevOps CLI для достижения своей цели.
Пожалуйста, проверьте переменную az pipelines-список переменных группы.
И это способ, которым вы можете вызвать CLI из pipeline — Azure DevOps CLI в Azure Pipeline YAML
Пример для LINUX
steps:
# Updating the python version available on the linux agent
- task: UsePythonVersion@0
inputs:
versionSpec: '3.x'
architecture: 'x64'
# Updating pip to latest
- script: python -m pip install --upgrade pip
displayName: 'Upgrade pip'
# Updating to latest Azure CLI version.
- script: pip install --pre azure-cli --extra-index-url https://azurecliprod.blob.core.windows.net/edge
displayName: 'upgrade azure cli'
- script: az --version
displayName: 'Show Azure CLI version'
- script: az extension add -n azure-devops
displayName: 'Install Azure DevOps Extension'
- script: echo ${AZURE_DEVOPS_CLI_PAT} | az devops login
env:
AZURE_DEVOPS_CLI_PAT: $(System.AccessToken)
displayName: 'Login Azure DevOps Extension'
- script: az devops configure --defaults organization=https://dev.azure.com/{OrganizationName} project="Movie Search Web App" --use-git-aliases true
displayName: 'Set default Azure DevOps organization and project'
- script: |
az pipelines variable-group variable list --group-id 45
displayName: 'Show variable group variables'
Комментарии:
1. В этом последнем сценарии «Показать переменные группы переменных» возможно ли получить группу по имени вместо идентификатора группы?
Ответ №2:
Мы могли бы использовать REST API и скрипт power shell для перебора группы переменных
Создайте токен PAT, сохраните его в переменной конвейера и установите для него значение secret, затем добавьте командную оболочку управления задачами и введите приведенный ниже сценарий
Сценарий командной оболочки:
$connectionToken="$(pat)"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))
$URL = "https://dev.azure.com/{Org name}/{Project name}/_apis/distributedtask/variablegroups?groupIds={Variable group ID}amp;api-version=6.0-preview.2"
$Result = Invoke-RestMethod -Uri $URL -Headers @{authorization = "Basic $base64AuthInfo"} -Method Get
$Variable = $Result.value.variables | ConvertTo-Json -Depth 100
Write-Host $Variable
Результат:
Ответ №3:
Вы можете использовать расширение форматирования группы переменных. В OutputFormat вы можете указать желаемый формат, такой как CLI или JSON
- task: VariableGroupFormatter@0
name: variableGroup
displayName: "Format variables"
inputs:
variableGroupID: '6'
outputFormat: 'JSON'
- script: echo $(variableGroup.formattedVariables)
Результат: