Skip to content

Commit

Permalink
GitHub action for NuGet release (#5)
Browse files Browse the repository at this point in the history
  • Loading branch information
cuongph87 authored Jan 29, 2024
1 parent 19531a7 commit 7f32e27
Show file tree
Hide file tree
Showing 5 changed files with 96 additions and 15 deletions.
76 changes: 76 additions & 0 deletions .github/workflows/publish_nuget.yml
Original file line number Diff line number Diff line change
@@ -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
}
1 change: 1 addition & 0 deletions nugetreadme.md
Original file line number Diff line number Diff line change
@@ -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.
6 changes: 0 additions & 6 deletions stellar-dotnet-sdk-test/NetworkTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,6 @@ public void ResetNetwork()
Network.Use(null);
}

[TestMethod]
public void TestNoDefaultNetwork()
{
Assert.IsNull(Network.Current);
}

[TestMethod]
public void TestSwitchToTestNetwork()
{
Expand Down
8 changes: 7 additions & 1 deletion stellar-dotnet-sdk/SorobanTransactionData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,14 @@ public xdr.SorobanTransactionData ToXdr()
};
}

public static SorobanTransactionData FromXdr(xdr.SorobanTransactionData xdr)
/// <summary>
///
/// </summary>
/// <param name="xdr">The <see cref="xdr.SorobanTransactionData"/> can still be null when its containing <see cref="xdr.Transaction.TransactionExt"/>'s Discriminant is 0.</param>
/// <returns></returns>
public static SorobanTransactionData? FromXdr(xdr.SorobanTransactionData? xdr)
{
if (xdr == null) return null;
return new SorobanTransactionData
{
ExtensionPoint = ExtensionPoint.FromXdr(xdr.Ext),
Expand Down
20 changes: 12 additions & 8 deletions stellar-dotnet-sdk/stellar-dotnet-sdk.csproj
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<Version>2.1.0</Version>
<Version>9.1.0</Version>
<ApplicationIcon />
<OutputType>Library</OutputType>
<StartupObject />
<RootNamespace>stellar_dotnet_sdk</RootNamespace>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Description>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.</Description>
<PackageId>stellar-dotnet-sdk</PackageId>
<PackageLicense>sss</PackageLicense>
<EnablePackageValidation>true</EnablePackageValidation>
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
<Copyright>elucidsoft 2018</Copyright>
<PackageProjectUrl>https://github.com/elucidsoft/dotnet-stellar-sdk</PackageProjectUrl>
<RepositoryUrl>https://github.com/elucidsoft/dotnet-stellar-sdk</RepositoryUrl>
<Copyright>Copyright © 2018 Elucidsoft; Copyright © 2024 Beans-BV</Copyright>
<PackageProjectUrl>https://github.com/Beans-BV/dotnet-stellar-sdk</PackageProjectUrl>
<RepositoryUrl>https://github.com/Beans-BV/dotnet-stellar-sdk</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageTags>'.NET Core' 'Stellar' 'Horizon' 'Blockchain' 'Crypto' 'Distributed Ledger'</PackageTags>
<ReleaseNotes>https://github.com/elucidsoft/dotnet-stellar-sdk/releases</ReleaseNotes>
<ReleaseNotes>https://github.com/Beans-BV/dotnet-stellar-sdk/releases</ReleaseNotes>
<Nullable>enable</Nullable>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
Expand All @@ -27,7 +27,9 @@
<DocumentationFile>bin\stellar-dotnet-sdk.xml</DocumentationFile>
<WarningLevel>1</WarningLevel>
</PropertyGroup>

<PropertyGroup>
<PackageReadmeFile>nugetreadme.md</PackageReadmeFile>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="dotnetstandard-bip32" Version="1.0.0" />
<PackageReference Include="dotnetstandard-bip39" Version="1.0.2" />
Expand All @@ -40,7 +42,9 @@
<ItemGroup>
<None Include="..\LICENSE.txt" Pack="true" PackagePath="" />
</ItemGroup>

<ItemGroup>
<None Include="..\nugetreadme.md" Pack="true" PackagePath="" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\stellar-dotnet-sdk-xdr\stellar-dotnet-sdk-xdr.csproj" />
</ItemGroup>
Expand Down

0 comments on commit 7f32e27

Please sign in to comment.