问题标签 [gitversion]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1304 浏览

gitversion - GitVersion Mainline - 每次推送的版本增量

我正在使用带有 Mainline 模式的 GitVersion。使用默认设置,它会随着 master 中的每次提交增加补丁号。有没有办法在每次推送而不是每次提交时增加补丁数量?

如果我将 3 次提交一起推送,补丁会增加 3。在这种情况下,我会在 VSTS 构建中获得从 2.0.4 到 2.0.7 的版本跳转。

GitVersion.yml

注意:我只有一个分支,即“master”,我将继续将我的更改直接推送到 master。我还不打算使用任何分支策略。

0 投票
1 回答
836 浏览

gitversion - GitVersion 性能缓慢

我们的 CI 构建的 GitVersion 步骤现在需要 4-5 分钟,我们无法真正弄清楚为什么。以下是一些基本日志:

这是一个 VSTS 版本。我们正在使用我们认为的 GitFlow。功能分支有时会被删除,有时不会。也许这里有一些清理工作要做。

关于为什么要花这么长时间执行的任何想法?

0 投票
1 回答
638 浏览

gitversion - gitversion:跳过找到的第一个标签

我们有以下分支设置:

  • master 和 release/1.0 分支。
  • master,标记为 1.0 并生产 1.0.1、1.0.2 版本。
  • 从 master 创建的 release/1.0 分支,然后 master 标记为 2.0。

期望两个分支都产生“稳定”版本,因此没有预发布标签。

在这些分支上运行 GitVersion 时,发布分支生成版本 1.0.3,主分支生成版本 2.0.1。到目前为止一切顺利,这是我们所期望的。

现在我们的一位同事从发布分支创建了一个新的功能分支,然后他们将 master 合并到该分支中。然后通过拉取请求将功能分支合并回发布分支。完成拉取请求后,GitVersion 现在在发布分支上提供 2.0.X,而不是 1.0.X。

为了尝试解决这个问题,我们将发布分支标记为 1.0.4。然而,随着每个新提交到发布分支,问题又回来了。这迫使使用手动标记每个提交到发布分支,以提供我们想要的版本号。

我们在主线模式下使用 GitVersion 4.0.0-beta0014。

配置如下:

有人知道如何摆脱这种情况吗?

卢博斯

0 投票
1 回答
525 浏览

git - 具有多种服务和独特版本控制的 Mono 存储库

我正在寻找是否有办法在 Mono 存储库中创建唯一版本的微服务。

使用带有多个存储库的 GitVersion,微服务版本是唯一的。

使用带有 Mono Repositories 的 GitVersion,微服务将为整个 repo 共享相同的版本。

有没有办法让 Mono Repository 模型遵循 Multiple Repository 模型的版本控制风格?

0 投票
1 回答
972 浏览

git - 如何阻止 GitVersion 在版本号中包含提交哈希?

我刚刚开始在 TFS 2018.3(VSTS、Azure DevOps)中使用 GitVersion,并真正尝试了简单的选项。我直接使用GitVersion TFS 市场任务。我用 1.1.0.0 标记了主分支并运行了构建。

构建日志显示:

2018-10-25T15:39:53.1843138Z INFO [10/25/18 17:39:53:08] 更新装配信息文件 2018-10-25T15:39:53.1843138Z INFO [10/25/18 17:39: 53:18] 找到 42 个文件 2018-10-25T15:39:53.3123172Z [部分]异步命令开始:更新内部版本号 2018-10-25T15:39:53.3123172Z 将内部版本号更新为 1.2.0-alpha.354-20181025.1用于构建 1107

由此,我希望有一个版本1.2.0-alpha.354-20181025.1,但 AssemblyInformationalVersion 中的结果版本是:

<Assembly: AssemblyInformationalVersion("1.2.0-alpha.354+Branch.develop.Sha.1b44044f1e3324182b9e1f37958b6a4942731e59")>

或者

<Assembly: AssemblyInformationalVersion("1.2.0-some_branch_name.1+366.Branch.feature/some_branch_name.Sha.1b44044f1e3324182b9e1f37958b6a4942731e59")>

有没有办法防止显示Branch.develop.Sha.1b...

这是使用该任务的正确方法吗?

0 投票
0 回答
810 浏览

msbuild - 带有仅 MSBuild 项目的 GitVersionTask v4

这个用例可能有点离题,但我希望有人能帮助我......

多年来,我一直维护着一个 MSBuild 命令“库”——在一个我们将调用的文件中CommonTasks.targets,通过我们的内部 NuGet 服务器分发——它处理我公司项目所需的各种任务。在过去的几年里,我一直使用 GitVersion v3 来生成库自己的 NuGet 包版本号以及GetVersion直接使用 GitVersion 的 MSBuild 目标(例如,在生成相应的 git 标签时),以避免需要提取 GitVersion - 从依赖项目的程序集生成的版本,构建后。

以前(使用 GitVersion v3),我的CommonTasks.targets文件只需要导入位于 GitVersion 的 NuGet 包中的 GitVersionTask.targets 文件\build\dotnet\GitVersionTasks.targets。这个目标文件依次执行必要的UsingTask命令(特别是GitVersionTask.GetVersion),然后让我在导入后调用<GetVersion ...>我自己的文件。.targets

