@@ -44,18 +44,10 @@ var artifactsFile = packagesDir + File("artifacts.txt");
44
44
var releaseNotesFile = packagesDir + File ( "ReleaseNotes.md" ) ;
45
45
var releaseNotes = new List < string > ( ) ;
46
46
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
-
53
47
// internal build variables - don't change these.
54
48
string committedVersion = "0.0.0-dev" ;
55
49
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 ;
59
51
60
52
var target = Argument( "target" , "Default" ) ;
61
53
var slnFile = ( target = = Release ) ? $"./Ocelot.{Release}.sln" : "./Ocelot.sln" ;
@@ -490,7 +482,7 @@ Task("PublishGitHubRelease")
490
482
. IsDependentOn ( "CreateArtifacts" )
491
483
. Does ( ( ) =>
492
484
{
493
- // if (!IsRunningOnCircleCI()) return;
485
+ if ( ! IsRunningOnCircleCI ( ) ) return ;
494
486
495
487
dynamic release = CreateGitHubRelease ( ) ;
496
488
var path = packagesDir . ToString ( ) + @"/**/*" ;
@@ -524,7 +516,7 @@ Task("DownloadGitHubReleaseArtifacts")
524
516
System . Threading . Thread . Sleep ( 5000 ) ;
525
517
EnsureDirectoryExists ( packagesDir ) ;
526
518
527
- var releaseUrl = tagsUrl + versioning . NuGetVersion ;
519
+ var releaseUrl = "https://api.github.com/repos/ThreeMammals/ocelot/releases/tags/" + versioning . NuGetVersion ;
528
520
var releaseInfo = await GetResourceAsync ( releaseUrl ) ;
529
521
var assets_url = Newtonsoft . Json . Linq . JObject . Parse ( releaseInfo )
530
522
. Value < string > ( "assets_url" ) ;
@@ -555,6 +547,10 @@ Task("PublishToNuget")
555
547
556
548
if ( IsRunningOnCircleCI ( ) )
557
549
{
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" ;
558
554
PublishPackages ( packagesDir , artifactsFile , nugetFeedStableKey , nugetFeedStableUploadUrl , nugetFeedStableSymbolsUploadUrl ) ;
559
555
}
560
556
} ) ;
@@ -593,13 +589,10 @@ private GitVersion GetNuGetVersionForCommit()
593
589
private void PersistVersion( string committedVersion , string newVersion )
594
590
{
595
591
Information( string . Format ( "We'll search all csproj files for {0} and replace with {1}..." , committedVersion , newVersion ) ) ;
596
-
597
592
var projectFiles = GetFiles( "./**/*.csproj" ) ;
598
-
599
593
foreach ( var projectFile in projectFiles)
600
594
{
601
595
var file = projectFile. ToString ( ) ;
602
-
603
596
Information( string . Format ( "Updating {0}..." , file ) ) ;
604
597
605
598
var updatedProjectFile = System. IO . File . ReadAllText ( file )
@@ -612,22 +605,18 @@ private void PersistVersion(string committedVersion, string newVersion)
612
605
/// Publishes code and symbols packages to nuget feed, based on contents of artifacts file
613
606
private void PublishPackages( ConvertableDirectoryPath packagesDir , ConvertableFilePath artifactsFile , string feedApiKey , string codeFeedUrl , string symbolFeedUrl )
614
607
{
615
- Information( "Publishing to NuGet..." ) ;
608
+ Information( "PublishPackages: Publishing to NuGet..." ) ;
616
609
var artifacts = System. IO . File
617
610
. ReadAllLines ( artifactsFile )
618
611
. Distinct ( ) ;
619
612
620
613
foreach ( var artifact in artifacts)
621
614
{
622
615
if ( artifact == "ReleaseNotes.md" )
623
- {
624
616
continue;
625
- }
626
617
627
618
var codePackage = packagesDir + File ( artifact ) ;
628
- Information( "Pushing package " + codePackage + "..." ) ;
629
-
630
- Information( "Calling DotNetNuGetPush" ) ;
619
+ Information( "PublishPackages: Pushing package " + codePackage + "..." ) ;
631
620
DotNetNuGetPush(
632
621
codePackage ,
633
622
new DotNetNuGetPushSettings { ApiKey = feedApiKey , Source = codeFeedUrl }
@@ -638,46 +627,31 @@ private void PublishPackages(ConvertableDirectoryPath packagesDir, ConvertableFi
638
627
private void SetupGitHubClient( System . Net . Http . HttpClient client )
639
628
{
640
629
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 ) ;
645
631
client. DefaultRequestHeaders . Add ( "User-Agent" , "Ocelot Release" ) ;
646
632
client. DefaultRequestHeaders . Add ( "Accept" , "application/vnd.github+json" ) ;
647
633
client. DefaultRequestHeaders . Add ( "X-GitHub-Api-Version" , "2022-11-28" ) ;
648
634
}
649
635
650
636
private dynamic CreateGitHubRelease( )
651
637
{
652
- //var json = $"{{ \"tag_name\": \"{versioning.NuGetVersion}\", \"target_commitish\": \"main\", \"name\": \"{versioning.NuGetVersion}\", \"body\": \"{ReleaseNotesAsJson()}\", \"draft\": true, \"prerelease\": true }}";
653
638
var json = $ "{{ \" tag_name\" : \" { versioning . NuGetVersion } \" , \" target_commitish\" : \" main\" , \" name\" : \" { versioning . NuGetVersion } \" , \" body\" : \" { ReleaseNotesAsJson ( ) } \" , \" draft\" : true, \" prerelease\" : true, \" generate_release_notes\" : false }}";
654
639
var content = new System. Net . Http . StringContent ( json , System . Text . Encoding . UTF8 , "application/json" ) ;
655
640
656
641
using ( var client = new System . Net . Http . HttpClient ( ) )
657
642
{
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");
669
643
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 )
673
646
{
674
- throw new Exception ( "CreateGitHubRelease result.StatusCode = " + result . StatusCode ) ;
647
+ var msg = "CreateGitHubRelease: StatusCode = " + result.StatusCode;
648
+ Information ( msg ) ;
649
+ throw new Exception ( msg ) ;
675
650
}
676
651
var releaseData = result . Content . ReadAsStringAsync ( ) . Result ;
677
652
dynamic releaseJSON = Newtonsoft . Json . JsonConvert . DeserializeObject < Newtonsoft . Json . Linq . JObject > ( releaseData ) ;
678
653
Information( "CreateGitHubRelease: Release ID is " + releaseJSON . id ) ;
679
- //releaseId = test.id;
680
- return releaseJSON; //.id;
654
+ return releaseJSON;
681
655
}
682
656
}
683
657
@@ -694,18 +668,13 @@ private void UploadFileToGitHubRelease(dynamic release, FilePath file)
694
668
695
669
using ( var client = new System . Net . Http . HttpClient ( ) )
696
670
{
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");
702
671
SetupGitHubClient ( client ) ;
703
672
int releaseId = release. id;
704
673
var fileName = file . GetFilename ( ) ;
705
674
string uploadUrl = release. upload_url. ToString( ) ;
706
675
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}"
709
678
Information ( $ "UploadFileToGitHubRelease: uploadUrl is { uploadUrl } ") ;
710
679
var result = client. PostAsync ( uploadUrl , content ) . Result ;
711
680
if ( result . StatusCode != System . Net . HttpStatusCode . Created )
@@ -719,20 +688,14 @@ private void UploadFileToGitHubRelease(dynamic release, FilePath file)
719
688
private void CompleteGitHubRelease( dynamic release )
720
689
{
721
690
int releaseId = release. id ;
722
- string url = release . url ;
691
+ string url = release . url . ToString ( ) ;
723
692
var json = $ "{{ \" tag_name\" : \" { versioning . NuGetVersion } \" , \" target_commitish\" : \" main\" , \" name\" : \" { versioning . NuGetVersion } \" , \" body\" : \" { ReleaseNotesAsJson ( ) } \" , \" draft\" : false, \" prerelease\" : false }}";
724
693
var request = new System . Net . Http . HttpRequestMessage ( new System . Net . Http . HttpMethod ( "Patch" ) , url ) ; // $"https://api.github.com/repos/ThreeMammals/Ocelot/releases/{releaseId}");
725
694
request . Content = new System . Net . Http . StringContent ( json , System . Text . Encoding . UTF8 , "application/json" ) ;
726
695
727
696
using ( var client = new System . Net . Http . HttpClient ( ) )
728
697
{
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");
734
698
SetupGitHubClient ( client ) ;
735
-
736
699
var result = client. SendAsync( request ) . Result ;
737
700
if ( result . StatusCode ! = System . Net . HttpStatusCode . OK )
738
701
{
0 commit comments