我设法让GitVersion在我的 .net 项目上工作(它正确更新了我的 AssemblyInfo.cs)。
现在我想对我的AngularJs应用程序做同样的事情。我可以看到运行GitVersion
显示正确的版本号,但我想更新我的 bower.json 文件。有谁知道我该怎么做?
我设法让GitVersion在我的 .net 项目上工作(它正确更新了我的 AssemblyInfo.cs)。
现在我想对我的AngularJs应用程序做同样的事情。我可以看到运行GitVersion
显示正确的版本号,但我想更新我的 bower.json 文件。有谁知道我该怎么做?
你用什么来执行 GitVersion?即你在使用脚本吗?
GitVersion 不会为您更新该文件,但 GitVersion 将声明当前版本号,然后您可以在脚本中使用其他内容来更新文件。
就个人而言,我在这方面所做的几乎所有事情都是使用Cake完成的,并且有一个名为MagicChunks的插件,这使得这非常容易。例如,这是我在我的一个项目中更新 package.json 文件的方式:
https://github.com/gep13/chocolatey-vscode/blob/develop/build.cake#L137-L139
TransformConfig(projectToPackagePackageJson, projectToPackagePackageJson, new TransformationCollection {
{ "version", parameters.Version.SemVersion }
});
但是你同样可以在 PowerShell、bash 或任何你用来运行构建的东西中做类似的事情。
更新:
要直接在 PowerShell 中执行类似的操作,您需要这样的操作(注意,这尚未经过测试):
$gitVersionExe = "./../<Path to where GitVersion.exe lives>";
$output = . $gitVersionExe
$joined = $output -join "`n"
$versionInfo = $joined | ConvertFrom-Json
$version = $versionInfo.LegacySemVer
(Get-Content .\bower.json).replace('1.0.0', $version) | Set-Content .\bower,json
注意:在这里,在替换语句中,我假设您要替换 bower.json 文件中组成的版本号 1.0.0 的所有实例。在实践中,您将需要微调此替换,以便您只替换/更改您想要更改的文本。
注意: 您可以使用 GitVersion 中的任何您想要的属性,我刚刚使用 LegacySemVer 作为示例