[Feature] Implementato sistema di generazione automatica version.json
- Aggiunto MSBuild target che genera version.json automaticamente prima di ogni build - Versione estratta dal tag git più recente (git describe --tags) - Rimosso version.json dal tracking git (file generato automaticamente) - Aggiornato .gitignore per escludere version.json - Il file viene ora rigenerato ad ogni build con versione, commit SHA, branch e timestamp corretti
This commit is contained in:
@@ -42,4 +42,47 @@
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Target per generare automaticamente version.json prima del build -->
|
||||
<Target Name="GenerateVersionJson" BeforeTargets="BeforeBuild;BeforeRebuild">
|
||||
<!-- Esegui git per ottenere il tag più recente e informazioni commit -->
|
||||
<Exec Command="git describe --tags --abbrev=0 2>nul" ConsoleToMSBuild="true" IgnoreExitCode="true">
|
||||
<Output TaskParameter="ConsoleOutput" PropertyName="GitLatestTag" />
|
||||
</Exec>
|
||||
<Exec Command="git rev-parse --short HEAD" ConsoleToMSBuild="true" IgnoreExitCode="true">
|
||||
<Output TaskParameter="ConsoleOutput" PropertyName="GitCommitSha" />
|
||||
</Exec>
|
||||
<Exec Command="git rev-parse --abbrev-ref HEAD" ConsoleToMSBuild="true" IgnoreExitCode="true">
|
||||
<Output TaskParameter="ConsoleOutput" PropertyName="GitBranch" />
|
||||
</Exec>
|
||||
|
||||
<!-- Estrai la versione dal tag (rimuovi il prefisso 'v') -->
|
||||
<PropertyGroup>
|
||||
<ActualVersion Condition="'$(GitLatestTag)' != '' and $(GitLatestTag.StartsWith('v'))">$(GitLatestTag.Substring(1))</ActualVersion>
|
||||
<ActualVersion Condition="'$(GitLatestTag)' != '' and !$(GitLatestTag.StartsWith('v'))">$(GitLatestTag)</ActualVersion>
|
||||
<ActualVersion Condition="'$(GitLatestTag)' == ''">1.0.0-dev</ActualVersion>
|
||||
<ActualCommitSha Condition="'$(GitCommitSha)' != ''">$(GitCommitSha)</ActualCommitSha>
|
||||
<ActualCommitSha Condition="'$(GitCommitSha)' == ''">unknown</ActualCommitSha>
|
||||
<ActualBranch Condition="'$(GitBranch)' != ''">$(GitBranch)</ActualBranch>
|
||||
<ActualBranch Condition="'$(GitBranch)' == ''">local</ActualBranch>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Genera il contenuto JSON -->
|
||||
<PropertyGroup>
|
||||
<FinalVersionJsonContent>
|
||||
{
|
||||
"version": "$(ActualVersion)",
|
||||
"commitSha": "$(ActualCommitSha)",
|
||||
"branch": "$(ActualBranch)",
|
||||
"buildDate": "$([System.DateTime]::Now.ToString('yyyy-MM-dd HH:mm:ss'))",
|
||||
"buildEnvironment": "Development"
|
||||
}
|
||||
</FinalVersionJsonContent>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Scrivi il file version.json -->
|
||||
<WriteLinesToFile File="wwwroot\version.json" Lines="$(FinalVersionJsonContent)" Overwrite="true" />
|
||||
|
||||
<Message Text="Generated version.json with version $(ActualVersion) from git tag" Importance="high" />
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"version": "2.2.0",
|
||||
"commitSha": "01f7846",
|
||||
"branch": "development",
|
||||
"buildDate": "2026-02-02",
|
||||
"buildEnvironment": "Local"
|
||||
}
|
||||
Reference in New Issue
Block a user