mirror of
				https://github.com/nsnail/Ocelot.git
				synced 2025-11-05 00:10:49 +08:00 
			
		
		
		
	#1151: format release notes as JavaScript string for GitHub
This commit is contained in:
		
							
								
								
									
										18
									
								
								build.cake
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								build.cake
									
									
									
									
									
								
							@@ -2,6 +2,7 @@
 | 
				
			|||||||
#addin nuget:?package=Cake.Json
 | 
					#addin nuget:?package=Cake.Json
 | 
				
			||||||
#addin nuget:?package=Newtonsoft.Json
 | 
					#addin nuget:?package=Newtonsoft.Json
 | 
				
			||||||
#addin nuget:?package=System.Net.Http
 | 
					#addin nuget:?package=System.Net.Http
 | 
				
			||||||
 | 
					#addin nuget:?package=System.Text.Encodings.Web
 | 
				
			||||||
#tool "nuget:?package=ReportGenerator"
 | 
					#tool "nuget:?package=ReportGenerator"
 | 
				
			||||||
#tool "nuget:?package=coveralls.net&version=0.7.0"
 | 
					#tool "nuget:?package=coveralls.net&version=0.7.0"
 | 
				
			||||||
#addin Cake.Coveralls&version=0.10.1
 | 
					#addin Cake.Coveralls&version=0.10.1
 | 
				
			||||||
@@ -272,7 +273,7 @@ Task("CreateArtifacts")
 | 
				
			|||||||
		{
 | 
							{
 | 
				
			||||||
			System.IO.File.AppendAllLines(artifactsFile, new[]{
 | 
								System.IO.File.AppendAllLines(artifactsFile, new[]{
 | 
				
			||||||
				projectFile.GetFilename().FullPath,
 | 
									projectFile.GetFilename().FullPath,
 | 
				
			||||||
				"releaseNotes:releasenotes.md"
 | 
									"releasenotes.md"
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -326,6 +327,9 @@ Task("DownloadGitHubReleaseArtifacts")
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		try
 | 
							try
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
 | 
								// hack to let GitHub catch up, todo - refactor to poll
 | 
				
			||||||
 | 
								System.Threading.Thread.Sleep(5000);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			EnsureDirectoryExists(packagesDir);
 | 
								EnsureDirectoryExists(packagesDir);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			var releaseUrl = tagsUrl + versioning.NuGetVersion;
 | 
								var releaseUrl = tagsUrl + versioning.NuGetVersion;
 | 
				
			||||||
@@ -360,7 +364,7 @@ Task("PublishToNuget")
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
RunTarget(target);
 | 
					RunTarget(target);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Gets nuique nuget version for this commit
 | 
					/// Gets unique nuget version for this commit
 | 
				
			||||||
private GitVersion GetNuGetVersionForCommit()
 | 
					private GitVersion GetNuGetVersionForCommit()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    GitVersion(new GitVersionSettings{
 | 
					    GitVersion(new GitVersionSettings{
 | 
				
			||||||
@@ -418,7 +422,8 @@ private void PublishPackages(ConvertableDirectoryPath packagesDir, ConvertableFi
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
private void CreateGitHubRelease()
 | 
					private void CreateGitHubRelease()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	var json = $"{{ \"tag_name\": \"{versioning.NuGetVersion}\", \"target_commitish\": \"master\", \"name\": \"{versioning.NuGetVersion}\", \"body\": \"{System.IO.File.ReadAllText(releaseNotesFile)}\", \"draft\": true, \"prerelease\": true }}";
 | 
						var json = $"{{ \"tag_name\": \"{versioning.NuGetVersion}\", \"target_commitish\": \"master\", \"name\": \"{versioning.NuGetVersion}\", \"body\": \"{ReleaseNotesAsJson()}\", \"draft\": true, \"prerelease\": true }}";
 | 
				
			||||||
 | 
						
 | 
				
			||||||
	var content = new System.Net.Http.StringContent(json, System.Text.Encoding.UTF8, "application/json");
 | 
						var content = new System.Net.Http.StringContent(json, System.Text.Encoding.UTF8, "application/json");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	using(var client = new System.Net.Http.HttpClient())
 | 
						using(var client = new System.Net.Http.HttpClient())
 | 
				
			||||||
@@ -442,6 +447,11 @@ private void CreateGitHubRelease()
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					private string ReleaseNotesAsJson()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return System.Text.Encodings.Web.JavaScriptEncoder.Default.Encode(System.IO.File.ReadAllText(releaseNotesFile));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private void UploadFileToGitHubRelease(FilePath file)
 | 
					private void UploadFileToGitHubRelease(FilePath file)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	var data = System.IO.File.ReadAllBytes(file.FullPath);
 | 
						var data = System.IO.File.ReadAllBytes(file.FullPath);
 | 
				
			||||||
@@ -468,7 +478,7 @@ private void UploadFileToGitHubRelease(FilePath file)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
private void CompleteGitHubRelease()
 | 
					private void CompleteGitHubRelease()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	var json = $"{{ \"tag_name\": \"{versioning.NuGetVersion}\", \"target_commitish\": \"master\", \"name\": \"{versioning.NuGetVersion}\", \"body\": \"{System.IO.File.ReadAllText(releaseNotesFile)}\", \"draft\": false, \"prerelease\": false }}";
 | 
						var json = $"{{ \"tag_name\": \"{versioning.NuGetVersion}\", \"target_commitish\": \"master\", \"name\": \"{versioning.NuGetVersion}\", \"body\": \"{ReleaseNotesAsJson()}\", \"draft\": false, \"prerelease\": false }}";
 | 
				
			||||||
	var request = new System.Net.Http.HttpRequestMessage(new System.Net.Http.HttpMethod("Patch"), $"https://api.github.com/repos/ThreeMammals/Ocelot/releases/{releaseId}");
 | 
						var request = new System.Net.Http.HttpRequestMessage(new System.Net.Http.HttpMethod("Patch"), $"https://api.github.com/repos/ThreeMammals/Ocelot/releases/{releaseId}");
 | 
				
			||||||
	request.Content = new System.Net.Http.StringContent(json, System.Text.Encoding.UTF8, "application/json");
 | 
						request.Content = new System.Net.Http.StringContent(json, System.Text.Encoding.UTF8, "application/json");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user