使用Azure Pipelines在Azure Devops Artifacts中发布程序包

时间:2019-02-21 22:37:48

标签: azure-devops

我正在使用Github存储库中的Azure Pipelines。

我能够使用azure-pipelines.yml构建Dotnet Core类库:

trigger:
- master

pool:
  vmImage: 'Ubuntu-16.04'

variables:
  buildConfiguration: 'Release'

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

在构建后将什么内容添加到此脚本中以将程序包发布到Azure Devops Artifacts?

以及如何设置每个版本的发布?来自GitHub标签吗?

1 个答案:

答案 0 :(得分:0)

Here是提供大量yaml示例的文档。

您要定位的区域大约是pushing to an artifact feed

steps:
- task: NuGetCommand@2
  displayName: 'NuGet push'
  inputs:
    command: push
    publishVstsFeed: '<feedName>'
    allowPackageConflicts: true

This部分是关于对软件包进行版本控制的。

variables:
  Major: '1'
  Minor: '0'
  Patch: '0'

steps:
- task: NuGetCommand@2
  inputs:
    command: pack
    versioningScheme: byPrereleaseNumber
    majorVersion: '$(Major)'
    minorVersion: '$(Minor)'
    patchVersion: '$(Patch)'

我们已经完成了与本版本说明部分中所述类似的操作,以允许开发人员增加主要和次要编号,并且补丁和内部版本号均来自内部版本号ex。 1.2.1902.127。这告诉我们此软件包是功能2上1.x家族的成员,是该版本于2019年2月12日的第七次修订。

我们还希望对程序集进行版本控制,因此,我们有一些powershell脚本,它们使用适当的属性值来编写.csproj文件。对于.Net Framework项目,我们使用MSBuild -t:Pack来利用这些属性进行程序包版本控制,对于.Net Standard&Core,我们使用dotnet pack任务。

注意:NuGet.exe在.Net Framework的程序包引用语法中存在一个错误,其中没有填充依赖项树,因此我们使用MSBuild打包这些项目