Ideally, I would want to configure our Azure Web App application settings using build variables (on VSTS), for example:
We perform our publish tasks using Powershell scripts. In order to set app settings, the following script could be used:
param($websiteName, $appSettings)
Set-AzureWebsite -Name $websiteName -AppSettings $appSettings
I could pass these build variables manually into a Powershell script build task, like so:
PrepareAppSettings.ps1 -websiteName "MyWebApp" -appsettings @{"MyConnectionString" = $(MyConnectionString);"MyRandomService" = $(MyRandomService);"MyRandomServiceClient"=$(MyRandomServiceClient);"MyRandomServicePassword"=$(MyRandomServicePassword)}
Is there a way to pass all build variables into a script without having to explicitly specifying each one in a hash table?
Build Variables are automatically passed to all the PowerShell scripts as environment variables.
So if you have defined a variable myVar
in the Variables
section. You can access it as $env:myVar
in your script. One thing to note here is that .
is converted to a _
. For eg. if your variable is myVar.config
, you will access it in your script as $env:myVar_config
.
The available variables also include variables such as branch name, build number etc. To see all the available variables, run a dummy build/release definition and add a PowerShell task with inline type and run Get-ChildItem Env:
. This will show you all the available environment variables and you can see all your custom defined variables.
More details are available here