Fix publishing to Nuget feed. (#1939)
Adjust the glob pattern to select only one .nupkg file. In #1928 nuget generation changed so that there's one main nupkg to publish and platform library artifacts have their own platform specific ones. Changes from before: * Add x86 to build process. - Use recommended structure for multi-platform nuget. - Separate build and pack to allow x64 and x86 builds. - Use matrix in Github Actions to reduce repetition. * Properly implement multi-platform nuget build. - Split build pipeline to setting version, building and packing. - Build AnyCPU only as reference assemblies. - Add ref folder to nuget. * Restructure project and pipeline. Based on PR review discussion. - Restore default x64,x86 build process. - Build generates platform specific nupkg. - Remove AnyCPU platform to prevent confusion. - Add custom property for building reference libraries. - AnyCPU is only set by the property. - Move nuget changes to separate target file. - Imported only when custom property is set. - Clear separation from the default build. - Merge frameworks in published library artifacts. - Re-simplify pipelines; no matrix or separate jobs.
This commit is contained in:
@@ -30,39 +30,47 @@ jobs:
|
||||
else { $_ -replace $m.Value, ("<Version>{0}.{1}.{2}-pre${{ github.run_number }}</Version>" -f $m.Groups[1].Value,$m.Groups[2].Value,([convert]::ToInt32($m.Groups[3].Value)+1)); }
|
||||
} | Set-Content Directory.Build.props
|
||||
|
||||
- name: NuGet restore
|
||||
run: dotnet restore LibreHardwareMonitor.sln
|
||||
- name: Restore application packages
|
||||
run: dotnet restore LibreHardwareMonitorLib\LibreHardwareMonitorLib.csproj
|
||||
|
||||
- name: Build
|
||||
run: dotnet build LibreHardwareMonitor.sln --configuration Release --no-restore
|
||||
- name: Build application
|
||||
run: dotnet build LibreHardwareMonitor\LibreHardwareMonitor.csproj -c Release -p:Platform=x64
|
||||
|
||||
- name: Publish net472
|
||||
- name: Publish application
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: LibreHardwareMonitor-net472
|
||||
name: LibreHardwareMonitor
|
||||
path: |
|
||||
bin/Release/net472
|
||||
|
||||
- name: Publish netstandard20
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: LibreHardwareMonitorLib-netstandard20
|
||||
path: |
|
||||
bin/Release/netstandard2.0
|
||||
- name: Restore library packages
|
||||
run: dotnet restore LibreHardwareMonitorLib\LibreHardwareMonitorLib.csproj
|
||||
|
||||
- name: Publish net80
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: LibreHardwareMonitorLib-net80
|
||||
path: |
|
||||
bin/Release/net8.0
|
||||
- name: Build x64 libraries
|
||||
run: dotnet build LibreHardwareMonitorLib\LibreHardwareMonitorLib.csproj -c Release --no-restore -p:Platform=x64
|
||||
|
||||
- name: Publish net90
|
||||
- name: Publish x64 libraries
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: LibreHardwareMonitorLib-net90
|
||||
name: LibreHardwareMonitorLib (x64)
|
||||
path: |
|
||||
bin/Release/net9.0
|
||||
bin/Release/x64
|
||||
|
||||
- name: Build x86 libraries
|
||||
run: dotnet build LibreHardwareMonitorLib\LibreHardwareMonitorLib.csproj -c Release --no-restore -p:Platform=x86
|
||||
|
||||
- name: Publish x86 libraries
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: LibreHardwareMonitorLib (x86)
|
||||
path: |
|
||||
bin/Release/x86
|
||||
|
||||
- name: Build reference libraries
|
||||
run: dotnet build LibreHardwareMonitorLib\LibreHardwareMonitorLib.csproj -c Release --no-restore -p:BuildOnlyRefs=true
|
||||
|
||||
- name: Pack main nupkg
|
||||
run: dotnet pack LibreHardwareMonitorLib\LibreHardwareMonitorLib.csproj -c Release -p:PackMainNuget=true --no-build --output bin\Release
|
||||
|
||||
- name: Publish nupkg
|
||||
uses: actions/upload-artifact@v4
|
||||
@@ -72,4 +80,4 @@ jobs:
|
||||
bin/Release/LibreHardwareMonitorLib.*.nupkg
|
||||
|
||||
- name: Publish to NuGet
|
||||
run: nuget push **\*.nupkg -Source 'https://api.nuget.org/v3/index.json' -ApiKey ${{secrets.NUGET_API_KEY}}
|
||||
run: nuget push bin/Release/LibreHardwareMonitorLib.*.nupkg -Source 'https://api.nuget.org/v3/index.json' -ApiKey ${{secrets.NUGET_API_KEY}}
|
||||
|
||||
@@ -30,39 +30,47 @@ jobs:
|
||||
else { $_ -replace $m.Value, ("<Version>{0}.{1}.{2}-ci${{ github.run_number }}</Version>" -f $m.Groups[1].Value,$m.Groups[2].Value,([convert]::ToInt32($m.Groups[3].Value)+1)); }
|
||||
} | Set-Content Directory.Build.props
|
||||
|
||||
- name: Restore packages
|
||||
run: dotnet restore LibreHardwareMonitor.sln
|
||||
- name: Restore application packages
|
||||
run: dotnet restore LibreHardwareMonitorLib\LibreHardwareMonitorLib.csproj
|
||||
|
||||
- name: Build
|
||||
run: dotnet build LibreHardwareMonitor.sln --configuration Release --no-restore
|
||||
- name: Build application
|
||||
run: dotnet build LibreHardwareMonitor\LibreHardwareMonitor.csproj -c Release -p:Platform=x64
|
||||
|
||||
- name: Publish net472
|
||||
- name: Publish application
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: LibreHardwareMonitor-net472
|
||||
name: LibreHardwareMonitor
|
||||
path: |
|
||||
bin/Release/net472
|
||||
|
||||
- name: Publish netstandard20
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: LibreHardwareMonitorLib-netstandard20
|
||||
path: |
|
||||
bin/Release/netstandard2.0
|
||||
- name: Restore library packages
|
||||
run: dotnet restore LibreHardwareMonitorLib\LibreHardwareMonitorLib.csproj
|
||||
|
||||
- name: Publish net80
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: LibreHardwareMonitorLib-net80
|
||||
path: |
|
||||
bin/Release/net8.0
|
||||
- name: Build x64 libraries
|
||||
run: dotnet build LibreHardwareMonitorLib\LibreHardwareMonitorLib.csproj -c Release --no-restore -p:Platform=x64
|
||||
|
||||
- name: Publish net90
|
||||
- name: Publish x64 libraries
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: LibreHardwareMonitorLib-net90
|
||||
name: LibreHardwareMonitorLib (x64)
|
||||
path: |
|
||||
bin/Release/net9.0
|
||||
bin/Release/x64
|
||||
|
||||
- name: Build x86 libraries
|
||||
run: dotnet build LibreHardwareMonitorLib\LibreHardwareMonitorLib.csproj -c Release --no-restore -p:Platform=x86
|
||||
|
||||
- name: Publish x86 libraries
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: LibreHardwareMonitorLib (x86)
|
||||
path: |
|
||||
bin/Release/x86
|
||||
|
||||
- name: Build reference libraries
|
||||
run: dotnet build LibreHardwareMonitorLib\LibreHardwareMonitorLib.csproj -c Release --no-restore -p:BuildOnlyRefs=true
|
||||
|
||||
- name: Pack main nupkg
|
||||
run: dotnet pack LibreHardwareMonitorLib\LibreHardwareMonitorLib.csproj -c Release -p:PackMainNuget=true --no-build --output bin\Release
|
||||
|
||||
- name: Publish nupkg
|
||||
uses: actions/upload-artifact@v4
|
||||
|
||||
@@ -19,12 +19,19 @@
|
||||
<PackageIcon>packageicon.png</PackageIcon>
|
||||
<GenerateResourceUsePreserializedResources>true</GenerateResourceUsePreserializedResources>
|
||||
<Platforms>x64;x86</Platforms>
|
||||
<RuntimeIdentifiers>win-x64;win-x86</RuntimeIdentifiers>
|
||||
<NoWarn>$(NoWarn);CA1416</NoWarn>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(BuildOnlyRefs)'=='true'">
|
||||
<Platform>AnyCPU</Platform>
|
||||
<ProduceOnlyReferenceAssembly>true</ProduceOnlyReferenceAssembly>
|
||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
|
||||
<OutputPath>..\bin\Debug\</OutputPath>
|
||||
<OutputPath>..\bin\Debug\$(Platform)\</OutputPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Release'">
|
||||
<OutputPath>..\bin\Release\</OutputPath>
|
||||
<OutputPath>..\bin\Release\$(Platform)\</OutputPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||
@@ -63,4 +70,5 @@
|
||||
<Pack>True</Pack>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
<Import Project="main.nuget.target" Condition="'$(PackMainNuget)' == 'true'" />
|
||||
</Project>
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
<!-- For packing the multi-platform nuget after building x64, x86 and reference libs -->
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<IncludeBuildOutput>false</IncludeBuildOutput>
|
||||
<NoWarn>$(NoWarn);NU5131</NoWarn>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<None Include="..\bin\$(Configuration)\x64\**\LibreHardwareMonitorLib.dll" Pack="true">
|
||||
<PackagePath>runtimes\win-x64\lib\</PackagePath>
|
||||
</None>
|
||||
<None Include="..\bin\$(Configuration)\x64\**\LibreHardwareMonitorLib.xml" Pack="true">
|
||||
<PackagePath>runtimes\win-x64\lib\</PackagePath>
|
||||
</None>
|
||||
<None Include="..\bin\$(Configuration)\x86\**\LibreHardwareMonitorLib.dll" Pack="true">
|
||||
<PackagePath>runtimes\win-x86\lib\</PackagePath>
|
||||
</None>
|
||||
<None Include="..\bin\$(Configuration)\x86\**\LibreHardwareMonitorLib.xml" Pack="true">
|
||||
<PackagePath>runtimes\win-x86\lib\</PackagePath>
|
||||
</None>
|
||||
<None Include="..\bin\$(Configuration)\AnyCPU\**\LibreHardwareMonitorLib.dll" Pack="true">
|
||||
<PackagePath>ref\</PackagePath>
|
||||
</None>
|
||||
<None Include="..\bin\$(Configuration)\AnyCPU\**\LibreHardwareMonitorLib.xml" Pack="true">
|
||||
<PackagePath>ref\</PackagePath>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
Reference in New Issue
Block a user