diff --git a/build/_build/Build.cs b/build/_build/Build.cs index 38e8acd..c5f5691 100644 --- a/build/_build/Build.cs +++ b/build/_build/Build.cs @@ -84,7 +84,9 @@ public static int Main() => private SemanticVersion? TagVersion => TagName is not null - && SemanticVersion.TryParse(TagName, out var version) + && TagName.Length >= 2 + && TagName[0] == 'v' + && SemanticVersion.TryParse(TagName[1..], out var version) ? version : null; @@ -184,48 +186,55 @@ TagVersion is not null ) .Requires(() => GitHubToken) .Executes( - new Func( - async () => + async () => + { + var repositoryId = GetVariable("GITHUB_REPOSITORY_ID"); + + var client = new GitHubClient( + new ProductHeaderValue("jp2masa"), + new Octokit.Internal.InMemoryCredentialStore( + new Credentials(GitHubToken) + ) + ); + + var release = await client + .Repository + .Release + .Create( + repositoryId, + new NewRelease(TagName!) + { + Draft = true, + Name = TagName!, + Prerelease = TagVersion!.IsPrerelease + } + ); + + // preserve order + foreach (var nupkg in NupkgArtifactsPath.GetFiles()) { - var client = new GitHubClient( - new ProductHeaderValue("jp2masa"), - new Octokit.Internal.InMemoryCredentialStore( - new Credentials(GitHubToken) - ) - ); + using var ms = new MemoryStream(nupkg.ReadAllBytes()); - var release = await client + await client .Repository .Release - .Create( - GetVariable("GITHUB_REPOSITORY_ID"), - new NewRelease(TagName!) - { - Name = TagName!, - Prerelease = TagVersion!.IsPrerelease - } - ); - - // preserve order - foreach (var nupkg in NupkgArtifactsPath.GetFiles()) - { - using var ms = new MemoryStream(nupkg.ReadAllBytes()); - - await client - .Repository - .Release - .UploadAsset( - release, - new ReleaseAssetUpload( - nupkg.Name, - "application/octet-stream", - ms, - null - ) - ); - } + .UploadAsset( + release, + new ReleaseAssetUpload( + nupkg.Name, + "application/octet-stream", + ms, + null + ) + ); } - ) + + await client.Repository.Release.Edit( + repositoryId, + release.Id, + new ReleaseUpdate() { Draft = false } + ); + } ); private static bool StringEqualsOrdinalIgnoreCase(string? x, string? y) => diff --git a/build/_build/_build.csproj b/build/_build/_build.csproj index 77426c8..771146c 100644 --- a/build/_build/_build.csproj +++ b/build/_build/_build.csproj @@ -12,7 +12,11 @@ + + + +