Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Setup for publishing nugets to nuget.org. #5

Merged
merged 17 commits into from
Mar 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 91 additions & 0 deletions .github/workflows/nuget.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
# The previous line enables IntelliSense for this file.
# See this post for more info https://www.meziantou.net/enabling-intellisense-for-github-actions-workflows-in-vs-code.htm

name: Publish NuGet Package
on:
workflow_dispatch:
push:
branches:
- 'main'
pull_request:
branches:
- '*'
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: windows-latest
env:
COMMIT_SHA: ${{ github.sha || github.event.pull_request.head.sha }}
steps:
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
- run: |
If (('${{ github.event_name }}' -eq 'release') -and ('${{ github.ref_name }}' -match '^(?<version>\d+\.\d+\.\d+)')) {
Add-Content -Path $Env:GITHUB_ENV -Value "VERSION=$($Matches.version)"
Add-Content -Path $Env:GITHUB_ENV -Value "FILE_VERSION=$($Matches.version).0"
Add-Content -Path $Env:GITHUB_ENV -Value "INFORMAL_VERSION=${{ github.ref_name }}"
} else {
Add-Content -Path $Env:GITHUB_ENV -Value "VERSION=0.0.0"
Add-Content -Path $Env:GITHUB_ENV -Value "FILE_VERSION=0.0.0.0"
Add-Content -Path $Env:GITHUB_ENV -Value "INFORMAL_VERSION=UNRELEASED"
}
name: "Set package version meta data"
- run: |
dotnet pack --configuration Release --output "${{ env.NuGetDirectory }}" --property:RepositoryCommit="${{ env.COMMIT_SHA }}" --property:InformationalVersion="${{ env.INFORMAL_VERSION }}" --property:AssemblyVersion="${{ env.VERSION }}" --property:FileVersion="${{ env.VERSION }}" --property:Version="${{ env.VERSION }}"
- uses: actions/upload-artifact@v3
with:
name: nuget
if-no-files-found: error
retention-days: 7
path: ${{ env.NuGetDirectory }}/*.nupkg

validate_nuget:
runs-on: windows-latest
needs: [ create_nuget ]
steps:
- name: Setup .NET
uses: actions/setup-dotnet@v3
- uses: actions/download-artifact@v3
with:
name: nuget
path: ${{ env.NuGetDirectory }}

- name: Install nuget validator
run: dotnet tool update Meziantou.Framework.NuGetPackageValidation.Tool --global

# Validate the NuGet package: https://www.nuget.org/packages/Meziantou.Framework.NuGetPackageValidation.Tool#readme-body-tab
# If some rules are not applicable, you can disable them using the --excluded-rules or --excluded-rule-ids option
- name: Validate package
run: meziantou.validate-nuget-package --excluded-rules XmlDocumentationMustBePresent,Symbols (Get-ChildItem "${{ env.NuGetDirectory }}/*.nupkg")

deploy:
# Publish only when creating a release
if: github.event_name == 'release'
runs-on: windows-latest
needs: [ validate_nuget ]
steps:
- uses: actions/download-artifact@v3
with:
name: nuget
path: ${{ env.NuGetDirectory }}
- name: Setup .NET Core
uses: actions/setup-dotnet@v3
- 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
}
24 changes: 24 additions & 0 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<Project>

<PropertyGroup>
<EnablePackageValidation>true</EnablePackageValidation>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<PackageIcon>icon.png</PackageIcon>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageProjectUrl>https://github.com/westermo/graphx</PackageProjectUrl>
<RepositoryUrl>https://github.com/westermo/graphx</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageTags>wpf, controls-library, graphing</PackageTags>
<CurrentYear>$([System.DateTime]::Now.ToString(yyyy))</CurrentYear>
<Company>Westermo Network Technologies AB</Company>
<Copyright>Copyright © Westermo Network Technologies AB $(CurrentYear), and Alexander Smirnov (derivative work of https://github.com/panthernet/GraphX)</Copyright>
<Authors>Westermo Network Technologies AB</Authors>
</PropertyGroup>

<ItemGroup>
<None Include="$(ProjectDir)../README.md" Link="README.md" Pack="true" PackagePath="" Condition="Exists('$(ProjectDir)../README.md')"/>
<None Include="$(ProjectDir)../icon.png" Link="icon.png" Pack="true" PackagePath="" Condition="Exists('$(ProjectDir)../icon.png')"/>
<None Include="$(ProjectDir)../LICENSE" Link="LICENSE" Pack="true" PackagePath="" Condition="Exists('$(ProjectDir)../LICENSE')"/>
</ItemGroup>

</Project>
3 changes: 2 additions & 1 deletion Examples/ShowcaseApp.WPF/ShowcaseApp.WPF.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,11 @@
<TargetFramework>net6.0-windows</TargetFramework>
<LangVersion>latest</LangVersion>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<IsPackable>false</IsPackable>
</PropertyGroup>

<PropertyGroup>
<AssemblyTitle>GraphX ShowcaseApp.WPF</AssemblyTitle>
<AssemblyTitle>Westermo GraphX ShowcaseApp.WPF</AssemblyTitle>
</PropertyGroup>

<ItemGroup>
Expand Down
5 changes: 5 additions & 0 deletions Examples/SimpleGraph/SimpleGraph.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@
<TargetFramework>net6.0-windows</TargetFramework>
<UseWPF>true</UseWPF>
<RootNamespace>SimpleGraph</RootNamespace>
<IsPackable>false</IsPackable>
</PropertyGroup>

<PropertyGroup>
<AssemblyTitle>Westermo GraphX SimpleGraph</AssemblyTitle>
</PropertyGroup>

<ItemGroup>
Expand Down
6 changes: 6 additions & 0 deletions Westermo.GraphX.Common/Westermo.GraphX.Common.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,11 @@
<ItemGroup>
<PackageReference Include="QuikGraph" Version="2.2.0" />
</ItemGroup>

<!-- NuGet related -->
<PropertyGroup>
<AssemblyTitle>Westermo GraphX Controls Library (Support library)</AssemblyTitle>
<Description>Support library for Westermo.GraphX.Controls</Description>
</PropertyGroup>

</Project>
10 changes: 6 additions & 4 deletions Westermo.GraphX.Controls/Westermo.GraphX.Controls.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@
<Nullable>enable</Nullable>
<RootNamespace>Westermo.GraphX.Controls</RootNamespace>
</PropertyGroup>

<PropertyGroup>
<AssemblyTitle>GraphX Controls Library</AssemblyTitle>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DefineConstants>$(DefineConstants);TRACE;WPF</DefineConstants>
Expand All @@ -27,4 +23,10 @@
<ItemGroup>
<Resource Include="Images\help_black.png" />
</ItemGroup>

<PropertyGroup>
<AssemblyTitle>Westermo GraphX Controls Library</AssemblyTitle>
<Description>WPF Controls Library</Description>
</PropertyGroup>

</Project>
6 changes: 6 additions & 0 deletions Westermo.GraphX.Logic/Westermo.GraphX.Logic.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,10 @@
<ProjectReference Include="..\Westermo.GraphX.Common\Westermo.GraphX.Common.csproj" />
</ItemGroup>

<!-- NuGet related -->
<PropertyGroup>
<AssemblyTitle>Westermo GraphX Controls Library (Support library)</AssemblyTitle>
<Description>Support library for Westermo.GraphX.Controls</Description>
</PropertyGroup>

</Project>
Binary file added icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.