I am using the new scriptable build features in Visual Studio Online (not the XAML build definitions), and I am trying to have the build version number include the latest Git Commit ID of the target repository using the Build Number Format.
I am using the following build number format:
$(MajorVersion).$(MinorVersion).$(BuildId).$(SourceVersion)
Which results in a generated version number of 1.0.1234.
- i.e. the SourceVersion value is blank, which causes an error in VSO when queueing a build. I have also tried qualifying the variable by prefixing it with Build.
with the same result. To test, I have changed the build number to the following format:
$(MajorVersion).$(MinorVersion).$(BuildId).$(SourceBranch)
This correctly results in a value of 1.0.1234.refs_heads_master
I have been using the Predefined Variables reference and Build.SourceVersion is listed as a Global Variable.
Am I doing something wrong, have I encountered a bug or is this by design and not available at the time the build is queued? If this is by design, is there any way to automatically include the short Git Commit ID in the Build Number Format?
This is where I set the build number format in VSO:
This is the error I see when I don't explicitly specify a Git CommitId:
400: The build number format string
$(MajorVersion).$(MinorVersion).$(BuildId).$(SourceVersion) generated
a build number 0.1.1. which contains invalid character(s), is too
long, or ends with '.'. The maximum length of a build number is 255
characters. Characters which are not allowed include '"', '/', ':',
'<', '>', '', '|', '?', '@', and '*'.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…