GitVersion и bower.json обновляют версию

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

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

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

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

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

Другие вопросы по тегам