2016-07-11 6 views
1

У меня есть расширение Google Chrome, которое имеет manifest.json. Недавно я начал использовать gitversion, и мне это нравится. Есть ли способ, чтобы я мог умножать версию в моем manifest.json всякий раз, когда он изменяется в gitversion?update manifest.json version with gitversion on commit

+0

Я наткнулся на это вопрос, ищущий программный способ обновления файла манифеста расширения google chrome. Я никогда не слышал о gitversion и мне любопытно, почему вы используете его, кажется, что semvar требуется только для сопровождающих пакетов, а не обязательно для окончательных проектов расширения/приложения. Что такое gitversion для вас? –

+0

У меня есть множество других инструментов и пакетов в том же репо, что и в CI. – tofutim

ответ

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']"