[Fix] Refactoring calcolo versione CI/CD: usa git describe invece di dotnet msbuild

Problemi risolti:
- GitHub Windows: errore PowerShell 'Missing closing )' causato da (cd Dir; cmd)
  sintassi bash non valida in PowerShell
- GitHub Linux: versione 1.0.0 invece di 2.3.2 perche il tag v2.3.2 esiste solo
  su Gitea e non su GitHub, quindi MinVer trovava il vecchio tag v1.0.0

Soluzione:
- Sostituito dotnet msbuild -getProperty:Version con git describe --tags --abbrev=0
  che e lo strumento nativo Git per ottenere l'ultimo tag raggiungibile
- Funziona identicamente su Linux (bash) e Windows (PowerShell)
- Non richiede dotnet installato ne accesso al .git dentro Docker
- Rimosso il dotnet build intermedio sul runner (non piu necessario)
- Corretti i percorsi version.json: ora usa Data_Coupler/wwwroot/version.json
  dal root del repo invece di wwwroot/ relativo dopo cd
This commit is contained in:
Alessio Dal Santo
2026-03-22 15:49:42 +01:00
parent c15e6c9065
commit e125e758fb
2 changed files with 40 additions and 52 deletions
+16 -13
View File
@@ -39,15 +39,17 @@ jobs:
with:
dotnet-version: '9.0.x'
- name: Calcola versione con MinVer
- name: Calcola versione
run: |
git fetch --tags --force
VERSION=$(cd Data_Coupler && dotnet msbuild -getProperty:Version -p:ContinuousIntegrationBuild=true 2>/dev/null | tail -1)
if [ -z "$VERSION" ] || [ "$VERSION" = "0.0.0-alpha.0" ]; then
echo "Warning: MinVer non ha trovato tag. Uso fallback."
VERSION="2.3.2-alpha.0.$(git rev-list --count HEAD)"
LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
if [ -z "$LATEST_TAG" ]; then
echo "Warning: Nessun tag Git trovato su questo remote. Uso fallback."
VERSION="2.3.2"
else
VERSION="${LATEST_TAG#v}"
fi
echo "Versione calcolata: $VERSION"
echo "Versione calcolata: $VERSION (da tag: $LATEST_TAG)"
echo "APP_VERSION=$VERSION" >> "$GITHUB_ENV"
shell: bash
@@ -119,16 +121,17 @@ jobs:
with:
fetch-depth: 0 # Necessario per MinVer: deve percorrere tutta la storia Git per trovare i tag
- name: Calcola versione con MinVer
- name: Calcola versione
run: |
git fetch --tags --force
$VERSION = (cd Data_Coupler; dotnet msbuild -getProperty:Version -p:ContinuousIntegrationBuild=true 2>$null | Select-Object -Last 1)
if ([string]::IsNullOrWhiteSpace($VERSION) -or $VERSION -eq "0.0.0-alpha.0") {
Write-Host "Warning: MinVer non ha trovato tag. Uso fallback."
$commitCount = git rev-list --count HEAD
$VERSION = "2.3.2-alpha.0.$commitCount"
$LATEST_TAG = git describe --tags --abbrev=0 2>$null
if ($LASTEXITCODE -ne 0 -or [string]::IsNullOrWhiteSpace($LATEST_TAG)) {
Write-Host "Warning: Nessun tag Git trovato su questo remote. Uso fallback."
$VERSION = "2.3.2"
} else {
$VERSION = $LATEST_TAG -replace '^v', ''
}
Write-Host "Versione calcolata: $VERSION"
Write-Host "Versione calcolata: $VERSION (da tag: $LATEST_TAG)"
"APP_VERSION=$VERSION" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
shell: pwsh