VSTS: Pass-build/release-Variablen in Powershell-Skript Aufgabe
Ideal, ich würde wollen, um die Konfiguration der Azure Web App-Einstellungen der Anwendung mithilfe von build-Variablen (auf VSTS), zum Beispiel:
Führen wir unsere veröffentlichen von Aufgaben mithilfe von Powershell-Skripts. Um die Einstellungen der app, das folgende Skript genutzt werden könnte:
param($websiteName, $appSettings)
Set-AzureWebsite -Name $websiteName -AppSettings $appSettings
Konnte ich übergeben Sie diese bauen Variablen manuell in ein Powershell-Skript build-task, like so:
PrepareAppSettings.ps1 -websiteName "MyWebApp" -appsettings @{"MyConnectionString" = $(MyConnectionString);"MyRandomService" = $(MyRandomService);"MyRandomServiceClient"=$(MyRandomServiceClient);"MyRandomServicePassword"=$(MyRandomServicePassword)}
Ist es ein Weg, um pass alle build-Variablen in einem Skript ohne die explizite Angabe jeder in einer hash-Tabelle?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bauen Variablen automatisch übergeben, um die PowerShell-Skripts Umgebungsvariablen.
Also, wenn Sie haben eine variable definiert
myVar
imVariables
Abschnitt. Sie können es als$env:myVar
im Skript. Eine Sache zu beachten hier ist, dass.
ist in einer_
. Für zB. wenn die variablemyVar.config
öffnen Sie es in Ihrem Skript als$env:myVar_config
.Den zur Verfügung stehenden Variablen auch Variablen wie branch-name, build-Nummer usw. Um zu sehen, alle verfügbaren Variablen, ein dummy-build/release definition und fügen Sie eine PowerShell-Aufgabe mit inline-Typ, und führen Sie
Get-ChildItem Env:
. Dies zeigt Ihnen alle verfügbaren Umgebungsvariablen und Sie können sehen, alle Ihre benutzerdefinierten Variablen.Mehr details sind verfügbar hier
Get-ChildItem Env: | Where-Object { $_.Name -like "App:*" } | ForEach-Object { $appSettings.Add($_.Name.Substring(4), $_.Value) }
Es ist hier erwähnenswert, dass Geheimnis Variablen nicht bestanden in Skripts Umgebungsvariablen (
env:
im PS). So nur zugänglich, wenn als Parameter übergeben, um ein Skript, zB.-MyPassword $(Password)
. Sehen https://docs.microsoft.com/en-us/vsts/pipelines/build/variables?view=vsts&tabs=batch#secret-variablesVariablen wurden bereits übergeben PowerShell-Skript aus, wenn das bauen beginnen. Wenn ich verstehe deine Frage richtig, du willst diese Variablen verwenden, gemeinsam statt der Angabe eines nach dem anderen, wie folgende:
Dann gibt es keinen Weg, dies zu tun.
Wenn Sie möchten, dass zur Verringerung der übergebenen strings an das PowerShell-Skript, können Sie die variable wie folgt:
Dann brauchen Sie nur zu rufen Sie die PowerShell-Skript mit der Variablen name übergeben.