Как сгенерировать конкретную версию пакета nuget из лазурных конвейеров, используя конфигурацию yaml - PullRequest
0 голосов
/ 28 ноября 2018

У меня определена конфигурация сборки:

https://github.com/cpoDesign/APIFramework/blob/master/azure-pipelines.yml

Мне удалось создать пакет nuget, используя следующую команду

- task: DotNetCoreCLI@2
  inputs:
    command: pack
    projects: '**/*ApiFramework.csproj'

Подмножествовывод задачи сценария:

  Task "PackTask"
2018-11-27T23:02:32.4459067Z          Successfully created package '/home/vsts/work/1/a/CPODesign.ApiFramework.1.0.0.nupkg'.

Следующий шаг решен:

Я не хочу создавать сборку с выпуском в nuget, поскольку эти шаги должны быть логически разделены.Поэтому я создал новый шаг. Создайте отбрасывание.

Конфигурация:

Мое определение задачи сброса:

- task: PublishBuildArtifacts@1
  inputs:
    pathtoPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: drop
    contents: '**/$(BuildConfiguration)/**/?(*.nupkg)'

Построение вывода:

2018-11-27T23:04:24.6351310Z ##[section]Starting: PublishBuildArtifacts
2018-11-27T23:04:24.6353582Z ==============================================================================
2018-11-27T23:04:24.6353896Z Task         : Publish Build Artifacts
2018-11-27T23:04:24.6353944Z Description  : Publish build artifacts to Azure Pipelines/TFS or a file share
2018-11-27T23:04:24.6354007Z Version      : 1.142.2
2018-11-27T23:04:24.6354046Z Author       : Microsoft Corporation
2018-11-27T23:04:24.6354091Z Help         : [More Information](https://go.microsoft.com/fwlink/?LinkID=708390)
2018-11-27T23:04:24.6354156Z ==============================================================================
2018-11-27T23:04:26.1357631Z ##[section]Async Command Start: Upload Artifact
2018-11-27T23:04:26.1357755Z Uploading 1 files
2018-11-27T23:04:26.6373194Z File upload succeed.
2018-11-27T23:04:26.6373313Z Upload '/home/vsts/work/1/a' to file container: '#/1558454/drop'
2018-11-27T23:04:27.9231805Z Associated artifact 91 with build 806
2018-11-27T23:04:27.9231947Z ##[section]Async Command End: Upload Artifact
2018-11-27T23:04:27.9232436Z ##[section]Finishing: PublishBuildArtifacts

Примечание: Пользовательский интерфейс для Azure-Devops изменился, и артефакты (артефакты) больше не создаются как новая вкладка, а добавляются в отчет довольно плохорезюме

Вопрос:

Как мне сгенерировать конкретную версию пакета nuget IE: 1.0.% (Build.BuildId)?

Myпоследняя попытка

- task: DotNetCoreCLI@2
  inputs:
    command: pack
    projects: '**/*ApiFramework.csproj'
   # packageVersion:'1.0.$(Build.BuildId)'

, где

   packageVersion:'1.0.$(Build.BuildId)'

Приведет к сбою сборки (текущая ветка опубликована здесь: https://github.com/cpoDesign/APIFramework/blob/cpoDesign-build-mods-1/azure-pipelines.yml)

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

после нескольких часов разочарований я нашел ответ

  1. Публикация сгенерированного пакета nuget в артефактах сборки
  2. Создание выпуска для публикации пакета nuget

Конфигурация сборки

pool:
  vmImage: 'Ubuntu 16.04'

variables:
  buildConfiguration: 'Release'

steps:
- script: dotnet build --configuration $(buildConfiguration)
  displayName: 'dotnet build $(buildConfiguration)'

- task: DotNetCoreCLI@2
  inputs:
    command: restore
    projects: '**/*.csproj'

- script: dotnet test **/*.Tests.Unit.csproj --logger trx
- task: PublishTestResults@2
  inputs:
    testRunner: VSTest
    testResultsFiles: '**/*.trx'

- script: dotnet pack /p:PackageVersion='1.0.$(Build.BuildId)' --configuration $(buildConfiguration)  -o $(Build.ArtifactStagingDirectory)

- task: PublishBuildArtifacts@1
  inputs:
    pathtoPublish: '$(Build.ArtifactStagingDirectory)'
    artifactName: drop
    contents: '**/$(BuildConfiguration)/**/?(*.nupkg)'

Раздел выпуска

Я обновил релиз для запуска после каждой успешной сборки

dotnet nuget push artefactName.APIFramework/drop/CPODesign.ApiFramework.1.0.$(Build.BuildId).nupkg -k $(myapiKey) -s https://api.nuget.org/v3/index.json
0 голосов
/ 28 ноября 2018

Я не могу видеть содержимое как допустимый ввод в YAML для PublishBuildArtifacts @ 1

Вы хотите сначала выполнить задачу копирования перед выполнением задачи публикации.Как показано в публикации документации?https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/publish-build-artifacts?view=vsts

...