GitVersion和bower.json更新版本

时间:2019-02-14 17:17:54

标签: angularjs gitversion

我已经设法使GitVersion在我的.net项目(正确更新我的AssemblyInfo.cs)中工作。

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

1 个答案:

答案 0 :(得分:1)

您使用什么来执行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为例。