Я новичок в Azure DevOps; однако то, что я делаю, кажется, должно быть простым: я просто хочу скомпилировать проект и опубликовать его на NuGet.org. Я сталкиваюсь с таким количеством препятствий на пути к этому, что мне кажется, что я, вероятно, неправильно использую инструмент.
У меня есть сборка, которая выглядит так:
trigger:
- master
pool:
vmImage: 'windows-2019'
variables:
buildConfiguration: 'Release'
steps:
- script: dotnet build --configuration $(buildConfiguration) /property:Version=$(Build.BuildNumber)
displayName: 'dotnet build $(buildConfiguration)'
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: 'drop'
Это успешно строит. Однако я получаю следующее предупреждение:
##[warning]Directory 'd:\a\1\a' is empty. Nothing will be added to build artifact 'drop'.
Когда я пытаюсь выполнить развертывание, я получаю ошибки, последняя из которых:
Нет файлов, соответствующих шаблону поиска.
В пакете dotnet вот шаг выпуска для пакета:
steps:
- task: DotNetCoreCLI@2
displayName: 'dotnet pack'
inputs:
command: pack
packagesToPack: '$(System.DefaultWorkingDirectory)/name.project'
Это то, что в настоящее время терпит неудачу, но следующий шаг предназначен для публикации в NuGet (для полноты - и в случае, если есть более простой способ сделать все это):
steps:
- task: DotNetCoreCLI@2
displayName: 'dotnet pack'
inputs:
command: pack
packagesToPack: '$(System.DefaultWorkingDirectory)/name.project'
Релиз имеет артефакт, который я настроил как выход из сборки (я думаю); однако, я получаю ошибку от этого:
Нет версии для name.project или последняя версия имеет
нет артефактов для публикации. Пожалуйста, проверьте исходный конвейер.
Мое понимание того, как это должно работать в целом, заключается в том, что сборка должна содержать этапы создания двоичных файлов и т. Д., Тогда как выпуск должен быть любыми этапами развертывания сборки. Таким образом, я должен иметь возможность собирать и отпускать его несколько раз в нескольких местах. Я чувствую, что это понимание не соответствует ошибкам, которые я вижу.
Правильно ли мое понимание?
Что я мог сделать не так, и, что более важно, каковы методы диагностики проблем с этим?