✨ Conditionally Create Release (#8)
This commit is contained in:
@@ -18,7 +18,11 @@ public class CreateGithubRelease(IPipelineContext pipelineContext) : IStep
|
||||
var credentials = new Credentials(token);
|
||||
github.Credentials = credentials;
|
||||
|
||||
var version = NuGetVersion.Parse("0.1.1");
|
||||
var versionFile = await PipelineFileHelper.GitRootDirectory.GetFile("./src/SharpIDE.Godot/version.txt");
|
||||
if (versionFile.Exists is false) throw new FileNotFoundException(versionFile.FullName);
|
||||
var versionText = await File.ReadAllTextAsync(versionFile.FullName, cancellationToken);
|
||||
|
||||
var version = NuGetVersion.Parse(versionText);
|
||||
var versionString = version.ToNormalizedString();
|
||||
var releaseTag = $"v{versionString}";
|
||||
|
||||
|
||||
@@ -1,5 +1,50 @@
|
||||
#:package Octokit
|
||||
#:package NuGet.Versioning
|
||||
using Octokit;
|
||||
using NuGet.Versioning;
|
||||
|
||||
var versionFile = new FileInfo(Path.Combine(GetGitRootPath(), "src", "SharpIDE.Godot", "version.txt"));
|
||||
if (versionFile.Exists is false) throw new FileNotFoundException(versionFile.FullName);
|
||||
var versionText = await File.ReadAllTextAsync(versionFile.FullName);
|
||||
|
||||
// var test = await github.Repository.Release.Get(owner, repo, newRelease.TagName);
|
||||
Console.WriteLine("false");
|
||||
return 0;
|
||||
var version = NuGetVersion.Parse(versionText);
|
||||
var versionString = version.ToNormalizedString();
|
||||
var releaseTag = $"v{versionString}";
|
||||
|
||||
var github = new GitHubClient(new ProductHeaderValue("SharpIDE-CI"));
|
||||
var owner = "MattParkerDev";
|
||||
var repo = "SharpIDE";
|
||||
var release = await GetReleaseOrNull();
|
||||
|
||||
var resultString = release is null ? "true" : "false";
|
||||
Console.WriteLine(resultString);
|
||||
return 0;
|
||||
|
||||
async Task<Release?> GetReleaseOrNull()
|
||||
{
|
||||
try
|
||||
{
|
||||
var release = await github.Repository.Release.Get(owner, repo, releaseTag);
|
||||
return release;
|
||||
}
|
||||
catch (NotFoundException)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
static string GetGitRootPath()
|
||||
{
|
||||
var currentDirectory = Directory.GetCurrentDirectory();
|
||||
var gitRoot = currentDirectory;
|
||||
while (!Directory.Exists(Path.Combine(gitRoot, ".git")))
|
||||
{
|
||||
gitRoot = Path.GetDirectoryName(gitRoot); // parent directory
|
||||
if (string.IsNullOrWhiteSpace(gitRoot))
|
||||
{
|
||||
throw new Exception("Could not find git root");
|
||||
}
|
||||
}
|
||||
|
||||
return gitRoot;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user