diff --git a/.github/workflows/PublishToNuGet.yml b/.github/workflows/PublishToNuGet.yml new file mode 100644 index 00000000..f95f205e --- /dev/null +++ b/.github/workflows/PublishToNuGet.yml @@ -0,0 +1,40 @@ +name: Publish to NuGet + +on: + workflow_dispatch: + +jobs: + publish: + name: Build, Pack, and Publish + runs-on: windows-2022 + permissions: + id-token: write # enable GitHub OIDC token issuance for this job + + steps: + - name: Checkout repository + uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + + - name: Build projects + shell: pwsh + run: | + Get-ChildItem ./src -Recurse -Filter *.csproj | + ForEach-Object { + dotnet build $_.FullName -c Release + } + + - name: Pack projects + shell: pwsh + run: | + Get-ChildItem ./src -Recurse -Filter *.csproj | + ForEach-Object { + dotnet pack $_.FullName -c Release --no-build -o ./packages + } + + - name: NuGet login (OIDC → temp API key) + uses: NuGet/login@v1 + id: login + with: + user: ${{ secrets.NUGET_USER }} + + - name: Push to NuGet + run: dotnet nuget push "**/packages/*.nupkg" --api-key ${{steps.login.outputs.NUGET_API_KEY}} --source "https://api.nuget.org/v3/index.json" --skip-duplicate \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 780dc95f..9fd04db8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,11 +32,22 @@ jobs: - name: Build run: | - dotnet build ./src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj -c Release -p:buildType=azure-pipelines-ci + dotnet build ./src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj -c Release - name: Run Tests EFCore net10.0 run: | - dotnet test ./test/System.Linq.Dynamic.Core.Tests/System.Linq.Dynamic.Core.Tests.csproj -c Release -p:buildType=azure-pipelines-ci + dotnet test ./test/System.Linq.Dynamic.Core.Tests/System.Linq.Dynamic.Core.Tests.csproj -c Release + + - name: Build and pack projects + shell: pwsh + run: | + Get-ChildItem ./src -Recurse -Filter *.csproj | + ForEach-Object { + dotnet build $_.FullName -c Release + if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } + dotnet pack $_.FullName -c Release --no-build -o ./packages + if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } + } build_and_test_Linux: name: "Linux: Build and Tests" @@ -51,7 +62,7 @@ jobs: - uses: actions/setup-dotnet@v4 with: - dotnet-version: '9.0.x' + dotnet-version: '10.0.x' - uses: actions/setup-java@v4 with: @@ -81,23 +92,23 @@ jobs: - name: Build run: | - dotnet build ./src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj -c Debug -p:buildType=azure-pipelines-ci - + dotnet build ./src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj -c Debug + - name: Run Tests EFCore .NET 10 (with Coverage) run: | - dotnet-coverage collect 'dotnet test ./test/System.Linq.Dynamic.Core.Tests/System.Linq.Dynamic.Core.Tests.csproj --configuration Debug -p:buildType=azure-pipelines-ci' -f xml -o dynamic-coverage-efcore.xml - + dotnet-coverage collect 'dotnet test ./test/System.Linq.Dynamic.Core.Tests/System.Linq.Dynamic.Core.Tests.csproj --configuration Debug' -f xml -o dynamic-coverage-efcore.xml + - name: Run Tests EF .NET 10 (with Coverage) run: | - dotnet-coverage collect 'dotnet test ./test/EntityFramework.DynamicLinq.Tests/EntityFramework.DynamicLinq.Tests.csproj --configuration Debug --framework net10.0 -p:buildType=azure-pipelines-ci' -f xml -o dynamic-coverage-ef.xml - + dotnet-coverage collect 'dotnet test ./test/EntityFramework.DynamicLinq.Tests/EntityFramework.DynamicLinq.Tests.csproj --configuration Debug --framework net10.0' -f xml -o dynamic-coverage-ef.xml + - name: Run Tests Newtonsoft.Json .NET 10 (with Coverage) run: | - dotnet-coverage collect 'dotnet test ./test/System.Linq.Dynamic.Core.NewtonsoftJson.Tests/System.Linq.Dynamic.Core.NewtonsoftJson.Tests.csproj --configuration Debug --framework net10.0 -p:buildType=azure-pipelines-ci' -f xml -o dynamic-coverage-newtonsoftjson.xml - + dotnet-coverage collect 'dotnet test ./test/System.Linq.Dynamic.Core.NewtonsoftJson.Tests/System.Linq.Dynamic.Core.NewtonsoftJson.Tests.csproj --configuration Debug --framework net10.0' -f xml -o dynamic-coverage-newtonsoftjson.xml + - name: Run Tests System.Text.Json .NET 10 (with Coverage) run: | - dotnet-coverage collect 'dotnet test ./test/System.Linq.Dynamic.Core.SystemTextJson.Tests/System.Linq.Dynamic.Core.SystemTextJson.Tests.csproj --configuration Debug --framework net10.0 -p:buildType=azure-pipelines-ci' -f xml -o dynamic-coverage-systemtextjson.xml + dotnet-coverage collect 'dotnet test ./test/System.Linq.Dynamic.Core.SystemTextJson.Tests/System.Linq.Dynamic.Core.SystemTextJson.Tests.csproj --configuration Debug --framework net10.0' -f xml -o dynamic-coverage-systemtextjson.xml - name: End analysis on SonarCloud if: ${{ steps.secret-check.outputs.run_analysis == 'true' && (github.event_name != 'workflow_dispatch' || inputs.SonarScanner) }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d79a531..438dca6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -722,7 +722,7 @@ # 1.0.7.13 (29 November 2017) - [#117](https://github.com/zzzprojects/System.Linq.Dynamic.Core/pull/117) - New features contributed by [jogibear9988](https://github.com/jogibear9988) -- [#123](https://github.com/zzzprojects/System.Linq.Dynamic.Core/pull/123) - appveyor contributed by [StefH](https://github.com/StefH) +- [#123](https://github.com/zzzprojects/System.Linq.Dynamic.Core/pull/123) - CI configuration contributed by [StefH](https://github.com/StefH) - [#114](https://github.com/zzzprojects/System.Linq.Dynamic.Core/issues/114) - Dynamic Linq Query not usable with ORM Provider [bug] - [#120](https://github.com/zzzprojects/System.Linq.Dynamic.Core/issues/120) - Error with parsing - [#122](https://github.com/zzzprojects/System.Linq.Dynamic.Core/issues/122) - Join with int list @@ -755,7 +755,7 @@ - [#85](https://github.com/zzzprojects/System.Linq.Dynamic.Core/pull/85) - [Fix] Guid? == null comparison contributed by [jogibear9988](https://github.com/jogibear9988) - [#86](https://github.com/zzzprojects/System.Linq.Dynamic.Core/pull/86) - [Fix] Fixed null in Parameter and added functionality Binary And and Or with different Types contributed by [jogibear9988](https://github.com/jogibear9988) - [#92](https://github.com/zzzprojects/System.Linq.Dynamic.Core/pull/92) - [Feature] Adds support for decimal qualifiers. Resolves #91 contributed by [pferraris](https://github.com/pferraris) -- [#93](https://github.com/zzzprojects/System.Linq.Dynamic.Core/pull/93) - [Bug] Fix uap10 build in appveyor contributed by [StefH](https://github.com/StefH) +- [#93](https://github.com/zzzprojects/System.Linq.Dynamic.Core/pull/93) - [Bug] Fix uap10 build in CI contributed by [StefH](https://github.com/StefH) - [#99](https://github.com/zzzprojects/System.Linq.Dynamic.Core/pull/99) - Added DynamicEnumerable Async extension methods contributed by [StefH](https://github.com/StefH) - [#100](https://github.com/zzzprojects/System.Linq.Dynamic.Core/pull/100) - Feature: NullPropagation operator contributed by [StefH](https://github.com/StefH) - [#103](https://github.com/zzzprojects/System.Linq.Dynamic.Core/pull/103) - support group by with 2 parameters, add tolist contributed by [jogibear9988](https://github.com/jogibear9988) diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore10/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore10.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore10/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore10.csproj index 54817a4c..b1344a76 100644 --- a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore10/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore10.csproj +++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore10/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore10.csproj @@ -25,10 +25,6 @@ true - - net10.0 - - diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2.csproj index 2e9a5892..45094b63 100644 --- a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2.csproj +++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore2.csproj @@ -22,10 +22,6 @@ true - - netstandard2.0 - - diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3/Microsoft.EntityFrameworkCore.DynamicLinq.AppVeyor.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3/Microsoft.EntityFrameworkCore.DynamicLinq.AppVeyor.csproj deleted file mode 100644 index 33ae03ba..00000000 --- a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3/Microsoft.EntityFrameworkCore.DynamicLinq.AppVeyor.csproj +++ /dev/null @@ -1,113 +0,0 @@ - - - Dynamic Linq extensions for Microsoft.EntityFrameworkCore which adds Async support - Microsoft.EntityFrameworkCore.DynamicLinq - 1.0.8.12 - ZZZ Projects;Stef Heyenrath - net451;net46;netstandard1.3;netstandard2.0 - $(DefineConstants);EFCORE - true - Microsoft.EntityFrameworkCore.DynamicLinq - Microsoft.EntityFrameworkCore.DynamicLinq.snk - true - true - system;linq;dynamic;entityframework;core;async - Bugfixes and new Features. For details see the release notes. - https://github.com/StefH/System.Linq.Dynamic.Core - https://github.com/StefH/System.Linq.Dynamic.Core/blob/master/licence.txt - git - https://github.com/StefH/System.Linq.Dynamic.Core - $(PackageTargetFallback);dotnet5.4;portable-win81+wp81;portable-net45+wp8;portable-net45+win8+wp8;portable-wp81+wpa81;portable-win81+wp81+wpa81;portable-net45+win8+wpa81+wp8;portable-net45+win8;portable-net45+win8+wpa81;portable-win81+wpa81;portable-net451+win81;portable-net451+win81+wpa81 - false - false - false - false - false - false - false - en-us - {D3804228-91F4-4502-9595-39584E510001} - full - - - - True - True - $(MSBuildProjectDirectory)=/ - true - - - - false - UAP,Version=v10.0 - UAP - 10.0.14393.0 - 10.0.10240.0 - .NETCore - v5.0 - $(DefineConstants);WINDOWS_UWP;UAP10_0 - $(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets - - - - $(DefineConstants);NETSTANDARD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3.csproj index 0254e9a8..da8a9a7d 100644 --- a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3.csproj +++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore3.csproj @@ -25,10 +25,6 @@ true - - netstandard2.0 - - diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5.csproj index 8393f083..4b2bc2cc 100644 --- a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5.csproj +++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore5.csproj @@ -25,10 +25,6 @@ true - - netstandard2.1;net5.0 - - diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6.csproj index d6d07c0b..46a603b3 100644 --- a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6.csproj +++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore6.csproj @@ -25,10 +25,6 @@ true - - net6.0 - - diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7.csproj index 0d590e5e..e03bac41 100644 --- a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7.csproj +++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore7.csproj @@ -25,10 +25,6 @@ true - - net6.0;net7.0 - - diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8.csproj index b95d7eeb..e060f9a5 100644 --- a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8.csproj +++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore8.csproj @@ -25,10 +25,6 @@ true - - net8.0 - - diff --git a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9.csproj b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9.csproj index 129a511b..687bfadb 100644 --- a/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9.csproj +++ b/src/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9/Microsoft.EntityFrameworkCore.DynamicLinq.EFCore9.csproj @@ -25,10 +25,6 @@ true - - net9.0 - - diff --git a/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj b/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj index 1627393c..15734595 100644 --- a/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj +++ b/src/System.Linq.Dynamic.Core/System.Linq.Dynamic.Core.csproj @@ -26,8 +26,8 @@ true - - net40;net45;net46;netstandard1.3;netstandard2.0;netcoreapp2.1;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0 + + net35;net40;net45;net452;net46;netstandard1.3;netstandard2.0;netstandard2.1;netcoreapp2.1;netcoreapp3.1;net5.0;net6.0;net7.0;net8.0;net9.0;net10.0