[英]Download Artifact from other pipeline in Multistage YAML
在 azure devops 中,我試圖通過 yaml 創建多階段發布定義。 通過經典編輯器完成構建,並將工件上傳到 azure 管道。 所以我想訪問一個特定的工件進行部署
- task: DownloadPipelineArtifact@2 displayName: 'Download Pipeline Artifact' inputs: buildType: specific project: 'vvxxxxxx-vxxv-xxxv-vxxx-xxxxxxvvxxvv' definition: 5 buildVersionToDownload: specific pipelineId: 'SSE_XXXXXXXXXXXXXXXXXX_Auto-import_dev_20200423.4' artifactName: Service targetPath: '$(Pipeline.Workspace)'
當我使用任務“下載管道工件”通過經典版本嘗試它時它是成功的,但是當我通過 yaml 嘗試它時它失敗並出現錯誤“##[error]Run Id is not valid: SSE_XXXXXXXXXXXXXXXXXX_Auto-import_dev_20200423.4”如果有任何其他方式從管道中獲取工件會很有幫助,而且我也想讓它動態化,而不是硬編碼 pipelineId。
從多級 YAML 中的其他管道下載工件
pipelineId
的值應該是您要下載的構建管道的 ID,而不是構建管道的名稱/標題。
找到您要下載的構建管道,點擊您要下載的構建記錄,您可以在瀏覽器的web地址欄中看到:
我也想讓它動態化,而不是硬編碼 pipelineId。
如果您不想在 YAML 定義中對pipelineId/runid
進行硬編碼,您可以考慮傳遞隊列變量作為解決方法。
例如:
- task: DownloadPipelineArtifact@2
inputs:
source: 'specific'
artifact: 'drop'
path: $(Build.SourcesDirectory)/bin
project: 'AndroidBuild'
pipeline: 12
runVersion: 'specific'
runId: $(buildid)
在上面的定義中, buildid
是變量,你可以在隊列時配置它的值:
當您想選擇另一個runId時,這不需要您對管道進行任何修改,只需在排隊時傳遞值即可。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.