微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 GitVersion 和 GitFlow 更新 AssemblyVersion/Version 和 NuGet 包版本

如何解决使用 GitVersion 和 GitFlow 更新 AssemblyVersion/Version 和 NuGet 包版本

我是 GitFlow 的新手。我创建了以下脚本以使用 GitVersion 来增加我的构建程序集信息和 NuGet 包版本

name: Publish to NuGet

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  nuget-publish:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with: 
          fetch-depth: 0
      - name: Setup .NET Core
        uses: actions/setup-dotnet@v1
        with:
          source-url: https://api.nuget.org/v3/index.json
          dotnet-version: 3.1.200
        env:
          NUGET_AUTH_TOKEN: ${{secrets.NUGET_API_KEY}}

      - name: Install GitVersion @5
        uses: gittools/actions/gitversion/setup@v0.9.7
        with:
          versionSpec: '5.x'
          updateAssemblyInfo: true

      - name: Restore Dependencies
        run: |
          dotnet restore src/Blundergat.Protobuf/Blundergat.Protobuf.csproj
          dotnet restore src/Blundergat.Messaging/Blundergat.Messaging.csproj 
      - name: Determine Version
        uses: gittools/actions/gitversion/execute@v0.9.7
        with:
          useConfigFile: true
      - name: display SemVer
        run: | 
          echo "SemVer: $GITVERSION_SEMVER"
      - name: Build
        run: |
          dotnet build src/Blundergat.Protobuf/Blundergat.Protobuf.csproj --configuration Release --no-restore
          dotnet build src/Blundergat.Messaging/Blundergat.Messaging.csproj --configuration Release --no-restore
      - name: Run Unit Tests
        run: dotnet test src/Blundergat.Messaging.Test/Blundergat.Messaging.Test.csproj --no-restore --verbosity normal
      - name: Publish to NuGet
        run: |
          mkdir __out
          dotnet pack src/Blundergat.Protobuf/Blundergat.Protobuf.csproj -c Release -o __out --no-restore
          dotnet pack src/Blundergat.Messaging/Blundergat.Messaging.csproj -c Release -o __out --no-restore
          dotnet nuget push "./__out/*.nupkg" --skip-duplicate --no-symbols true --api-key ${{secrets.NUGET_API_KEY}}
          rm -rf __out

这会运行,但我的 NuGet 包版本没有使用 GitVersion 的输出设置。我有两个问题

  1. 我怎样才能获得的NuGet软件包正确使用GitVersion.AssemblySemVer变量更新?

  2. 在我上面两个项目的 .csproj 中,我仍然按如下方式动态设置版本

<PropertyGroup>
    <AssemblyName>Blundergat.Messaging</AssemblyName>
    <RootNamespace>Blundergat.Messaging</RootNamespace>
    <VersionSuffix>1.0.0.$([System.DateTime]::UtcNow.ToString(HHmm))</VersionSuffix>
    <AssemblyVersion Condition=" '$(VersionSuffix)' == '' ">0.0.0.1</AssemblyVersion>
    <AssemblyVersion Condition=" '$(VersionSuffix)' != '' ">$(VersionSuffix)</AssemblyVersion>
    <Version Condition=" '$(VersionSuffix)' == '' ">0.0.1.0</Version>
    <Version Condition=" '$(VersionSuffix)' != '' ">$(VersionSuffix)</Version>
    <Company>NA</Company>
    <Authors>Camuvingian</Authors>
    <copyright>copyright © Camuvingian 2020</copyright>
    <Product>Blundergat.Messaging 1.0</Product>
</PropertyGroup>

我仅需要在上取下AssemblyVersionVersion属性

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?