在 v4 中,GitVersionTask 引入了对 UtilPack.NuGet.MSBuild 的依赖(我收集它有助于各种 NuGet 命令)。首先,这意味着我需要导入它的UtilPack.NuGet.MSBuild.props文件,否则 GitVersionTask 根本不会加载。但是,完成此操作后,我现在尝试GetVersion从 MSBuild 文件中调用时遇到意外错误。看起来,GetVersion 目标现在尝试查询我定义的所有 NuGet 存储库(nuget.org、本地缓存、我们公司服务器等)以获取我的库的打包版本,最后我收到了这个错误:

我不明白为什么它会尝试 NuGet 检索,即使这是新的默认行为,我也不知道禁用它的方法,或者禁止它,我不知道它为什么不起作用。我认为该错误一定与这不是一个普通的.NET 项目有关(即,除了.targets 文件、没有.csproj 文件等之外没有源代码)。但是我的库被许多普通的 .NET 项目使用,这些项目本身使用 GitVersionTask 对其程序集进行自动版本控制。

现在我已经将我的库固定到 GitVersionTask v3,但非常想弄清楚如何允许它使用 v4,就像我之前使用的 v3 一样。我可能会改用 GitVersion.CommandLine 包并解析其输出,但我最终确实需要这些 GitVersion 生成的版本作为 MSBuild 属性,以便按预期使用它们。并且依赖项目也使用 GitVersionTask(不是 CLI),可以很方便地为两者使用一个包。

有没有办法解决我正在使用 GitVersionTask v4 做的事情,或者一些完全不同(也许更优雅)的方式来实现我想要做的事情?

0 投票
0 回答
261 浏览

git - Git 版本控制新方法

我正在尝试在我的项目上自动化 Nuget 版本控制。我将 VSTS 用于 CI/CD 层。我一个人工作。在项目的同时,我想了解 git 的秘密。

我尝试了 Git Flow 标准,但它并没有满足我的需求。

我心中的流程是:只有2个分支,Master分支将是永久的,其他分支将是临时的。当我将它合并到 master 时,我将删除临时分支。为了修复错误和增加补丁版本,我将直接将更改提交到 master 分支。为了增加次要版本,我将使用分支策略。对于重大更改,我想使用 GitVersion (Writing +semver: major to commit message Source1 )

为了我的需要,我尝试使用 GitVersion ( Source )。它使用 SemVer。而且我无法根据需要设置 GitVersion.yml 文件。

你知道有什么方法可以实现我的目标或 GitVersion 配置设置吗?

下图是我的需求的可视化。

在此处输入图像描述

0 投票
2 回答
2187 浏览

git - 如何为发布流程配置 GitVersion?

我正在尝试配置 GitVersion 以使用发布流分支策略。

在此处输入图像描述

基本上,我有一个主线主分支、发布、功能和修复分支。Feature 和 Fix 分支是从 Master 分支创建的,并通过拉取请求合并回 Master。在 sprint 结束时,我从 Master 创建一个 Release 分支,该分支将持续到下一个 sprint 结束时,将创建一个新的 Release 分支。Release 分支不会合并回 master。它们甚至可以在创建新的 Release 分支后被删除。如果需要修补程序,它将在从创建并合并回 master 的 Fix 分支上开发,然后将其挑选到当前的 Release 分支中。我只对主要版本使用 git 标签。

回到 GitVersion,我想对其进行配置,以便在创建新的发布分支时增加次要版本号,并在发布分支上有新提交时增加补丁号(从修复分支中挑选)。

有没有人已经这样做并且可以帮助我?

0 投票
1 回答
355 浏览

azure - 如何使用 Azure DevOps 上的 GitVersion 将取决于发布或预发布的工件上传到 Artifactory?

我更喜欢在 Repo[dev|test|prod] -> Artifact Name -> Releases Artifacts go here -> Pre-Releases 进入子文件夹的层次结构中组织 Artifactory 中的工件。

为什么?因此,当我浏览 Artifactory Repository Browser 时,我没有一棵非常长的树。我可以展开存储库并按工件名称查看第一级,但仍然看不到任何工件,然后展开工件名称叶子,然后查看我发布的工件。但是,下面的顶部项目将是一个名为“prerelease”的子目录文件夹。这样做是为了让我可以轻松地手动删除我的所有预发布,如果我想在一个操作中这样做,或者计划清理它们。

我知道如何使用 Artifactory 文件规范将包上传到我的存储库:

我需要做的是将每个文件规范放入其自己的构建步骤中,然后添加将执行一个构建步骤或另一个构建步骤的条件,但绝不会同时执行两者。为什么?因为构建工件将永远是预发布或发布工件,但永远不会两者兼而有之。我正在使用 GitVersion 和 Git Tags 以及 Azure DevOps。

所以问题是:自定义条件需要什么才能使其正常工作?

0 投票
1 回答
133 浏览

angularjs - GitVersion 和 bower.json 更新版本

我设法让GitVersion在我的 .net 项目上工作(它正确更新了我的 AssemblyInfo.cs)。

现在我想对我的AngularJs应用程序做同样的事情。我可以看到运行GitVersion显示正确的版本号,但我想更新我的 bower.json 文件。有谁知道我该怎么做?