Загрузите артефакт из другого конвейера в многоступенчатом YAML - PullRequest
0 голосов
/ 17 июня 2020

В azure DevOps я пытаюсь создать определение многоступенчатого выпуска через yaml. Сборка выполняется с помощью редактора classi c, а артефакты загружаются в конвейеры azure. поэтому я хочу получить доступ к определенному артефакту c для развертывания

- 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)'

Когда я пробую его через выпуск classi c с помощью задачи «Загрузить артефакт конвейера», это успешно, но когда я попробуйте через yaml, он не срабатывает с ошибкой "## [error] Идентификатор запуска недействителен: SSE_XXXXXXXXXXXXXXXXXX_Auto-import_dev_20200423.4" , если есть другой способ получить артефакт из конвейера, было бы полезно, а также вместо of hardcoding pipelineId Я тоже хочу сделать его динамическим c.

1 Ответ

1 голос
/ 18 июня 2020

Загрузить артефакт из другого конвейера в многоступенчатом YAML

Значение pipelineId должно быть идентификатором конвейера сборки, который вы хотите загрузить, а не именем / заголовок конвейера сборки.

Найдите конвейер сборки, который вы хотите загрузить, щелкните запись сборки, которую хотите загрузить, вы увидите ее в строке веб-адреса браузера:

enter image description here

также вместо pipeId жесткого кодирования Я хочу сделать его также динамическим c.

Если вы не хотите жестко запрограммировать pipelineId/runid в определении YAML, вы можете рассмотреть возможность передачи переменной очереди в качестве обходного решения.

Например:

- task: DownloadPipelineArtifact@2
  inputs:
    source: 'specific'
    artifact: 'drop'
    path: $(Build.SourcesDirectory)/bin
    project: 'AndroidBuild'
    pipeline: 12
    runVersion: 'specific'
    runId: $(buildid)

В приведенном выше определении buildid - это переменная , и вы можете настроить его значение во время очереди:

enter image description here

Это не требует внесения каких-либо изменений в конвейер, если вы хотите выбрать другой runId, просто передайте значение во время очереди.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...