2

我将 Azure DevOps Pipelines 与 GitVersion 一起使用。

我有一个 git 存储库,文件夹中有两个项目:

ProjectA/ProjectA.csproj
ProjectA/azure-pipelines.yml
ProjectA/gitversion.yml
ProjectB/ProjectB.csproj
ProjectB/azure-pipelines.yml
ProjectB/gitversion.yml

我的 pipeline.yml 的开头如下所示:

trigger:
  branches:
    include:
    - '*'
  paths:
    include:
    - 'ProjectA' <-- ProjectB in the other file

# Setup everything
steps:
- task: NuGetCommand@2
  displayName: 'Install GitVersion CLI Tool'
  inputs:
    command: custom
    arguments: install GitVersion.CommandLine -Version 5.0.0 -OutputDirectory $(Build.BinariesDirectory)/tools -ExcludeVersion  

- task: UseDotNet@2
  displayName: 'Install .NET Core SDK 3.0'
  inputs:
    packageType: 'sdk'
    version: '3.x'
    includePreviewVersions: true


# Execute the GitVersion Tool
- script: mono $(Build.BinariesDirectory)/tools/GitVersion.CommandLine/tools/GitVersion.exe /output buildserver /nofetch
  displayName: 'Execute GitVersion CLI Tool'

其次是dotnet restore、build等。

我的问题是让我们说 ProjectA 通过提交获取版本“-alpha12”。然后我提交给 ProjectB,它得到的版本是“-alpha13”。但是这两个项目是相互独立的,版本也应该如此。

我提到的是,没有通往 gitversion.yml 的路径,我认为构建过程只是使用默认值。但我不知道如何指定 gitversion.yml 的路径,也不知道这是否能解决我的问题。

有人能帮我吗?

4

1 回答 1

2

简而言之,这是行不通的。

GitVersion 旨在为正在运行的整个存储库声明一个版本号。它对该存储库中存在的不同项目一无所知,因此它不能为它们声明不同的版本号。

你只会从 GitVersion 获得一个版本号。

建议将项目 A 和 B 拆分为单独的存储库。

于 2019-08-15T20:11:11.573 回答