Sto utilizzando le nuove funzionalità di creazione di script in Visual Studio Online (non le definizioni di build XAML) e sto cercando di includere il numero di versione build dell'ultimo Git Commit ID del repository di destinazione utilizzando il formato numero build.Build.SourceVersion è vuoto in VSO vNext Build
Sto usando il seguente formato numero di build:
$(MajorVersion).$(MinorVersion).$(BuildId).$(SourceVersion)
che si traduce in un numero di versione generato dei 1.0.1234.
- vale a dire il valore SourceVersion è vuoto, che causa un errore nella VSO quando in coda una build. Ho anche provato a qualificare la variabile con il prefisso Build.
con lo stesso risultato. Per prova, ho cambiato il numero di build per il seguente formato:
$(MajorVersion).$(MinorVersion).$(BuildId).$(SourceBranch)
Ciò si traduce correttamente in un valore di 1.0.1234.refs_heads_master
Sono stato con il riferimento Predefined Variables e Build.SourceVersion è elencato come una variabile globale .
Sto facendo qualcosa di sbagliato, ho riscontrato un bug o è questo di progettazione e non disponibile al momento in cui la compilazione è in coda? Se questo è in base alla progettazione, esiste un modo per includere automaticamente il breve Git Commit ID nel formato numero build?
Questo è dove ho impostato la build formato numerico in VSO:
Questo è l'errore che vedo quando non specifica esplicitamente un Git CommitId:
400: Il numero di build stringa di formato $ (MajorVersion). $ (MinorVersion). $ (BuildId). $ (SourceVersion) ha generato un numero di build 0.1.1. che contiene caratteri non validi, è troppo lungo o termina con ".". La lunghezza massima di un numero di build è 255 caratteri. I caratteri non consentiti includono "" ","/",": ", " < ","> "," \ "," | ","? "," @ "E" * ".
posso ottenere quello che descritto con '$ (MajorVersion). $ (MinorVersion). $ (Build.BuildId). $ (Build.SourceVersion)'. Ho appena verificato su VSO e TFS 2015 on-premise. L'output è simile a questo: '1.0.20.41f2983578f720695227a7a8a41ed3d7437efc30'. Sei sicuro che non sia un errore di battitura a causare uno strano comportamento dalla tua parte? –
@YanSklyarenko, ottengo sempre "Impossibile espandere la macro $ (Build.SourceVersion) specificata nel formato numero di build (tipo InvalidMacroInBuildNumberException)" eccezione se uso $ (MajorVersion). $ (MinorVersion). $ (Build.BuildId) . $ (Build.SourceVersion) per definire il formato del numero di build. Inoltre, la variabile SourceVersion è l'ultima modifica del controllo della versione inclusa in questa build. CommitId o numero di changeset (CS1234, ad esempio), che non dovrebbe essere qualcosa come "41f2983578f720695227a7a8a41ed3d7437efc30". Mi sono perso qualcosa di importante? –
@Vicky, hmm, questa è una cosa diversa, suppongo. Sembra che l'eccezione ('InvalidMacroInBuildNumberException') indichi che il formato del numero di build non è valido. Voglio dire, si aspetta che Major.Minor.Build.Revision siano tutti numeri, non quegli ID e hash. La parte macro di $ (Build.SourceVersion) funziona, ma non è possibile utilizzarla nel numero di build. Il tuo altro commento: l'ID commit in Git è quel lungo hash, 'CS1234' è il formato del changeset TFVC. –