GitVersion и bower.json обновляют версию - PullRequest
0 голосов
/ 14 февраля 2019

Мне удалось заставить GitVersion работать над моим проектом .net (который корректно обновляет мой AssemblyInfo.cs).

Теперь я хотел бы сделать то же самое для моего AngularJs приложение.Я вижу, что при запуске GitVersion отображается правильный номер версии, но я хотел бы обновить мой файл bower.json.Кто-нибудь знает, как я могу это сделать?

1 Ответ

0 голосов
/ 14 февраля 2019

Что вы используете для запуска 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

ПРИМЕЧАНИЕ: Здесь, в операторе замены, я предполагаю, что вы хотите заменить все экземпляры составленного номера версии,1.0.0, в файле bower.json.На практике вы захотите настроить эту замену так, чтобы вы заменяли / меняли только тот текст, который вы хотите изменить.

ПРИМЕЧАНИЕ: Вы можете использовать любойсвойство из GitVersion, которое вы хотели бы, я только что использовал LegacySemVer в качестве примера

...