From 6318238174f1af077ca18981d283ae7220837136 Mon Sep 17 00:00:00 2001 From: Ivan Sentemon Date: Wed, 23 Oct 2024 20:23:08 +0200 Subject: [PATCH] Change the structure of the repository --- .github/workflows/post.yml | 10 +++---- .gitignore | 2 ++ backend/services/PostService/Dockerfile | 29 +++++++++++++++++++ .../PostService/PostService.sln | 19 ++++++++---- .../GraphQL/Mutation/Mutation.cs | 0 .../PostService.Api/GraphQL/Query/Query.cs | 0 .../PostService.Api/PostService.Api.csproj | 0 .../src}/PostService.Api/Program.cs | 0 .../Properties/launchSettings.json | 0 .../appsettings.Development.json | 0 .../src}/PostService.Api/appsettings.json | 0 .../DependencyInjection.cs | 0 .../PostService.Application.csproj | 0 .../PostService.Domain.csproj | 0 .../DependencyInjection.cs | 0 .../PostService.Infrastructure.csproj | 0 .../DependencyInjection.cs | 0 .../PostService.Persistence.csproj | 0 backend/src/PostService/Dockerfile | 29 ------------------- 19 files changed, 50 insertions(+), 39 deletions(-) create mode 100644 .gitignore create mode 100644 backend/services/PostService/Dockerfile rename backend/{src => services}/PostService/PostService.sln (66%) rename backend/{src/PostService => services/PostService/src}/PostService.Api/GraphQL/Mutation/Mutation.cs (100%) rename backend/{src/PostService => services/PostService/src}/PostService.Api/GraphQL/Query/Query.cs (100%) rename backend/{src/PostService => services/PostService/src}/PostService.Api/PostService.Api.csproj (100%) rename backend/{src/PostService => services/PostService/src}/PostService.Api/Program.cs (100%) rename backend/{src/PostService => services/PostService/src}/PostService.Api/Properties/launchSettings.json (100%) rename backend/{src/PostService => services/PostService/src}/PostService.Api/appsettings.Development.json (100%) rename backend/{src/PostService => services/PostService/src}/PostService.Api/appsettings.json (100%) rename backend/{src/PostService => services/PostService/src}/PostService.Application/DependencyInjection.cs (100%) rename backend/{src/PostService => services/PostService/src}/PostService.Application/PostService.Application.csproj (100%) rename backend/{src/PostService => services/PostService/src}/PostService.Domain/PostService.Domain.csproj (100%) rename backend/{src/PostService => services/PostService/src}/PostService.Infrastructure/DependencyInjection.cs (100%) rename backend/{src/PostService => services/PostService/src}/PostService.Infrastructure/PostService.Infrastructure.csproj (100%) rename backend/{src/PostService => services/PostService/src}/PostService.Persistence/DependencyInjection.cs (100%) rename backend/{src/PostService => services/PostService/src}/PostService.Persistence/PostService.Persistence.csproj (100%) delete mode 100644 backend/src/PostService/Dockerfile diff --git a/.github/workflows/post.yml b/.github/workflows/post.yml index cd68c7c..6db7120 100644 --- a/.github/workflows/post.yml +++ b/.github/workflows/post.yml @@ -3,7 +3,7 @@ name: Post Service CI/CD Pipeline on: push: paths: - - 'backend/src/PostService/**' + - 'backend/services/PostService/**' - '.github/workflows/post.yml' pull_request: branches: @@ -23,13 +23,13 @@ jobs: dotnet-version: '8.0.x' - name: Restore dependencies - run: dotnet restore ./backend/src/PostService/PostService.sln + run: dotnet restore ./backend/services/PostService/PostService.sln - name: Build project - run: dotnet build --configuration Release ./backend/src/PostService/PostService.sln --no-restore + run: dotnet build --configuration Release ./backend/services/PostService/PostService.sln --no-restore - name: Run tests - run: dotnet test ./backend/src/PostService/PostService.sln --no-restore --verbosity normal + run: dotnet test ./backend/services/PostService/PostService.sln --no-restore --verbosity normal docker: needs: build @@ -43,7 +43,7 @@ jobs: run: echo "${{ secrets.DOCKER_HUB_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_HUB_USERNAME }}" --password-stdin - name: Build Docker image - run: docker build -t ${{ secrets.DOCKER_HUB_USERNAME }}/post-service:latest ./backend/src/PostService + run: docker build -t ${{ secrets.DOCKER_HUB_USERNAME }}/post-service:latest ./backend/services/PostService - name: Push Docker image to Docker Hub run: docker push ${{ secrets.DOCKER_HUB_USERNAME }}/post-service:latest diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a7dfb30 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +.env \ No newline at end of file diff --git a/backend/services/PostService/Dockerfile b/backend/services/PostService/Dockerfile new file mode 100644 index 0000000..54ca5cd --- /dev/null +++ b/backend/services/PostService/Dockerfile @@ -0,0 +1,29 @@ +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +WORKDIR /app +EXPOSE 8082 + +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +WORKDIR /src + +COPY ["PostService.sln", "./"] +COPY ["src/PostService.Api/PostService.Api.csproj", "src/PostService.Api/"] +COPY ["src/PostService.Application/PostService.Application.csproj", "src/PostService.Application/"] +COPY ["src/PostService.Domain/PostService.Domain.csproj", "src/PostService.Domain/"] +COPY ["src/PostService.Infrastructure/PostService.Infrastructure.csproj", "src/PostService.Infrastructure/"] +COPY ["src/PostService.Persistence/PostService.Persistence.csproj", "src/PostService.Persistence/"] + +RUN dotnet restore "src/PostService.Api/PostService.Api.csproj" + +COPY . . + +WORKDIR "/src/src/PostService.Api" +RUN dotnet build -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish -c Release -o /app/publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . + +ENTRYPOINT ["dotnet", "PostService.Api.dll"] \ No newline at end of file diff --git a/backend/src/PostService/PostService.sln b/backend/services/PostService/PostService.sln similarity index 66% rename from backend/src/PostService/PostService.sln rename to backend/services/PostService/PostService.sln index b18dc17..406c44c 100644 --- a/backend/src/PostService/PostService.sln +++ b/backend/services/PostService/PostService.sln @@ -1,14 +1,16 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostService.Api", "PostService.Api\PostService.Api.csproj", "{2E44C019-ED30-4671-A878-D2F7B6071024}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{84AE3F00-9A59-4A8D-A737-67AB74E5D1FD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostService.Domain", "PostService.Domain\PostService.Domain.csproj", "{BC83A789-36C2-42E7-B630-6BC503375C30}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostService.Api", "src\PostService.Api\PostService.Api.csproj", "{2E44C019-ED30-4671-A878-D2F7B6071024}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostService.Infrastructure", "PostService.Infrastructure\PostService.Infrastructure.csproj", "{49301846-33F7-4C75-A1F9-6A0FEBA5EADD}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostService.Domain", "src\PostService.Domain\PostService.Domain.csproj", "{BC83A789-36C2-42E7-B630-6BC503375C30}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostService.Persistence", "PostService.Persistence\PostService.Persistence.csproj", "{0E631CB2-47C2-458A-B163-43CE50473B8A}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostService.Infrastructure", "src\PostService.Infrastructure\PostService.Infrastructure.csproj", "{49301846-33F7-4C75-A1F9-6A0FEBA5EADD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostService.Application", "PostService.Application\PostService.Application.csproj", "{4FD56528-F5F1-4BF8-AC46-A5E54D158AA2}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostService.Persistence", "src\PostService.Persistence\PostService.Persistence.csproj", "{0E631CB2-47C2-458A-B163-43CE50473B8A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostService.Application", "src\PostService.Application\PostService.Application.csproj", "{4FD56528-F5F1-4BF8-AC46-A5E54D158AA2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -37,4 +39,11 @@ Global {4FD56528-F5F1-4BF8-AC46-A5E54D158AA2}.Release|Any CPU.ActiveCfg = Release|Any CPU {4FD56528-F5F1-4BF8-AC46-A5E54D158AA2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {2E44C019-ED30-4671-A878-D2F7B6071024} = {84AE3F00-9A59-4A8D-A737-67AB74E5D1FD} + {4FD56528-F5F1-4BF8-AC46-A5E54D158AA2} = {84AE3F00-9A59-4A8D-A737-67AB74E5D1FD} + {BC83A789-36C2-42E7-B630-6BC503375C30} = {84AE3F00-9A59-4A8D-A737-67AB74E5D1FD} + {49301846-33F7-4C75-A1F9-6A0FEBA5EADD} = {84AE3F00-9A59-4A8D-A737-67AB74E5D1FD} + {0E631CB2-47C2-458A-B163-43CE50473B8A} = {84AE3F00-9A59-4A8D-A737-67AB74E5D1FD} + EndGlobalSection EndGlobal diff --git a/backend/src/PostService/PostService.Api/GraphQL/Mutation/Mutation.cs b/backend/services/PostService/src/PostService.Api/GraphQL/Mutation/Mutation.cs similarity index 100% rename from backend/src/PostService/PostService.Api/GraphQL/Mutation/Mutation.cs rename to backend/services/PostService/src/PostService.Api/GraphQL/Mutation/Mutation.cs diff --git a/backend/src/PostService/PostService.Api/GraphQL/Query/Query.cs b/backend/services/PostService/src/PostService.Api/GraphQL/Query/Query.cs similarity index 100% rename from backend/src/PostService/PostService.Api/GraphQL/Query/Query.cs rename to backend/services/PostService/src/PostService.Api/GraphQL/Query/Query.cs diff --git a/backend/src/PostService/PostService.Api/PostService.Api.csproj b/backend/services/PostService/src/PostService.Api/PostService.Api.csproj similarity index 100% rename from backend/src/PostService/PostService.Api/PostService.Api.csproj rename to backend/services/PostService/src/PostService.Api/PostService.Api.csproj diff --git a/backend/src/PostService/PostService.Api/Program.cs b/backend/services/PostService/src/PostService.Api/Program.cs similarity index 100% rename from backend/src/PostService/PostService.Api/Program.cs rename to backend/services/PostService/src/PostService.Api/Program.cs diff --git a/backend/src/PostService/PostService.Api/Properties/launchSettings.json b/backend/services/PostService/src/PostService.Api/Properties/launchSettings.json similarity index 100% rename from backend/src/PostService/PostService.Api/Properties/launchSettings.json rename to backend/services/PostService/src/PostService.Api/Properties/launchSettings.json diff --git a/backend/src/PostService/PostService.Api/appsettings.Development.json b/backend/services/PostService/src/PostService.Api/appsettings.Development.json similarity index 100% rename from backend/src/PostService/PostService.Api/appsettings.Development.json rename to backend/services/PostService/src/PostService.Api/appsettings.Development.json diff --git a/backend/src/PostService/PostService.Api/appsettings.json b/backend/services/PostService/src/PostService.Api/appsettings.json similarity index 100% rename from backend/src/PostService/PostService.Api/appsettings.json rename to backend/services/PostService/src/PostService.Api/appsettings.json diff --git a/backend/src/PostService/PostService.Application/DependencyInjection.cs b/backend/services/PostService/src/PostService.Application/DependencyInjection.cs similarity index 100% rename from backend/src/PostService/PostService.Application/DependencyInjection.cs rename to backend/services/PostService/src/PostService.Application/DependencyInjection.cs diff --git a/backend/src/PostService/PostService.Application/PostService.Application.csproj b/backend/services/PostService/src/PostService.Application/PostService.Application.csproj similarity index 100% rename from backend/src/PostService/PostService.Application/PostService.Application.csproj rename to backend/services/PostService/src/PostService.Application/PostService.Application.csproj diff --git a/backend/src/PostService/PostService.Domain/PostService.Domain.csproj b/backend/services/PostService/src/PostService.Domain/PostService.Domain.csproj similarity index 100% rename from backend/src/PostService/PostService.Domain/PostService.Domain.csproj rename to backend/services/PostService/src/PostService.Domain/PostService.Domain.csproj diff --git a/backend/src/PostService/PostService.Infrastructure/DependencyInjection.cs b/backend/services/PostService/src/PostService.Infrastructure/DependencyInjection.cs similarity index 100% rename from backend/src/PostService/PostService.Infrastructure/DependencyInjection.cs rename to backend/services/PostService/src/PostService.Infrastructure/DependencyInjection.cs diff --git a/backend/src/PostService/PostService.Infrastructure/PostService.Infrastructure.csproj b/backend/services/PostService/src/PostService.Infrastructure/PostService.Infrastructure.csproj similarity index 100% rename from backend/src/PostService/PostService.Infrastructure/PostService.Infrastructure.csproj rename to backend/services/PostService/src/PostService.Infrastructure/PostService.Infrastructure.csproj diff --git a/backend/src/PostService/PostService.Persistence/DependencyInjection.cs b/backend/services/PostService/src/PostService.Persistence/DependencyInjection.cs similarity index 100% rename from backend/src/PostService/PostService.Persistence/DependencyInjection.cs rename to backend/services/PostService/src/PostService.Persistence/DependencyInjection.cs diff --git a/backend/src/PostService/PostService.Persistence/PostService.Persistence.csproj b/backend/services/PostService/src/PostService.Persistence/PostService.Persistence.csproj similarity index 100% rename from backend/src/PostService/PostService.Persistence/PostService.Persistence.csproj rename to backend/services/PostService/src/PostService.Persistence/PostService.Persistence.csproj diff --git a/backend/src/PostService/Dockerfile b/backend/src/PostService/Dockerfile deleted file mode 100644 index 2ca459b..0000000 --- a/backend/src/PostService/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base -WORKDIR /app -EXPOSE 8082 - -FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build -WORKDIR /src - -COPY ["PostService.sln", "./"] -COPY ["PostService.Api/PostService.Api.csproj", "src/PostService.Api/"] -COPY ["PostService.Application/PostService.Application.csproj", "src/PostService.Application/"] -COPY ["PostService.Domain/PostService.Domain.csproj", "src/PostService.Domain/"] -COPY ["PostService.Infrastructure/PostService.Infrastructure.csproj", "src/PostService.Infrastructure/"] -COPY ["PostService.Persistence/PostService.Persistence.csproj", "src/PostService.Persistence/"] - -RUN dotnet restore "src/PostService.Api/PostService.Api.csproj" - -COPY . . - -WORKDIR "/src/PostService.Api" -RUN dotnet build -c Release -o /app/build - -FROM build AS publish -RUN dotnet publish -c Release -o /app/publish - -FROM base AS final -WORKDIR /app -COPY --from=publish /app/publish . - -ENTRYPOINT ["dotnet", "PostService.Api.dll"] \ No newline at end of file