Lo que necesitamos es crear una variable en la definición de release y poner su ámbito como «Release»:
Luego, por cada stage que tengamos, tenemos que activar este check en el agent job:
Luego explicaré por qué. Ahora sólo tenemos que actualizar esta variable una vez subido el DP a LCS. Añadimos un Powershell de tipo inline después del paso de la subida y hacemos esto:
# Populate & store value to update pipeline $assetId= "$(GoldenUpload.FileAssetId)" Write-Output ('##vso[task.setvariable variable=localAsset]{0}' -f $assetId) #region variables $ReleaseVariableName = 'axzfileid' $releaseurl = ('{0}{1}/_apis/release/releases/{2}?api-version=5.0' -f $($env:SYSTEM_TEAMFOUNDATIONSERVERURI), $($env:SYSTEM_TEAMPROJECTID), $($env:RELEASE_RELEASEID) ) #endregion #region Get Release Definition Write-Host "URL: $releaseurl" $Release = Invoke-RestMethod -Uri $releaseurl -Headers @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" } #endregion #region Output current Release Pipeline #Write-Output ('Release Pipeline variables output: {0}' -f $($Release.variables | #ConvertTo-Json -Depth 10)) #endregion #Update axzfileid with new value $release.variables.($ReleaseVariableName).value = $assetId #region update release pipeline Write-Output ('Updating Release Definition') $json = @($release) | ConvertTo-Json -Depth 99 $enc = [System.Text.Encoding]::UTF8 $json= $enc.GetBytes($json) Invoke-RestMethod -Uri $releaseurl -Method Put -Body $json -ContentType "application/json" -Headers @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" } #endregionNecesitamos cambiar lo siguiente:
- Línea 2: $assetId= «$(GoldenUpload.FileAssetId)». Cambiar $(GoldenUpload.FileAssetId) por tu variable de salida.
- Línea 6: $ReleaseVariableName = ‘axzfileid’. Cambiar axzfileid por tu variable de Release.