1+ #: package Octokit
2+ #: package NuGet. Versioning
3+ using Octokit ;
4+ using NuGet . Versioning ;
15
6+ var versionFile = new FileInfo ( Path . Combine ( GetGitRootPath ( ) , "src" , "SharpIDE.Godot" , "version.txt" ) ) ;
7+ if ( versionFile . Exists is false ) throw new FileNotFoundException ( versionFile . FullName ) ;
8+ var versionText = await File . ReadAllTextAsync ( versionFile . FullName ) ;
29
3- // var test = await github.Repository.Release.Get(owner, repo, newRelease.TagName);
4- Console . WriteLine ( "false" ) ;
5- return 0 ;
10+ var version = NuGetVersion . Parse ( versionText ) ;
11+ var versionString = version . ToNormalizedString ( ) ;
12+ var releaseTag = $ "v{ versionString } ";
13+
14+ var github = new GitHubClient ( new ProductHeaderValue ( "SharpIDE-CI" ) ) ;
15+ var owner = "MattParkerDev" ;
16+ var repo = "SharpIDE" ;
17+ var release = await GetReleaseOrNull ( ) ;
18+
19+ var resultString = release is null ? "true" : "false" ;
20+ Console . WriteLine ( resultString ) ;
21+ return 0 ;
22+
23+ async Task < Release ? > GetReleaseOrNull ( )
24+ {
25+ try
26+ {
27+ var release = await github . Repository . Release . Get ( owner , repo , releaseTag ) ;
28+ return release ;
29+ }
30+ catch ( NotFoundException )
31+ {
32+ return null ;
33+ }
34+ }
35+
36+ static string GetGitRootPath ( )
37+ {
38+ var currentDirectory = Directory . GetCurrentDirectory ( ) ;
39+ var gitRoot = currentDirectory ;
40+ while ( ! Directory . Exists ( Path . Combine ( gitRoot , ".git" ) ) )
41+ {
42+ gitRoot = Path . GetDirectoryName ( gitRoot ) ; // parent directory
43+ if ( string . IsNullOrWhiteSpace ( gitRoot ) )
44+ {
45+ throw new Exception ( "Could not find git root" ) ;
46+ }
47+ }
48+
49+ return gitRoot ;
50+ }
0 commit comments