From 03ee830ee28d820ab94d862ad9d081256babd344 Mon Sep 17 00:00:00 2001 From: Alexander Konietzko Date: Thu, 14 Sep 2023 14:14:20 +0200 Subject: [PATCH 1/4] feat: Upgrade to dotnet 8 --- .github/workflows/dependency-updates.yml | 2 +- .github/workflows/dotnet.yml | 2 +- CleanArchitecture.Api/CleanArchitecture.Api.csproj | 2 +- .../CleanArchitecture.Application.Tests.csproj | 2 +- .../CleanArchitecture.Application.csproj | 2 +- .../CleanArchitecture.Domain.Tests.csproj | 2 +- CleanArchitecture.Domain/CleanArchitecture.Domain.csproj | 2 +- .../CleanArchitecture.Infrastructure.Tests.csproj | 2 +- .../CleanArchitecture.Infrastructure.csproj | 2 +- .../CleanArchitecture.IntegrationTests.csproj | 2 +- CleanArchitecture.Proto/CleanArchitecture.Proto.csproj | 2 +- CleanArchitecture.Shared/CleanArchitecture.Shared.csproj | 2 +- .../CleanArchitecture.gRPC.Tests.csproj | 2 +- CleanArchitecture.gRPC/CleanArchitecture.gRPC.csproj | 2 +- Dockerfile | 4 ++-- Readme.md | 4 ++-- 16 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.github/workflows/dependency-updates.yml b/.github/workflows/dependency-updates.yml index 76f9c9d..75c228e 100644 --- a/.github/workflows/dependency-updates.yml +++ b/.github/workflows/dependency-updates.yml @@ -20,7 +20,7 @@ jobs: - name: Install .NET Core uses: actions/setup-dotnet@v3 with: - dotnet-version: 7.x.x + dotnet-version: 8.x.x - name: Install dotnet-outdated run: dotnet tool install --global dotnet-outdated-tool diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index f1585c6..1a043db 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -22,7 +22,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: 7.x.x + dotnet-version: 8.x.x - name: Restore dependencies run: dotnet restore - name: Build diff --git a/CleanArchitecture.Api/CleanArchitecture.Api.csproj b/CleanArchitecture.Api/CleanArchitecture.Api.csproj index 345bdf5..7fb8080 100644 --- a/CleanArchitecture.Api/CleanArchitecture.Api.csproj +++ b/CleanArchitecture.Api/CleanArchitecture.Api.csproj @@ -1,7 +1,7 @@  - net7.0 + net8.0 enable 64377c40-44d6-4989-9662-5d778f8b3b92 diff --git a/CleanArchitecture.Application.Tests/CleanArchitecture.Application.Tests.csproj b/CleanArchitecture.Application.Tests/CleanArchitecture.Application.Tests.csproj index ddb3c48..b169280 100644 --- a/CleanArchitecture.Application.Tests/CleanArchitecture.Application.Tests.csproj +++ b/CleanArchitecture.Application.Tests/CleanArchitecture.Application.Tests.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 enable false diff --git a/CleanArchitecture.Application/CleanArchitecture.Application.csproj b/CleanArchitecture.Application/CleanArchitecture.Application.csproj index 3b320a5..c251147 100644 --- a/CleanArchitecture.Application/CleanArchitecture.Application.csproj +++ b/CleanArchitecture.Application/CleanArchitecture.Application.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 enable diff --git a/CleanArchitecture.Domain.Tests/CleanArchitecture.Domain.Tests.csproj b/CleanArchitecture.Domain.Tests/CleanArchitecture.Domain.Tests.csproj index 749e02f..e1ae055 100644 --- a/CleanArchitecture.Domain.Tests/CleanArchitecture.Domain.Tests.csproj +++ b/CleanArchitecture.Domain.Tests/CleanArchitecture.Domain.Tests.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 enable false diff --git a/CleanArchitecture.Domain/CleanArchitecture.Domain.csproj b/CleanArchitecture.Domain/CleanArchitecture.Domain.csproj index 6055242..1a8efa5 100644 --- a/CleanArchitecture.Domain/CleanArchitecture.Domain.csproj +++ b/CleanArchitecture.Domain/CleanArchitecture.Domain.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 enable diff --git a/CleanArchitecture.Infrastructure.Tests/CleanArchitecture.Infrastructure.Tests.csproj b/CleanArchitecture.Infrastructure.Tests/CleanArchitecture.Infrastructure.Tests.csproj index 1a8531e..c2b987a 100644 --- a/CleanArchitecture.Infrastructure.Tests/CleanArchitecture.Infrastructure.Tests.csproj +++ b/CleanArchitecture.Infrastructure.Tests/CleanArchitecture.Infrastructure.Tests.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 enable false diff --git a/CleanArchitecture.Infrastructure/CleanArchitecture.Infrastructure.csproj b/CleanArchitecture.Infrastructure/CleanArchitecture.Infrastructure.csproj index 0c47055..7bc9f1b 100644 --- a/CleanArchitecture.Infrastructure/CleanArchitecture.Infrastructure.csproj +++ b/CleanArchitecture.Infrastructure/CleanArchitecture.Infrastructure.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 enable diff --git a/CleanArchitecture.IntegrationTests/CleanArchitecture.IntegrationTests.csproj b/CleanArchitecture.IntegrationTests/CleanArchitecture.IntegrationTests.csproj index 2890dea..20da691 100644 --- a/CleanArchitecture.IntegrationTests/CleanArchitecture.IntegrationTests.csproj +++ b/CleanArchitecture.IntegrationTests/CleanArchitecture.IntegrationTests.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 enable false diff --git a/CleanArchitecture.Proto/CleanArchitecture.Proto.csproj b/CleanArchitecture.Proto/CleanArchitecture.Proto.csproj index 7df8022..2a17507 100644 --- a/CleanArchitecture.Proto/CleanArchitecture.Proto.csproj +++ b/CleanArchitecture.Proto/CleanArchitecture.Proto.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 enable diff --git a/CleanArchitecture.Shared/CleanArchitecture.Shared.csproj b/CleanArchitecture.Shared/CleanArchitecture.Shared.csproj index 812e7fd..5ea58b1 100644 --- a/CleanArchitecture.Shared/CleanArchitecture.Shared.csproj +++ b/CleanArchitecture.Shared/CleanArchitecture.Shared.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 enable diff --git a/CleanArchitecture.gRPC.Tests/CleanArchitecture.gRPC.Tests.csproj b/CleanArchitecture.gRPC.Tests/CleanArchitecture.gRPC.Tests.csproj index 7371779..710ccb2 100644 --- a/CleanArchitecture.gRPC.Tests/CleanArchitecture.gRPC.Tests.csproj +++ b/CleanArchitecture.gRPC.Tests/CleanArchitecture.gRPC.Tests.csproj @@ -1,7 +1,7 @@ - net7.0 + net8.0 enable false diff --git a/CleanArchitecture.gRPC/CleanArchitecture.gRPC.csproj b/CleanArchitecture.gRPC/CleanArchitecture.gRPC.csproj index 068e549..e106542 100644 --- a/CleanArchitecture.gRPC/CleanArchitecture.gRPC.csproj +++ b/CleanArchitecture.gRPC/CleanArchitecture.gRPC.csproj @@ -1,7 +1,7 @@  - net7.0 + net8.0 enable diff --git a/Dockerfile b/Dockerfile index 646bd78..0704fd1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /app # copy csproj and restore as distinct layers @@ -10,7 +10,7 @@ COPY CleanArchitecture.Api/. ./CleanArchitecture.Api/ WORKDIR /app/CleanArchitecture.Api RUN dotnet publish -c Release -o out -FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS runtime +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime WORKDIR /app COPY --from=build /app/CleanArchitecture.Api/out ./ diff --git a/Readme.md b/Readme.md index 6761e87..a2775a8 100644 --- a/Readme.md +++ b/Readme.md @@ -1,4 +1,4 @@ -# Clean Architecture Dotnet 7 API Project +# Clean Architecture Dotnet 8 API Project ![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/alex289/CleanArchitecture/dotnet.yml) @@ -80,4 +80,4 @@ To run the tests, follow these steps: This project uses GitHub Actions to build and test the project on every commit to the main branch. The workflow consists of several steps, including restoring packages, building the project and running tests. ## Conclusion -This project is a sample implementation of the Clean Architecture principles, Onion Architecture, MediatR, and Entity Framework. It demonstrates how to organize a .NET 7 API project into layers, how to use the MediatR library to implement the mediator pattern, and how to use Entity Framework to access data. It also includes unit tests for all layers and integration tests using xUnit. +This project is a sample implementation of the Clean Architecture principles, Onion Architecture, MediatR, and Entity Framework. It demonstrates how to organize a .NET 8 API project into layers, how to use the MediatR library to implement the mediator pattern, and how to use Entity Framework to access data. It also includes unit tests for all layers and integration tests using xUnit. From a2735616e4dc116b70cd138dad5297f50e360608 Mon Sep 17 00:00:00 2001 From: alex289 Date: Wed, 15 Nov 2023 08:40:42 +0100 Subject: [PATCH 2/4] feat: Update packages --- CleanArchitecture.Api/CleanArchitecture.Api.csproj | 12 ++++++------ .../CleanArchitecture.Application.Tests.csproj | 4 ++-- .../CleanArchitecture.Application.csproj | 2 +- .../CleanArchitecture.Domain.Tests.csproj | 4 ++-- .../CleanArchitecture.Domain.csproj | 2 +- .../CleanArchitecture.Infrastructure.Tests.csproj | 4 ++-- .../CleanArchitecture.Infrastructure.csproj | 8 ++++---- .../CleanArchitecture.IntegrationTests.csproj | 12 ++++++------ .../CleanArchitecture.Proto.csproj | 6 +++--- .../CleanArchitecture.gRPC.Tests.csproj | 4 ++-- 10 files changed, 29 insertions(+), 29 deletions(-) diff --git a/CleanArchitecture.Api/CleanArchitecture.Api.csproj b/CleanArchitecture.Api/CleanArchitecture.Api.csproj index 9769426..1a53d65 100644 --- a/CleanArchitecture.Api/CleanArchitecture.Api.csproj +++ b/CleanArchitecture.Api/CleanArchitecture.Api.csproj @@ -12,15 +12,15 @@ - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + diff --git a/CleanArchitecture.Application.Tests/CleanArchitecture.Application.Tests.csproj b/CleanArchitecture.Application.Tests/CleanArchitecture.Application.Tests.csproj index 46c6cda..8c222c0 100644 --- a/CleanArchitecture.Application.Tests/CleanArchitecture.Application.Tests.csproj +++ b/CleanArchitecture.Application.Tests/CleanArchitecture.Application.Tests.csproj @@ -9,10 +9,10 @@ - + - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/CleanArchitecture.Application/CleanArchitecture.Application.csproj b/CleanArchitecture.Application/CleanArchitecture.Application.csproj index 4e70f41..de72048 100644 --- a/CleanArchitecture.Application/CleanArchitecture.Application.csproj +++ b/CleanArchitecture.Application/CleanArchitecture.Application.csproj @@ -6,7 +6,7 @@ - + diff --git a/CleanArchitecture.Domain.Tests/CleanArchitecture.Domain.Tests.csproj b/CleanArchitecture.Domain.Tests/CleanArchitecture.Domain.Tests.csproj index 5f03e8c..ab63a54 100644 --- a/CleanArchitecture.Domain.Tests/CleanArchitecture.Domain.Tests.csproj +++ b/CleanArchitecture.Domain.Tests/CleanArchitecture.Domain.Tests.csproj @@ -10,9 +10,9 @@ - + - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/CleanArchitecture.Domain/CleanArchitecture.Domain.csproj b/CleanArchitecture.Domain/CleanArchitecture.Domain.csproj index 0a38606..67cf3be 100644 --- a/CleanArchitecture.Domain/CleanArchitecture.Domain.csproj +++ b/CleanArchitecture.Domain/CleanArchitecture.Domain.csproj @@ -9,7 +9,7 @@ - + diff --git a/CleanArchitecture.Infrastructure.Tests/CleanArchitecture.Infrastructure.Tests.csproj b/CleanArchitecture.Infrastructure.Tests/CleanArchitecture.Infrastructure.Tests.csproj index 36d4546..7df52a6 100644 --- a/CleanArchitecture.Infrastructure.Tests/CleanArchitecture.Infrastructure.Tests.csproj +++ b/CleanArchitecture.Infrastructure.Tests/CleanArchitecture.Infrastructure.Tests.csproj @@ -9,9 +9,9 @@ - + - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/CleanArchitecture.Infrastructure/CleanArchitecture.Infrastructure.csproj b/CleanArchitecture.Infrastructure/CleanArchitecture.Infrastructure.csproj index a20637f..de5234e 100644 --- a/CleanArchitecture.Infrastructure/CleanArchitecture.Infrastructure.csproj +++ b/CleanArchitecture.Infrastructure/CleanArchitecture.Infrastructure.csproj @@ -12,10 +12,10 @@ - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CleanArchitecture.IntegrationTests/CleanArchitecture.IntegrationTests.csproj b/CleanArchitecture.IntegrationTests/CleanArchitecture.IntegrationTests.csproj index f53a280..b259217 100644 --- a/CleanArchitecture.IntegrationTests/CleanArchitecture.IntegrationTests.csproj +++ b/CleanArchitecture.IntegrationTests/CleanArchitecture.IntegrationTests.csproj @@ -9,12 +9,12 @@ - - - - - - + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/CleanArchitecture.Proto/CleanArchitecture.Proto.csproj b/CleanArchitecture.Proto/CleanArchitecture.Proto.csproj index b89928d..685f659 100644 --- a/CleanArchitecture.Proto/CleanArchitecture.Proto.csproj +++ b/CleanArchitecture.Proto/CleanArchitecture.Proto.csproj @@ -13,9 +13,9 @@ - - - + + + diff --git a/CleanArchitecture.gRPC.Tests/CleanArchitecture.gRPC.Tests.csproj b/CleanArchitecture.gRPC.Tests/CleanArchitecture.gRPC.Tests.csproj index 5f363a3..b60b2fb 100644 --- a/CleanArchitecture.gRPC.Tests/CleanArchitecture.gRPC.Tests.csproj +++ b/CleanArchitecture.gRPC.Tests/CleanArchitecture.gRPC.Tests.csproj @@ -9,10 +9,10 @@ - + - + runtime; build; native; contentfiles; analyzers; buildtransitive all From 2fe06869ec07c96f37df1b0ab994756384bb7da7 Mon Sep 17 00:00:00 2001 From: alex289 Date: Wed, 15 Nov 2023 09:25:20 +0100 Subject: [PATCH 3/4] feat: Remove deprecated system clock --- .../Infrastructure/Auth/TestAuthenticationHandler.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CleanArchitecture.IntegrationTests/Infrastructure/Auth/TestAuthenticationHandler.cs b/CleanArchitecture.IntegrationTests/Infrastructure/Auth/TestAuthenticationHandler.cs index db98295..57f7faa 100644 --- a/CleanArchitecture.IntegrationTests/Infrastructure/Auth/TestAuthenticationHandler.cs +++ b/CleanArchitecture.IntegrationTests/Infrastructure/Auth/TestAuthenticationHandler.cs @@ -12,8 +12,7 @@ public sealed class TestAuthenticationHandler : AuthenticationHandler options, ILoggerFactory logger, - UrlEncoder encoder, - ISystemClock clock) : base(options, logger, encoder, clock) + UrlEncoder encoder) : base(options, logger, encoder) { } From 569c38b9b383c94ec2aa43a352bc4ef64c259ecf Mon Sep 17 00:00:00 2001 From: alex289 Date: Thu, 16 Nov 2023 14:34:47 +0100 Subject: [PATCH 4/4] fix(codeql): Add dotnet 8 setup --- .github/workflows/codeql.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 065527d..5be095b 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -27,6 +27,11 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 + - name: Setup dotnet + uses: actions/setup-dotnet@v3 + with: + dotnet-version: '8.x.x' + - name: Initialize CodeQL uses: github/codeql-action/init@v2 with: