![](/img/trans.png)
[英]Upload changes from AzureDevOps git repo to private TFS server using Build/Release pipeline task
[英]How to get the variable value in TFS/AzureDevOps from Build to Release Pipeline?
我在我的 TFS/AzureDevops 構建定義中定義了一個變量(比如time
),並在我的構建定義中使用 PowerShell 任務分配值。
喜歡,
類型:內聯腳本。
內聯腳本:
$date=$(Get-Date -Format g);
Write-Host "##vso[task.setvariable variable=time]$date"
你可以參考這個類似的例子
現在我想在我的發布定義管道中獲取這個值。 我將此構建定義配置為對我的發布定義的持續部署。
如何使用其他變量在發布定義中獲取time
值? 這可能嗎?
這不是將變量從 Build 傳遞到 Release 的官方方式。 完成此操作的唯一方法是將值存儲在文件中(json、xml、yaml、你有什么)並將其作為構建工件附加。 這樣您就可以在發行版中讀取文件並再次設置變量。
Martin Hinshelwood 似乎對這個問題感到非常沮喪, 並將該功能變成了 Azure DevOps Pipelines 的擴展。
包含的任務
- 變量保存任務- 在構建期間,您可以將變量保存到與其他構建資產一起存儲的 json 文件中
- 變量加載任務- 在發布期間,您可以加載保存的變量並訪問它們。
在變量組中使用變量怎么樣?
我設法將變量組中的變量值設置為來自構建管道的變量,然后在發布管道中讀取該變量。
為此,有必要:
$(variableName)
標識。假設它的值將存儲在$(variableValue)
中)。$(variableGroupId)
中),這可以通過在 Azure DevOps 上導航到該變量組來完成。 然后,組 ID 將出現在 URL 中。$(personalAccessToken)
)CI 管道
- powershell: |
az pipelines variable-group variable update --group-id $(variableGroupId) --name $(variableName) --value $(variableValue)
displayName: 'Store the variable in a group variable'
env:
AZURE_DEVOPS_EXT_PAT: $(personalAccessToken)
然后,只需將變量組鏈接到發布管道,變量將被播種到該管道。
我發現了另一種解決方案,即使沒有文本文件也可以使用 Azure REST API 獲取構建參數。
在我的發布管道中,我首先執行此 Powershell 任務以提取任何構建管道參數:
function Get-ObjectMember {
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True, ValueFromPipeline=$True)]
[PSCustomObject]$obj
)
$obj | Get-Member -MemberType NoteProperty | ForEach-Object {
$key = $_.Name
[PSCustomObject]@{Key = $key; Value = $obj."$key"}
}
}
$url = "https://dev.azure.com/$(account)/$(project)/_apis/build/builds/$(Build.BuildId)?api-version=6.0"
$build = Invoke-RestMethod -Uri $url -Headers @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
$params = $build.templateParameters
if ($params) {
$params | Get-ObjectMember | foreach {
Write-Host $_.Key : $_.Value
echo "##vso[task.setvariable variable=$($_.Key);]$($_.Value)"
}
}
我的構建管道包含參數: RELEASE_VERSION
,在執行上述代碼后,我可以在其他發布任務中使用$(RELEASE_VERSION)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.