Skip to content

Commit 8c0180a

Browse files
committed
Pre-Release 23.3.3 artifacts | +semver: patch
1 parent 73c4742 commit 8c0180a

File tree

1 file changed

+19
-56
lines changed

1 file changed

+19
-56
lines changed

build.cake

+19-56
Original file line numberDiff line numberDiff line change
@@ -44,18 +44,10 @@ var artifactsFile = packagesDir + File("artifacts.txt");
4444
var releaseNotesFile = packagesDir + File("ReleaseNotes.md");
4545
var releaseNotes = new List<string>();
4646

47-
// stable releases
48-
var tagsUrl = "https://api.github.com/repos/ThreeMammals/ocelot/releases/tags/";
49-
var nugetFeedStableKey = EnvironmentVariable("OCELOT_NUGET_API_KEY_3Mammals");
50-
var nugetFeedStableUploadUrl = "https://www.nuget.org/api/v2/package";
51-
var nugetFeedStableSymbolsUploadUrl = "https://www.nuget.org/api/v2/package";
52-
5347
// internal build variables - don't change these.
5448
string committedVersion = "0.0.0-dev";
5549
GitVersion versioning = null;
56-
bool IsTechnicalRelease = true;
57-
//string gitHubUsername = "raman-m";
58-
//string gitHubToken = Environment.GetEnvironmentVariable("OCELOT_GITHUB_API_KEY_2");
50+
bool IsTechnicalRelease = false;
5951

