简体   繁体   English

如何在 git 合并上自动增加 nuget package 版本

[英]How to autoincrement nuget package version on git merge

I have nuget package and right now I am versioning it manually in.csproj file.我有 nuget package,现在我在 .csproj 文件中手动对其进行版本控制。

  <PropertyGroup>
     <TargetFramework>netstandard2.1</TargetFramework>
     <ImplicitUsings>enable</ImplicitUsings>
     <LangVersion>10.0</LangVersion>
     <Version>1.1.0</Version>
  </PropertyGroup>

I want to achieve automatic increment when merge request is merged to master.我想实现merge request合并到master时自动递增。 I do not need it to be saved in version in.csproj (although it will be nice to have) but main goal is to have generated new nuget with higher version.我不需要将它保存在版本 in.csproj 中(尽管拥有它会很好)但主要目标是生成具有更高版本的新 nuget。

Current pipeline is doing only simple upload.当前管道仅进行简单的上传。 It is working all right but only with predefined version.它工作正常,但仅适用于预定义版本。

script:
   - echo "Creating nuget"
   - dotnet restore
   - dotnet build -c release
   - dotnet pack -c release -o publish
   - dotnet nuget add source "${SOURCE}" --name gitlab --username "${TOKEN_NAME}" --password "${TOKEN_PASSWORD}" --store-password-in-clear-text
   - dotnet nuget push "publish/*.nupkg" --source gitlab

Any ideas will be helpful.任何想法都会有所帮助。 Thank you谢谢

Take a look at GitVersion .看看GitVersion It will semantically version your package based on tags, releases, commits, etc.它将根据标签、发布、提交等对您的 package 进行语义版本控制。

Theoretically, it's as easy as从理论上讲,它就像

echo "Creating nuget"
dotnet restore
dotnet tool install --global GitVersion.Tool --version 5.*
dotnet-gitversion
dotnet build -c release
dotnet pack -c release -o publish
etc...

but you should probably read the documentation before copy pasting any code.但您可能应该在复制粘贴任何代码之前阅读文档

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM