Подтвердить что ты не робот

VSTS: передать переменные сборки в задачу Powershell script

В идеале я хотел бы настроить параметры приложения Azure Web App с помощью переменных сборки (на VSTS), например:

VSTS Build

Мы выполняем наши задачи публикации с использованием сценариев Powershell. Чтобы установить параметры приложения, можно использовать следующий script:

param($websiteName, $appSettings)
Set-AzureWebsite -Name $websiteName -AppSettings $appSettings

Я могу передать эти переменные сборки вручную в задачу сборки Powershell script, например:

PrepareAppSettings.ps1 -websiteName "MyWebApp" -appsettings @{"MyConnectionString" = $(MyConnectionString);"MyRandomService" = $(MyRandomService);"MyRandomServiceClient"=$(MyRandomServiceClient);"MyRandomServicePassword"=$(MyRandomServicePassword)}

Есть ли способ передать все переменные сборки в script без явного указания каждого в хэш-таблице?

4b9b3361

Ответ 1

Строковые переменные автоматически передаются во все сценарии PowerShell в качестве переменных среды.

Итак, если вы определили переменную myVar в разделе Variables. Вы можете получить доступ к нему как $env:myVar в script. Здесь нужно отметить, что . преобразуется в _. Напр. если ваша переменная myVar.config, вы получите доступ к ней в script как $env:myVar_config.

Доступные переменные также включают такие переменные, как имя ветки, номер сборки и т.д. Чтобы просмотреть все доступные переменные, запустите определение фиктивной сборки/выпуска и добавьте задачу PowerShell с встроенным типом и запустите Get-ChildItem Env:. Это покажет вам все доступные переменные среды, и вы сможете увидеть все свои пользовательские определенные переменные.

Более подробная информация доступна здесь

Ответ 2

Переменные уже переданы в PowerShell script при запуске сборки. Если я правильно понял ваш вопрос, вы хотите использовать эти переменные вместе, а не указывать их один за другим, как показано ниже:

PrepareAppSettings.ps1 -websiteName "MyWebApp" -appsettings $(AllVariables)

Тогда нет никакого способа сделать это.

Если вы хотите уменьшить строки, переданные в PowerShell script, вы можете установить следующую переменную:

VariableName: MyRandomService | Значение: "MyRandomService" = xxxxxxxx

Затем вам просто нужно вызвать PowerShell script с переданным именем переменной.