From 7f32e271657524b0b8d305d428108a67d35861c6 Mon Sep 17 00:00:00 2001
From: cuongph87 <152460338+cuongph87@users.noreply.github.com>
Date: Mon, 29 Jan 2024 11:16:56 +0700
Subject: [PATCH] GitHub action for NuGet release (#5)
---
.github/workflows/publish_nuget.yml | 76 ++++++++++++++++++++
nugetreadme.md | 1 +
stellar-dotnet-sdk-test/NetworkTest.cs | 6 --
stellar-dotnet-sdk/SorobanTransactionData.cs | 8 ++-
stellar-dotnet-sdk/stellar-dotnet-sdk.csproj | 20 +++---
5 files changed, 96 insertions(+), 15 deletions(-)
create mode 100644 .github/workflows/publish_nuget.yml
create mode 100644 nugetreadme.md
diff --git a/.github/workflows/publish_nuget.yml b/.github/workflows/publish_nuget.yml
new file mode 100644
index 00000000..6fdfb9e6
--- /dev/null
+++ b/.github/workflows/publish_nuget.yml
@@ -0,0 +1,76 @@
+name: Publish to NuGet
+on:
+ workflow_dispatch:
+ push:
+ branches:
+ - 'master'
+ release:
+ types:
+ - published
+env:
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
+ DOTNET_NOLOGO: true
+ NuGetDirectory: ${{github.workspace}}/nuget
+defaults:
+ run:
+ shell: pwsh
+jobs:
+ create_nuget:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ - run: dotnet pack --configuration Release --output ${{env.NuGetDirectory}}
+ - uses: actions/upload-artifact@v3
+ with:
+ name: nuget
+ if-no-files-found: error
+ retention-days: 7
+ path: ${{env.NuGetDirectory}}/*.nupkg
+
+ validate_nuget:
+ runs-on: ubuntu-latest
+ needs: [create_nuget]
+ steps:
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+
+ - uses: actions/download-artifact@v3
+ with:
+ name: nuget
+ path: ${{env.NuGetDirectory}}
+
+ - name: Install nuget validator
+ run: dotnet tool update Meziantou.Framework.NuGetPackageValidation.Tool --global
+ - name: Validate package
+ run: meziantou.validate-nuget-package --excluded-rules IconMustBeSet,Symbols,AuthorMustBeSet (Get-ChildItem "${{env.NuGetDirectory}}/*.nupkg")
+ run_test:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v4
+ - name: Run tests
+ run: dotnet test --configuration Release
+ deploy:
+ # Publish only when creating a GitHub Release
+ # https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository
+ if: github.event_name == 'release'
+ runs-on: ubuntu-latest
+ needs: [validate_nuget, run_test]
+ steps:
+ # Download the NuGet package created in the previous job
+ - uses: actions/download-artifact@v3
+ with:
+ name: nuget
+ path: ${{env.NuGetDirectory}}
+
+ # Install the .NET SDK indicated in the global.json file
+ - name: Setup .NET Core
+ uses: actions/setup-dotnet@v4
+ - name: Publish NuGet package
+ run: |
+ foreach($file in (Get-ChildItem "${{env.NuGetDirectory}}" -Recurse -Include *.nupkg)) {
+ dotnet nuget push $file --api-key "${{secrets.NUGET_APIKEY}}" --source https://api.nuget.org/v3/index.json --skip-duplicate
+ }
diff --git a/nugetreadme.md b/nugetreadme.md
new file mode 100644
index 00000000..1d5f4051
--- /dev/null
+++ b/nugetreadme.md
@@ -0,0 +1 @@
+The .NET Stellar SDK facilitates client integration with the Stellar Horizon API server and submission of Stellar transactions. It has two main uses: querying Horizon and building, signing, and submitting transactions to the Stellar network.
\ No newline at end of file
diff --git a/stellar-dotnet-sdk-test/NetworkTest.cs b/stellar-dotnet-sdk-test/NetworkTest.cs
index ee018b4f..0c5c2805 100644
--- a/stellar-dotnet-sdk-test/NetworkTest.cs
+++ b/stellar-dotnet-sdk-test/NetworkTest.cs
@@ -12,12 +12,6 @@ public void ResetNetwork()
Network.Use(null);
}
- [TestMethod]
- public void TestNoDefaultNetwork()
- {
- Assert.IsNull(Network.Current);
- }
-
[TestMethod]
public void TestSwitchToTestNetwork()
{
diff --git a/stellar-dotnet-sdk/SorobanTransactionData.cs b/stellar-dotnet-sdk/SorobanTransactionData.cs
index f8d20fff..5bc6dc46 100644
--- a/stellar-dotnet-sdk/SorobanTransactionData.cs
+++ b/stellar-dotnet-sdk/SorobanTransactionData.cs
@@ -18,8 +18,14 @@ public xdr.SorobanTransactionData ToXdr()
};
}
- public static SorobanTransactionData FromXdr(xdr.SorobanTransactionData xdr)
+ ///
+ ///
+ ///
+ /// The can still be null when its containing 's Discriminant is 0.
+ ///
+ public static SorobanTransactionData? FromXdr(xdr.SorobanTransactionData? xdr)
{
+ if (xdr == null) return null;
return new SorobanTransactionData
{
ExtensionPoint = ExtensionPoint.FromXdr(xdr.Ext),
diff --git a/stellar-dotnet-sdk/stellar-dotnet-sdk.csproj b/stellar-dotnet-sdk/stellar-dotnet-sdk.csproj
index e9d2ddb8..3467d771 100644
--- a/stellar-dotnet-sdk/stellar-dotnet-sdk.csproj
+++ b/stellar-dotnet-sdk/stellar-dotnet-sdk.csproj
@@ -1,22 +1,22 @@
net6.0
- 2.1.0
+ 9.1.0
Library
stellar_dotnet_sdk
- true
The .NET Stellar SDK facilitates client integration with the Stellar Horizon API server and submission of Stellar transactions. It has two main uses: querying Horizon and building, signing, and submitting transactions to the Stellar network.
stellar-dotnet-sdk
sss
+ true
LICENSE.txt
- elucidsoft 2018
- https://github.com/elucidsoft/dotnet-stellar-sdk
- https://github.com/elucidsoft/dotnet-stellar-sdk
+ Copyright © 2018 Elucidsoft; Copyright © 2024 Beans-BV
+ https://github.com/Beans-BV/dotnet-stellar-sdk
+ https://github.com/Beans-BV/dotnet-stellar-sdk
git
'.NET Core' 'Stellar' 'Horizon' 'Blockchain' 'Crypto' 'Distributed Ledger'
- https://github.com/elucidsoft/dotnet-stellar-sdk/releases
+ https://github.com/Beans-BV/dotnet-stellar-sdk/releases
enable
@@ -27,7 +27,9 @@
bin\stellar-dotnet-sdk.xml
1
-
+
+ nugetreadme.md
+
@@ -40,7 +42,9 @@
-
+
+
+