6052
var target = Argument("target", "Default");
6153
var slnFile = (target == Release) ? $"./Ocelot.{Release}.sln" : "./Ocelot.sln";
@@ -490,7 +482,7 @@ Task("PublishGitHubRelease")
490482
.IsDependentOn("CreateArtifacts")
491483
.Does(() =>
492484
{
493-
//if (!IsRunningOnCircleCI()) return;
485+
if (!IsRunningOnCircleCI()) return;
494486

495487
dynamic release = CreateGitHubRelease();
496488
var path = packagesDir.ToString() + @"/**/*";
@@ -524,7 +516,7 @@ Task("DownloadGitHubReleaseArtifacts")
524516
System.Threading.Thread.Sleep(5000);
525517
EnsureDirectoryExists(packagesDir);
526518

527-
var releaseUrl = tagsUrl + versioning.NuGetVersion;
519+
var releaseUrl = "https://api.github.com/repos/ThreeMammals/ocelot/releases/tags/" + versioning.NuGetVersion;
528520
var releaseInfo = await GetResourceAsync(releaseUrl);
529521
var assets_url = Newtonsoft.Json.Linq.JObject.Parse(releaseInfo)
530522
.Value<string>("assets_url");
@@ -555,6 +547,10 @@ Task("PublishToNuget")
555547

556548
if (IsRunningOnCircleCI())
557549
{
550+
// stable releases
551+
var nugetFeedStableKey = EnvironmentVariable("OCELOT_NUGET_API_KEY_3Mammals");
552+
var nugetFeedStableUploadUrl = "https://www.nuget.org/api/v2/package";
553+
var nugetFeedStableSymbolsUploadUrl = "https://www.nuget.org/api/v2/package";
558554
PublishPackages(packagesDir, artifactsFile, nugetFeedStableKey, nugetFeedStableUploadUrl, nugetFeedStableSymbolsUploadUrl);
559555
}
560556
});
@@ -593,13 +589,10 @@ private GitVersion GetNuGetVersionForCommit()
593589
private void PersistVersion(string committedVersion, string newVersion)
594590
{
595591
Information(string.Format("We'll search all csproj files for {0} and replace with {1}...", committedVersion, newVersion));
596-
597592
var projectFiles = GetFiles("./**/*.csproj");
598-
599593
foreach(var projectFile in projectFiles)
600594
{
601595
var file = projectFile.ToString();
602-
603596
Information(string.Format("Updating {0}...", file));
604597

605598
var updatedProjectFile = System.IO.File.ReadAllText(file)
@@ -612,22 +605,18 @@ private void PersistVersion(string committedVersion, string newVersion)
612605
/// Publishes code and symbols packages to nuget feed, based on contents of artifacts file
613606
private void PublishPackages(ConvertableDirectoryPath packagesDir, ConvertableFilePath artifactsFile, string feedApiKey, string codeFeedUrl, string symbolFeedUrl)
614607
{
615-
Information("Publishing to NuGet...");
608+
Information("PublishPackages: Publishing to NuGet...");
616609
var artifacts = System.IO.File
617610
.ReadAllLines(artifactsFile)
618611
.Distinct();
619612

620613
foreach(var artifact in artifacts)
621614
{
622615
if (artifact == "ReleaseNotes.md")
623-
{
624616
continue;
625-
}
626617

627618
var codePackage = packagesDir + File(artifact);
628-
Information("Pushing package " + codePackage + "...");
629-
630-
Information("Calling DotNetNuGetPush");
619+
Information("PublishPackages: Pushing package " + codePackage + "...");
631620
DotNetNuGetPush(
632621
codePackage,
633622
new DotNetNuGetPushSettings { ApiKey = feedApiKey, Source = codeFeedUrl }
@@ -638,46 +627,31 @@ private void PublishPackages(ConvertableDirectoryPath packagesDir, ConvertableFi
638627
private void SetupGitHubClient(System.Net.Http.HttpClient client)
639628
{
640629
string token = Environment.GetEnvironmentVariable("OCELOT_GITHUB_API_KEY_2");
641-
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(
642-
"Bearer",
643-
token // Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(gitHubPassword)) // token actually
644-
);
630+
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
645631
client.DefaultRequestHeaders.Add("User-Agent", "Ocelot Release");
646632
client.DefaultRequestHeaders.Add("Accept", "application/vnd.github+json");
647633
client.DefaultRequestHeaders.Add("X-GitHub-Api-Version", "2022-11-28");
648634
}
649635

650636
private dynamic CreateGitHubRelease()
651637
{
652-
//var json = $"{{ \"tag_name\": \"{versioning.NuGetVersion}\", \"target_commitish\": \"main\", \"name\": \"{versioning.NuGetVersion}\", \"body\": \"{ReleaseNotesAsJson()}\", \"draft\": true, \"prerelease\": true }}";
653638
var json = $"{{ \"tag_name\": \"{versioning.NuGetVersion}\", \"target_commitish\": \"main\", \"name\": \"{versioning.NuGetVersion}\", \"body\": \"{ReleaseNotesAsJson()}\", \"draft\": true, \"prerelease\": true, \"generate_release_notes\": false }}";
654639
var content = new System.Net.Http.StringContent(json, System.Text.Encoding.UTF8, "application/json");
655640

656641
using (var client = new System.Net.Http.HttpClient())
657642
{
658-
// client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(
659-
// "Basic",
660-
// Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes($"{gitHubUsername}:{gitHubPassword}"))
661-
// );
662-
// client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(
663-
// "Bearer",
664-
// Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(gitHubPassword)) // token actually
665-
// );
666-
// client.DefaultRequestHeaders.Add("User-Agent", "Ocelot Release");
667-
// client.DefaultRequestHeaders.Add("Accept", "application/vnd.github+json");
668-
// client.DefaultRequestHeaders.Add("X-GitHub-Api-Version", "2022-11-28");
669643
SetupGitHubClient(client);
670-
var result = client.PostAsync("https://api.github.com/repos/ThreeMammals/Ocelot/releases", content)
671-
.Result;
672-
if(result.StatusCode != System.Net.HttpStatusCode.Created)
644+
var result = client.PostAsync("https://api.github.com/repos/ThreeMammals/Ocelot/releases", content).Result;
645+
if (result.StatusCode != System.Net.HttpStatusCode.Created)
673646
{
674-
throw new Exception("CreateGitHubRelease result.StatusCode = " + result.StatusCode);
647+
var msg = "CreateGitHubRelease: StatusCode = " + result.StatusCode;
648+
Information(msg);
649+
throw new Exception(msg);
675650
}
676651
var releaseData = result.Content.ReadAsStringAsync().Result;
677652
dynamic releaseJSON = Newtonsoft.Json.JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JObject>(releaseData);
678653
Information("CreateGitHubRelease: Release ID is " + releaseJSON.id);
679-
//releaseId = test.id;
680-
return releaseJSON; //.id;
654+
return releaseJSON;
681655
}
682656
}
683657

@@ -694,18 +668,13 @@ private void UploadFileToGitHubRelease(dynamic release, FilePath file)
694668

695669
using (var client = new System.Net.Http.HttpClient())
696670
{
697-
// client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(
698-
// "Basic",
699-
// Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes($"{gitHubUsername}:{gitHubPassword}"))
700-
// );
701-
// client.DefaultRequestHeaders.Add("User-Agent", "Ocelot Release");
702671
SetupGitHubClient(client);
703672
int releaseId = release.id;
704673
var fileName = file.GetFilename();
705674
string uploadUrl = release.upload_url.ToString();
706675
Information($"UploadFileToGitHubRelease: uploadUrl is {uploadUrl}");
707-
string[] parts = uploadUrl.Split('{');
708-
uploadUrl = parts[0] + $"?name={fileName}"; // $"https://uploads.github.com/repos/ThreeMammals/Ocelot/releases/{releaseId}/assets?name={fileName}"
676+
string[] parts = uploadUrl.Replace("{", "").Split(',');
677+
uploadUrl = parts[0] + "=" + fileName; // $"https://uploads.github.com/repos/ThreeMammals/Ocelot/releases/{releaseId}/assets?name={fileName}"
709678
Information($"UploadFileToGitHubRelease: uploadUrl is {uploadUrl}");
710679
var result = client.PostAsync(uploadUrl, content).Result;
711680
if (result.StatusCode != System.Net.HttpStatusCode.Created)
@@ -719,20 +688,14 @@ private void UploadFileToGitHubRelease(dynamic release, FilePath file)
719688
private void CompleteGitHubRelease(dynamic release)
720689
{
721690
int releaseId = release.id;
722-
string url = release.url;
691+
string url = release.url.ToString();
723692
var json = $"{{ \"tag_name\": \"{versioning.NuGetVersion}\", \"target_commitish\": \"main\", \"name\": \"{versioning.NuGetVersion}\", \"body\": \"{ReleaseNotesAsJson()}\", \"draft\": false, \"prerelease\": false }}";
724693
var request = new System.Net.Http.HttpRequestMessage(new System.Net.Http.HttpMethod("Patch"), url); // $"https://api.github.com/repos/ThreeMammals/Ocelot/releases/{releaseId}");
725694
request.Content = new System.Net.Http.StringContent(json, System.Text.Encoding.UTF8, "application/json");
726695

727696
using (var client = new System.Net.Http.HttpClient())
728697
{
729-
// client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(
730-
// "Basic",
731-
// Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes($"{gitHubUsername}:{gitHubPassword}"))
732-
// );
733-
// client.DefaultRequestHeaders.Add("User-Agent", "Ocelot Release");
734698
SetupGitHubClient(client);
735-
736699
var result = client.SendAsync(request).Result;
737700
if (result.StatusCode != System.Net.HttpStatusCode.OK)
738701
{

0 commit comments

Comments
 (0)