From 32c3a76bb71754d6f3903d3811da251cab31ef05 Mon Sep 17 00:00:00 2001 From: vivet Date: Mon, 8 Sep 2025 19:38:15 +0200 Subject: [PATCH 1/2] Changed CI/CD to GitHub Actions --- .github/workflows/build-and-deploy.yml | 70 +++++++++++++++++++ .../CriteriaBuilderTest.cs | 0 .../CriteriaExpressionTest.cs | 0 .../Extensions/QueryableExtensionsTest.cs | 0 .../Tests.DynamicExpression.csproj} | 0 DynamicExpression.sln | 20 ++++-- DynamicExpression/DynamicExpression.csproj | 8 +-- README.md | 2 +- appveyor.yml | 33 --------- 9 files changed, 89 insertions(+), 44 deletions(-) create mode 100644 .github/workflows/build-and-deploy.yml rename .tests/{DynamicExpression.Test => Tests.DynamicExpression}/CriteriaBuilderTest.cs (100%) rename .tests/{DynamicExpression.Test => Tests.DynamicExpression}/CriteriaExpressionTest.cs (100%) rename .tests/{DynamicExpression.Test => Tests.DynamicExpression}/Extensions/QueryableExtensionsTest.cs (100%) rename .tests/{DynamicExpression.Test/DynamicExpression.Test.csproj => Tests.DynamicExpression/Tests.DynamicExpression.csproj} (100%) delete mode 100644 appveyor.yml diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml new file mode 100644 index 0000000..60126bd --- /dev/null +++ b/.github/workflows/build-and-deploy.yml @@ -0,0 +1,70 @@ +name: Build and Deploy +on: + pull_request: + branches: + - master + push: + branches: + - master +env: + APP_NAME: DynamicExpression + VERSION: 9.0.2 + NUGET_HOST: https://www.nuget.org + NUGET_APIKEY: ${{ secrets.NUGET_APIKEY }} +jobs: + build-and-deploy: + runs-on: ubuntu-latest + permissions: + contents: write + packages: write + id-token: write + concurrency: + group: ${{ github.repository }} + cancel-in-progress: false + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-dotnet@v3 + with: + dotnet-version: 9.0.x + + - name: Build and Test + shell: pwsh + run: | + dotnet build -c Release .\$env:APP_NAME.sln; + if ($LastExitCode -ne 0) + { + throw "Build failed"; + }; + + dotnet test .\.tests\Tests.$env:APP_NAME\Tests.$env:APP_NAME.csproj + if ($LastExitCode -ne 0) + { + throw "Tests failed"; + }; + + dotnet pack --output nupkgs /p:PackageVersion=$env:VERSION; + if ($LastExitCode -ne 0) + { + throw "Pack failed"; + }; + + - name: Push NuGet + if: github.ref == 'refs/heads/master' + shell: pwsh + run: | + dotnet nuget push nupkgs/$env:APP_NAME"."$env:VERSION.nupkg -s $env:NUGET_HOST -k $env:NUGET_APIKEY + dotnet nuget push nupkgs/$env:APP_NAME"."$env:VERSION.snupkg -s $env:NUGET_HOST -k $env:NUGET_APIKEY + + - name: GitHub Release + if: github.ref == 'refs/heads/master' + uses: ncipollo/release-action@v1 + with: + tag: v${{ env.VERSION }} + name: "Release ${{ env.VERSION }}" + body: | + Version: ${{ env.VERSION }} + Commit: ${{ github.sha }} + artifacts: "nupkgs/*" + token: ${{ secrets.GITHUB_TOKEN }} + draft: false + prerelease: false \ No newline at end of file diff --git a/.tests/DynamicExpression.Test/CriteriaBuilderTest.cs b/.tests/Tests.DynamicExpression/CriteriaBuilderTest.cs similarity index 100% rename from .tests/DynamicExpression.Test/CriteriaBuilderTest.cs rename to .tests/Tests.DynamicExpression/CriteriaBuilderTest.cs diff --git a/.tests/DynamicExpression.Test/CriteriaExpressionTest.cs b/.tests/Tests.DynamicExpression/CriteriaExpressionTest.cs similarity index 100% rename from .tests/DynamicExpression.Test/CriteriaExpressionTest.cs rename to .tests/Tests.DynamicExpression/CriteriaExpressionTest.cs diff --git a/.tests/DynamicExpression.Test/Extensions/QueryableExtensionsTest.cs b/.tests/Tests.DynamicExpression/Extensions/QueryableExtensionsTest.cs similarity index 100% rename from .tests/DynamicExpression.Test/Extensions/QueryableExtensionsTest.cs rename to .tests/Tests.DynamicExpression/Extensions/QueryableExtensionsTest.cs diff --git a/.tests/DynamicExpression.Test/DynamicExpression.Test.csproj b/.tests/Tests.DynamicExpression/Tests.DynamicExpression.csproj similarity index 100% rename from .tests/DynamicExpression.Test/DynamicExpression.Test.csproj rename to .tests/Tests.DynamicExpression/Tests.DynamicExpression.csproj diff --git a/DynamicExpression.sln b/DynamicExpression.sln index 24a2055..109808c 100644 --- a/DynamicExpression.sln +++ b/DynamicExpression.sln @@ -6,7 +6,6 @@ MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".solution", ".solution", "{EA0E8885-9387-4A54-8DE6-65EB2431C1B9}" ProjectSection(SolutionItems) = preProject .gitignore = .gitignore - appveyor.yml = appveyor.yml icon.jpg = icon.jpg LICENSE = LICENSE README.md = README.md @@ -16,7 +15,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynamicExpression", "Dynami EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".tests", ".tests", "{8BD321DD-4802-4A62-BA89-615F8565298F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DynamicExpression.Test", ".tests\DynamicExpression.Test\DynamicExpression.Test.csproj", "{E13EA595-4752-4DD2-9AEE-EAEFDEBD86BF}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{02EA681E-C7D8-13C7-8484-4AC65E1B71E8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{F1E6FE2B-1C26-464C-BCAA-2F22531084D3}" + ProjectSection(SolutionItems) = preProject + .github\workflows\build-and-deploy.yml = .github\workflows\build-and-deploy.yml + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tests.DynamicExpression", ".tests\Tests.DynamicExpression\Tests.DynamicExpression.csproj", "{25B6B71F-1096-6FB0-3131-FFEE12EB9024}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -28,15 +34,17 @@ Global {B283F4A4-1E7B-4D9A-A767-002C11B2C881}.Debug|Any CPU.Build.0 = Debug|Any CPU {B283F4A4-1E7B-4D9A-A767-002C11B2C881}.Release|Any CPU.ActiveCfg = Release|Any CPU {B283F4A4-1E7B-4D9A-A767-002C11B2C881}.Release|Any CPU.Build.0 = Release|Any CPU - {E13EA595-4752-4DD2-9AEE-EAEFDEBD86BF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E13EA595-4752-4DD2-9AEE-EAEFDEBD86BF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E13EA595-4752-4DD2-9AEE-EAEFDEBD86BF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {25B6B71F-1096-6FB0-3131-FFEE12EB9024}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {25B6B71F-1096-6FB0-3131-FFEE12EB9024}.Debug|Any CPU.Build.0 = Debug|Any CPU + {25B6B71F-1096-6FB0-3131-FFEE12EB9024}.Release|Any CPU.ActiveCfg = Release|Any CPU + {25B6B71F-1096-6FB0-3131-FFEE12EB9024}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {E13EA595-4752-4DD2-9AEE-EAEFDEBD86BF} = {8BD321DD-4802-4A62-BA89-615F8565298F} + {F1E6FE2B-1C26-464C-BCAA-2F22531084D3} = {02EA681E-C7D8-13C7-8484-4AC65E1B71E8} + {25B6B71F-1096-6FB0-3131-FFEE12EB9024} = {8BD321DD-4802-4A62-BA89-615F8565298F} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {88C60CFA-317B-4439-ACA0-4CBE16274F92} diff --git a/DynamicExpression/DynamicExpression.csproj b/DynamicExpression/DynamicExpression.csproj index 62c712a..9708f32 100644 --- a/DynamicExpression/DynamicExpression.csproj +++ b/DynamicExpression/DynamicExpression.csproj @@ -3,9 +3,9 @@ net9.0 true AnyCPU - 9.0.1.0 - 9.0.1.0 - 9.0.1.0 + 9.0.2.0 + 9.0.2.0 + 9.0.2.0 latest Michael Vivet Dynamic Expression @@ -15,7 +15,7 @@ Lampda, Expression, Linq, Dynamic, Criteria, Query, Paging, Pagination, Sort, Sorting README.md - - Added Geometry types from nettopologysuite for geo-spatial criteria. + - Moved CI/CD to GitHub Actions. https://raw.githubusercontent.com/vivet/DynamicExpression/master/LICENSE LICENSE diff --git a/README.md b/README.md index 3d0aa1b..d2f1738 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Dynamic Expression -[![Build status](https://ci.appveyor.com/api/projects/status/lv6dki9f4o7ck88b/branch/master?svg=true)](https://ci.appveyor.com/project/vivet/dynamicexpression/branch/master) +[![Build and Deploy](https://github.com/Vivet/DynamicExpression/actions/workflows/build-and-deploy.yml/badge.svg)](https://github.com/Vivet/DynamicExpression/actions/workflows/build-and-deploy.yml) [![NuGet](https://img.shields.io/nuget/dt/DynamicExpression.svg)](https://www.nuget.org/packages/DynamicExpression/) [![NuGet](https://img.shields.io/nuget/v/DynamicExpression.svg)](https://www.nuget.org/packages/DynamicExpression/) diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 482dcbf..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,33 +0,0 @@ -version: 9.0.1.{build} -skip_tags: true -max_jobs: 1 -image: Visual Studio 2022 -configuration: Release -platform: Any CPU -force_https_clone: true -nuget: - account_feed: false - project_feed: false -environment: - NUGET_HOST: https://www.nuget.org - NUGET_APIKEY: - secure: GmL+s4FAMc4kMD/O+LST8XV2QXxjvpjV0muni1WttUxjwaQRXDwyXDRHpE3RvEl5 -build: off -build_script: -- ps: >- - dotnet build .\DynamicExpression.sln; -test: off -test_script: -- ps: >- - dotnet test .\.tests\DynamicExpression.Test\DynamicExpression.Test.csproj -artifacts: -- path: '**\*.nupkg' - name: NuGet Package -- path: '**\*.snupkg' - name: NuGet Symbol Package -deploy: -- provider: NuGet - server: $(NUGET_HOST) - api_key: $(NUGET_APIKEY) - on: - branch: master From 3a3dfa4a5ba2912f49de7c2c2779ee4c60e308de Mon Sep 17 00:00:00 2001 From: vivet Date: Mon, 8 Sep 2025 19:43:50 +0200 Subject: [PATCH 2/2] Testing 1 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d2f1738..7e29f99 100644 --- a/README.md +++ b/README.md @@ -121,4 +121,4 @@ Add Query and Query Criteria to MVC. ```csharp services .AddQueryModelBinders(); -``` +``` \ No newline at end of file