Почему этот выпуск конвейера Azure DevOps не выполняется? - PullRequest
0 голосов
/ 11 ноября 2019

Это проект ASP.NET Core 3.0, который создается без ошибок, но когда он запускает конвейер для выпуска в службу приложений Azure, происходит сбой со следующей ошибкой:

2019-11-10T23: 09: 23.8008460Z ## [ошибка] Ошибка: не найден пакет с указанным шаблоном: D: \ a \ r1 \ a ***. Zip

Что нужно сделать, чтобы исправитьконвейер выпуска? Выпуск конвейера использует в качестве артефакта последнюю сборку.

enter image description here

Ответы [ 2 ]

0 голосов
/ 15 ноября 2019

В конвейере YAML отсутствовали следующие задачи. Не уверен, почему это не включено в шаблон ASP.NET Core, что очень смущает разработчиков, впервые знакомых с Azure DevOps.

- task: DotNetCoreCLI@2
  inputs:
    command: 'publish'
    publishWebProjects: true

- task: CopyFiles@2
  inputs:
    targetFolder: '$(Build.ArtifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)'
    ArtifactName: 'drop'
    publishLocation: 'Container'
0 голосов
/ 13 ноября 2019

В вашем конвейере выпуска вы указали артефакт сборки в области Artifacts enter image description here

При добавлении артефакта сборки в ваш конвейер выпуска вы решили дать емупсевдоним Build Artifact. Это означает, что при самой аренде (с настройками по умолчанию) ваш файл .zip будет находиться в некотором подкаталоге $(system.DefaultWorkingDirectory)/Build Artifact/

Новая уникальная папка в агенте создается для каждого конвейера выпускакогда вы запускаете выпуск, и артефакты загружаются в эту папку. Переменная $ (System.DefaultWorkingDirectory) сопоставляется с этой папкой.


Чтобы обеспечить уникальность каждой загрузки артефакта, каждому источнику артефакта, связанному с конвейером выпуска, автоматически предоставляетсяконкретное местоположение загрузки, известное как псевдоним источника. К этому местоположению можно получить доступ через переменную:

$(System.DefaultWorkingDirectory)\[source alias]

Эта уникальность также гарантирует, что, если впоследствии вы переименуете связанный источник артефакта в его исходное местоположение (например, переименуйте конвейер сборкив Azure Pipelines или проекте в Jenkins) вам не нужно редактировать свойства задачи, поскольку местоположение загрузки, указанное в агенте, не изменяется.

Псевдонимом источника по умолчанию является имяисточник, выбранный при связывании источника артефакта, с префиксом подчеркивания;в зависимости от типа источника артефакта это будет имя конвейера сборки, задания, проекта или репозитория. Вы можете редактировать псевдоним источника на вкладке артефактов конвейера выпуска;например, когда вы изменяете имя конвейера сборки и хотите использовать исходный псевдоним, который отражает имя конвейера сборки.

(из какой-то из обширной документации

Вместо поиска вашего пакета с использованием ***.zip (который не соответствует синтаксису с подстановочными знаками) используйте Build Artifact/**/*.zip

  • ** для рекурсивного поиска в каталогах
    • (я не знаю, какая папка)
  • * - для поиска части заданного уровня пути
    • любого файла / папкичто
      • начинается с (SomeFile.*)
      • заканчивается на (*File.zip)
      • , и я думаю, содержит (*meFi*)

Допущения

Приведенная выше информация предполагает, что вы надлежащим образом публикуете свой артефакт сборки из своего конвейера сборки и что вы добавили правильный артефакт сборки в свой конвейер выпуска. .

...