@@ -381,6 +381,39 @@ func writeFrontMatter(t *testing.T, out io.Writer, keyVals map[string]string) {
381381}
382382
383383func extractVersion (t * testing.T , root string ) * semver.Version {
384+ if v := extractVersionFile (t , root ); v != nil {
385+ return v
386+ } else {
387+ t .Logf ("Unable to get Version from file, fallback to git" )
388+ }
389+
390+ if v := extractVersionGit (t , root ); v != nil {
391+ return v
392+ } else {
393+ t .Logf ("Unable to get Version from Git" )
394+ }
395+
396+ require .FailNow (t , "Unable to get version" )
397+
398+ return nil
399+ }
400+
401+ func extractVersionFile (t * testing.T , root string ) * semver.Version {
402+ data , err := os .ReadFile (path .Join (root , "VERSION" ))
403+ require .NoError (t , err )
404+
405+ v := strings .TrimSpace (string (data ))
406+ sm , err := semver .NewVersion (v )
407+ require .NoError (t , err )
408+
409+ if v := sm .PreRelease .Slice (); len (v ) > 0 && v [0 ] != "" {
410+ return nil
411+ }
412+
413+ return sm
414+ }
415+
416+ func extractVersionGit (t * testing.T , root string ) * semver.Version {
384417 cmd := exec .Command ("git" , "tag" , "--list" )
385418 cmd .Dir = root
386419
@@ -410,12 +443,12 @@ func extractVersion(t *testing.T, root string) *semver.Version {
410443
411444 require .NoError (t , cmd .Wait ())
412445
413- sort .Sort (versions )
414-
415446 if len (versions ) == 0 {
416- require . Fail ( t , "Required at least one version" )
447+ return nil
417448 }
418449
450+ sort .Sort (versions )
451+
419452 return versions [len (versions )- 1 ]
420453}
421454
0 commit comments