Il .csproj non viene piu' riscritto a ogni rilascio: i quattro numeri di versione arrivano a dotnet publish come proprieta' da riga di comando, ricavati dal tag su HEAD. Tag, eseguibile, installatore e release portano lo stesso numero per costruzione invece che per disciplina, e un rilascio non lascia piu' una modifica al progetto da committare dopo il fatto. Se HEAD non ha un tag la catena lo crea da se' — numero chiesto o minor successiva alla piu' alta esistente — ma lo fa in fondo, a installatore prodotto: un giro fallito non lascia dietro il tag di una versione mai costruita. Rifiuta di taggare un albero con modifiche non committate, perche' sarebbe un tag che non indica niente di ricostruibile. La configurazione di Gitea viene letta prima di compilare: senza token ci si ferma in due secondi invece che dopo tre minuti di build. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
135 lines
4.1 KiB
JSON
135 lines
4.1 KiB
JSON
{
|
|
// Tutte le attività passano da build/Release.proj: la catena è un solo file
|
|
// MSBuild versionato col codice, e qui restano soltanto i nomi e le domande.
|
|
// MSBuild non può chiedere niente a nessuno — i prompt stanno in "inputs".
|
|
"version": "2.0.0",
|
|
"tasks": [
|
|
{
|
|
"label": "build",
|
|
"detail": "Compilazione di debug, per F5 e per il controllo rapido degli errori.",
|
|
"command": "dotnet",
|
|
"type": "process",
|
|
"args": [
|
|
"build",
|
|
"${workspaceFolder}/AutoBidder.csproj",
|
|
"-c",
|
|
"Debug",
|
|
"/property:GenerateFullPaths=true",
|
|
"/consoleloggerparameters:NoSummary"
|
|
],
|
|
"group": { "kind": "build", "isDefault": true },
|
|
"problemMatcher": "$msCompile"
|
|
},
|
|
{
|
|
"label": "verifica",
|
|
"detail": "Compila e lancia i test. Da eseguire dopo ogni modifica.",
|
|
"type": "process",
|
|
"command": "dotnet",
|
|
"args": [
|
|
"msbuild",
|
|
"${workspaceFolder}/build/Release.proj",
|
|
"-t:Verifica",
|
|
"-nologo",
|
|
"-v:m"
|
|
],
|
|
"group": { "kind": "test", "isDefault": true },
|
|
"problemMatcher": "$msCompile"
|
|
},
|
|
{
|
|
"label": "backtest",
|
|
"detail": "Rigioca i dossier delle aste concluse: quante puntate costerebbe ciascun anticipo, e quante ne fermano i controlli di budget.",
|
|
"type": "process",
|
|
"command": "dotnet",
|
|
"args": [
|
|
"msbuild",
|
|
"${workspaceFolder}/build/Release.proj",
|
|
"-t:Backtest",
|
|
"-nologo",
|
|
"-v:m"
|
|
],
|
|
"presentation": { "reveal": "always", "panel": "dedicated" },
|
|
"problemMatcher": []
|
|
},
|
|
{
|
|
"label": "backtest (giro veloce, 400 aste)",
|
|
"detail": "Come sopra ma su un campione: utile mentre si tarano le strategie.",
|
|
"type": "process",
|
|
"command": "dotnet",
|
|
"args": [
|
|
"msbuild",
|
|
"${workspaceFolder}/build/Release.proj",
|
|
"-t:Backtest",
|
|
"-p:MaxDossier=400",
|
|
"-nologo",
|
|
"-v:m"
|
|
],
|
|
"presentation": { "reveal": "always", "panel": "dedicated" },
|
|
"problemMatcher": []
|
|
},
|
|
{
|
|
"label": "crea installatore",
|
|
"detail": "Verifica, pubblica ed esegue Inno Setup: bin/installer/AutoBidder-<versione>-setup.exe. Crea il tag a pacchetto pronto. Non tocca Gitea.",
|
|
"type": "process",
|
|
"command": "dotnet",
|
|
"args": [
|
|
"msbuild",
|
|
"${workspaceFolder}/build/Release.proj",
|
|
"-t:Pacchetto",
|
|
"-p:Versione=${input:versione}",
|
|
"-nologo",
|
|
"-v:m"
|
|
],
|
|
"presentation": { "reveal": "always", "panel": "dedicated" },
|
|
"problemMatcher": "$msCompile"
|
|
},
|
|
{
|
|
"label": "crea installatore (senza rieseguire i test)",
|
|
"detail": "Solo pubblicazione e Inno Setup. Da usare quando i test sono appena passati.",
|
|
"type": "process",
|
|
"command": "dotnet",
|
|
"args": [
|
|
"msbuild",
|
|
"${workspaceFolder}/build/Release.proj",
|
|
"-t:Pacchetto",
|
|
"-p:Versione=${input:versione}",
|
|
"-p:SaltaVerifica=true",
|
|
"-nologo",
|
|
"-v:m"
|
|
],
|
|
"presentation": { "reveal": "always", "panel": "dedicated" },
|
|
"problemMatcher": "$msCompile"
|
|
},
|
|
{
|
|
"label": "rilascia su Gitea",
|
|
"detail": "Verifica, pubblica, installatore, tag e release su Gitea con i file allegati. La versione viene dal tag su HEAD. Richiede build/gitea.json.",
|
|
"type": "process",
|
|
"command": "dotnet",
|
|
"args": [
|
|
"msbuild",
|
|
"${workspaceFolder}/build/Release.proj",
|
|
"-t:Rilascia",
|
|
"-p:Versione=${input:versione}",
|
|
"-p:Note=${input:note}",
|
|
"-nologo",
|
|
"-v:m"
|
|
],
|
|
"presentation": { "reveal": "always", "panel": "dedicated" },
|
|
"problemMatcher": "$msCompile"
|
|
}
|
|
],
|
|
"inputs": [
|
|
{
|
|
"id": "versione",
|
|
"type": "promptString",
|
|
"description": "Versione — lascia vuoto se hai già taggato (git tag v4.14.0), o per la minor successiva",
|
|
"default": ""
|
|
},
|
|
{
|
|
"id": "note",
|
|
"type": "promptString",
|
|
"description": "Note di rilascio (vuoto = solo il numero di versione)",
|
|
"default": ""
|
|
}
|
|
]
|
|
}
|