- Riorganizzato README.md con badge versione, changelog, guida rapida e istruzioni semplificate per Docker/Unraid - Creato CHANGELOG.md secondo standard Keep a Changelog/SemVer - Aggiunto script bump-version.ps1 per gestione automatica versioni e tagging Git - Aggiornate guide deployment: PUBLISHING_GUIDE.md, UNRAID_INSTALL.md e README.md in /deployment - Modificato unraid-template.xml: porta WebUI configurabile (default 8888), volumi e variabili ambiente semplificati - Aggiornata PROJECT_STRUCTURE.md con nuova struttura e best practices - Migliorata chiarezza, professionalità e automazione del workflow di rilascio
150 lines
4.2 KiB
PowerShell
150 lines
4.2 KiB
PowerShell
# Version Bump Script
|
|
# Aggiorna automaticamente la versione nel .csproj e crea tag Git
|
|
|
|
param(
|
|
[Parameter(Mandatory=$true)]
|
|
[ValidateSet('major', 'minor', 'patch')]
|
|
[string]$BumpType,
|
|
|
|
[Parameter(Mandatory=$false)]
|
|
[string]$Message = ""
|
|
)
|
|
|
|
$ErrorActionPreference = "Stop"
|
|
|
|
Write-Host ""
|
|
Write-Host "========================================" -ForegroundColor Cyan
|
|
Write-Host "?? TradingBot Version Bump" -ForegroundColor Cyan
|
|
Write-Host "========================================" -ForegroundColor Cyan
|
|
Write-Host ""
|
|
|
|
# Path al .csproj
|
|
$csprojPath = Join-Path $PSScriptRoot "TradingBot.csproj"
|
|
|
|
if (-not (Test-Path $csprojPath)) {
|
|
Write-Host "? File TradingBot.csproj non trovato!" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
# Leggi versione corrente
|
|
Write-Host "?? Reading current version..." -ForegroundColor Yellow
|
|
[xml]$csproj = Get-Content $csprojPath
|
|
$currentVersion = $csproj.Project.PropertyGroup.Version
|
|
|
|
if (-not $currentVersion) {
|
|
Write-Host "? Version not found in .csproj!" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
Write-Host " Current version: $currentVersion" -ForegroundColor Gray
|
|
|
|
# Parse versione
|
|
$versionParts = $currentVersion.Split('.')
|
|
$major = [int]$versionParts[0]
|
|
$minor = [int]$versionParts[1]
|
|
$patch = [int]$versionParts[2]
|
|
|
|
# Bump versione
|
|
switch ($BumpType) {
|
|
'major' {
|
|
$major++
|
|
$minor = 0
|
|
$patch = 0
|
|
Write-Host " Bumping: MAJOR version (breaking changes)" -ForegroundColor Magenta
|
|
}
|
|
'minor' {
|
|
$minor++
|
|
$patch = 0
|
|
Write-Host " Bumping: MINOR version (new features)" -ForegroundColor Blue
|
|
}
|
|
'patch' {
|
|
$patch++
|
|
Write-Host " Bumping: PATCH version (bug fixes)" -ForegroundColor Green
|
|
}
|
|
}
|
|
|
|
$newVersion = "$major.$minor.$patch"
|
|
$newAssemblyVersion = "$major.$minor.$patch.0"
|
|
|
|
Write-Host " New version: $newVersion" -ForegroundColor Green
|
|
Write-Host ""
|
|
|
|
# Aggiorna .csproj
|
|
Write-Host "?? Updating TradingBot.csproj..." -ForegroundColor Yellow
|
|
|
|
# Update Version
|
|
$csproj.Project.PropertyGroup.Version = $newVersion
|
|
$csproj.Project.PropertyGroup.AssemblyVersion = $newAssemblyVersion
|
|
$csproj.Project.PropertyGroup.FileVersion = $newAssemblyVersion
|
|
|
|
# Save
|
|
$csproj.Save($csprojPath)
|
|
|
|
Write-Host " ? Updated Version: $newVersion" -ForegroundColor Green
|
|
Write-Host " ? Updated AssemblyVersion: $newAssemblyVersion" -ForegroundColor Green
|
|
Write-Host ""
|
|
|
|
# Git commit
|
|
Write-Host "?? Creating Git commit..." -ForegroundColor Yellow
|
|
|
|
$commitMessage = if ($Message) {
|
|
"chore: Bump version to $newVersion - $Message"
|
|
} else {
|
|
"chore: Bump version to $newVersion"
|
|
}
|
|
|
|
git add $csprojPath
|
|
|
|
if ($LASTEXITCODE -ne 0) {
|
|
Write-Host "? Git add failed!" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
git commit -m $commitMessage
|
|
|
|
if ($LASTEXITCODE -ne 0) {
|
|
Write-Host "? Git commit failed!" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
Write-Host " ? Committed: $commitMessage" -ForegroundColor Green
|
|
Write-Host ""
|
|
|
|
# Git tag
|
|
Write-Host "??? Creating Git tag..." -ForegroundColor Yellow
|
|
|
|
$tagName = "v$newVersion"
|
|
$tagMessage = if ($Message) {
|
|
"Release $newVersion - $Message"
|
|
} else {
|
|
"Release $newVersion"
|
|
}
|
|
|
|
git tag -a $tagName -m $tagMessage
|
|
|
|
if ($LASTEXITCODE -ne 0) {
|
|
Write-Host "? Git tag failed!" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
|
|
Write-Host " ? Created tag: $tagName" -ForegroundColor Green
|
|
Write-Host ""
|
|
|
|
# Summary
|
|
Write-Host "========================================" -ForegroundColor Green
|
|
Write-Host "? Version bumped successfully!" -ForegroundColor Green
|
|
Write-Host "========================================" -ForegroundColor Green
|
|
Write-Host ""
|
|
Write-Host "?? Version: $currentVersion ? $newVersion" -ForegroundColor White
|
|
Write-Host "??? Git tag: $tagName" -ForegroundColor White
|
|
Write-Host ""
|
|
Write-Host "?? Next steps:" -ForegroundColor Cyan
|
|
Write-Host " 1. Push commit: git push origin main" -ForegroundColor White
|
|
Write-Host " 2. Push tag: git push origin $tagName" -ForegroundColor White
|
|
Write-Host " 3. Build & Publish: Visual Studio ? Publish (Docker profile)" -ForegroundColor White
|
|
Write-Host " 4. Deploy on Unraid" -ForegroundColor White
|
|
Write-Host ""
|
|
Write-Host "?? Or push both at once:" -ForegroundColor Cyan
|
|
Write-Host " git push origin main --tags" -ForegroundColor White
|
|
Write-Host ""
|