问题标签 [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.
gitversion - GitVersion Mainline - 每次推送的版本增量
我正在使用带有 Mainline 模式的 GitVersion。使用默认设置,它会随着 master 中的每次提交增加补丁号。有没有办法在每次推送而不是每次提交时增加补丁数量?
如果我将 3 次提交一起推送,补丁会增加 3。在这种情况下,我会在 VSTS 构建中获得从 2.0.4 到 2.0.7 的版本跳转。
GitVersion.yml
注意:我只有一个分支,即“master”,我将继续将我的更改直接推送到 master。我还不打算使用任何分支策略。
gitversion - GitVersion 性能缓慢
我们的 CI 构建的 GitVersion 步骤现在需要 4-5 分钟,我们无法真正弄清楚为什么。以下是一些基本日志:
这是一个 VSTS 版本。我们正在使用我们认为的 GitFlow。功能分支有时会被删除,有时不会。也许这里有一些清理工作要做。
关于为什么要花这么长时间执行的任何想法?
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。
配置如下:
有人知道如何摆脱这种情况吗?
卢博斯
git - 具有多种服务和独特版本控制的 Mono 存储库
我正在寻找是否有办法在 Mono 存储库中创建唯一版本的微服务。
使用带有多个存储库的 GitVersion,微服务版本是唯一的。
使用带有 Mono Repositories 的 GitVersion,微服务将为整个 repo 共享相同的版本。
有没有办法让 Mono Repository 模型遵循 Multiple Repository 模型的版本控制风格?
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...
?
这是使用该任务的正确方法吗?
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 做的事情,或者一些完全不同(也许更优雅)的方式来实现我想要做的事情?
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 配置设置吗?
下图是我的需求的可视化。
git - 如何为发布流程配置 GitVersion?
我正在尝试配置 GitVersion 以使用发布流分支策略。
基本上,我有一个主线主分支、发布、功能和修复分支。Feature 和 Fix 分支是从 Master 分支创建的,并通过拉取请求合并回 Master。在 sprint 结束时,我从 Master 创建一个 Release 分支,该分支将持续到下一个 sprint 结束时,将创建一个新的 Release 分支。Release 分支不会合并回 master。它们甚至可以在创建新的 Release 分支后被删除。如果需要修补程序,它将在从创建并合并回 master 的 Fix 分支上开发,然后将其挑选到当前的 Release 分支中。我只对主要版本使用 git 标签。
回到 GitVersion,我想对其进行配置,以便在创建新的发布分支时增加次要版本号,并在发布分支上有新提交时增加补丁号(从修复分支中挑选)。
有没有人已经这样做并且可以帮助我?
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。
所以问题是:自定义条件需要什么才能使其正常工作?
angularjs - GitVersion 和 bower.json 更新版本
我设法让GitVersion在我的 .net 项目上工作(它正确更新了我的 AssemblyInfo.cs)。
现在我想对我的AngularJs应用程序做同样的事情。我可以看到运行GitVersion
显示正确的版本号,但我想更新我的 bower.json 文件。有谁知道我该怎么做?