source

VSTS: 빌드/릴리스 변수를 Powershell 스크립트 작업으로 전달

nicesource 2023. 8. 12. 10:25
반응형

VSTS: 빌드/릴리스 변수를 Powershell 스크립트 작업으로 전달

VSTS에서 빌드 변수를 사용하여 다음과 같은 Azure Web App 애플리케이션 설정을 구성하는 것이 좋습니다.

VSTS Build

Powershell 스크립트를 사용하여 게시 작업을 수행합니다.앱 설정을 설정하기 위해 다음 스크립트를 사용할 수 있습니다.

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

이러한 빌드 변수를 수동으로 Powershell 스크립트 빌드 작업에 전달할 수 있습니다.

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

해시 테이블에 각각 명시적으로 지정하지 않고 모든 빌드 변수를 스크립트로 전달하는 방법이 있습니까?

빌드 변수는 모든 PowerShell 스크립트에 환경 변수로 자동 전달됩니다.

변수를 정의한 경우myVar에서Variables부분.다음과 같이 액세스할 수 있습니다.$env:myVar당신의 대본에서.여기서 한 가지 주목할 점은.로 변환됩니다._예를 들어 변수가myVar.config스크립트에서 다음과 같이 액세스할 수 있습니다.$env:myVar_config.

사용 가능한 변수에는 분기 이름, 빌드 번호 등의 변수도 포함됩니다.사용 가능한 모든 변수를 보려면 더미 빌드/릴리스 정의를 실행하고 인라인 유형을 사용하여 PowerShell 작업을 추가하고 실행합니다.Get-ChildItem Env:사용 가능한 모든 환경 변수가 표시되고 사용자 정의된 모든 변수를 볼 수 있습니다.

자세한 내용은 여기에서 확인할 수 있습니다.

여기서 언급할 가치가 있습니다. 비밀 변수는 스크립트에 환경 변수로 전달되지 않습니다.env:PS로).스크립트에 대한 매개 변수로 전달되는 경우에만 액세스할 수 있습니다.-MyPassword $(Password)https://learn.microsoft.com/en-us/vsts/pipelines/build/variables?view=vsts&tabs=batch#secret-variables 을 참조하십시오.

빌드가 시작될 때 변수가 이미 PowerShell 스크립트로 전달되었습니다.질문을 올바르게 이해했다면 다음과 같이 변수를 하나씩 지정하는 대신 이 변수를 함께 사용하고자 합니다.

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

그러면 방법이 없습니다.

PowerShell 스크립트에 전달되는 문자열을 줄이려면 다음과 같이 변수를 설정할 수 있습니다.

변수 이름:MyRandomService | 값: "MyRandomService" = xxxxxxxxxxxxxx

그런 다음 변수 이름이 전달된 PowerShell 스크립트를 호출하기만 하면 됩니다.

를 위해 변수 그룹을 사용하여 빌드 변수 및 다른 관련 변수 그룹과 밀접하게 관련된 변수를 유지할 수도 있습니다.는 이 답변에서 이것을 쉽게 설정하는 방법을 보여주었습니다.

언급URL : https://stackoverflow.com/questions/36997494/vsts-pass-build-release-variables-into-powershell-script-task

반응형