У меня есть расширение Google Chrome, которое имеет manifest.json. Недавно я начал использовать gitversion, и мне это нравится. Есть ли способ, чтобы я мог умножать версию в моем manifest.json всякий раз, когда он изменяется в gitversion?update manifest.json version with gitversion on commit
1
A
ответ
2
В GitVersion нет ничего из этого, что сделает это сегодня. Единственными файлами, которые автоматически обновляются, являются файлы AssemblyInfo. Ничто не мешает вам запускать GitVersion, захватывать полученный результат JSON и использовать утверждённые переменные, чтобы затем обновить файл .json с помощью других средств. Например, если у вас есть сценарий сборки, вы можете сделать именно это.
Взгляните на этом блоге для примера о том, как вы можете сделать это в PowerShell:
http://jake.ginnivan.net/blog/2014/05/25/simple-versioning-and-release-notes/
скопированные сюда с согласия @jakeginnivan
$currentDir = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
$output = . "$currentDir\GitVersion.1.0.0.0\tools\GitVersion.exe"
$joined = $output -join "`n"
$versionInfo = $joined | ConvertFrom-Json
$version = $versionInfo.SemVer
mkdir "$currentDir\Artifacts"
Copy-Item "$currentDir\src\UsefulStuff.psm1" "$currentDir\Artifacts\UsefulStuff.psm1"
(Get-Content "$currentDir\Artifacts\UsefulStuff.psm1") |
Foreach-Object {$_ -replace '__version__',"v$version"} |
Out-File "$currentDir\Artifacts\UsefulStuff.psm1"
Write-Output "##teamcity[buildNumber '$version']"
Я наткнулся на это вопрос, ищущий программный способ обновления файла манифеста расширения google chrome. Я никогда не слышал о gitversion и мне любопытно, почему вы используете его, кажется, что semvar требуется только для сопровождающих пакетов, а не обязательно для окончательных проектов расширения/приложения. Что такое gitversion для вас? –
У меня есть множество других инструментов и пакетов в том же репо, что и в CI. – tofutim