一个仓库中的两个项目

Two projects in one repository

我将 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 的路径,也不知道这是否能解决我的问题。

有人可以帮助我吗?

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

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

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

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