From e6e716de79d5e21d6f445525575d2acba5fb7c58 Mon Sep 17 00:00:00 2001 From: mcmuzzle Date: Sat, 7 Sep 2024 16:45:56 +0200 Subject: [PATCH] test --- .gitea/workflows/Review.yaml | 22 ++++++++++++++++++++ .gitea/workflows/merge.yaml | 16 ++++++++++----- .gitignore | 3 ++- docker-prod/.env | 5 +++++ docker-prod/.env.example | 5 +++++ docker-prod/Dockerfile | 21 +++++++++++++++++++ docker-prod/compose.yml | 24 ++++++++++++++++++++++ src/LudikZoneBlazor/LudikZoneBlazor.csproj | 4 ---- src/LudikZoneBlazor/Program.cs | 7 +++++++ src/LudikZoneBlazor/appsettings.json | 6 +++--- 10 files changed, 100 insertions(+), 13 deletions(-) create mode 100644 .gitea/workflows/Review.yaml create mode 100644 docker-prod/.env create mode 100644 docker-prod/.env.example create mode 100644 docker-prod/Dockerfile create mode 100644 docker-prod/compose.yml diff --git a/.gitea/workflows/Review.yaml b/.gitea/workflows/Review.yaml new file mode 100644 index 0000000..86e5257 --- /dev/null +++ b/.gitea/workflows/Review.yaml @@ -0,0 +1,22 @@ +name: "Main Build Process" + +on: + pull_request: + branches: ["main"] + +jobs: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Setup dotnet + uses: actions/setup-dotnet@v3 + with: + dotnet-version: '8.0.x' + - name: Install dependencies + run: dotnet restore ./src/LittleTown.sln + - name: Build + run: dotnet build ./src/LittleTown.sln + - name: Test with the dotnet CLI + run: dotnet test ./src/LittleTown.sln \ No newline at end of file diff --git a/.gitea/workflows/merge.yaml b/.gitea/workflows/merge.yaml index 29f0a3b..b009ec8 100644 --- a/.gitea/workflows/merge.yaml +++ b/.gitea/workflows/merge.yaml @@ -1,18 +1,18 @@ name: "Main Build Process" -# Runs on main branch commits, -# every commit in a pull request, any published release. on: push: branches: ["main"] pull_request: + types: + - closed branches: ["main"] release: types: [published] jobs: - asciidoc: - name: "generate documentation" + if_merged: + if: github.event.pull_request.merged == true runs-on: ubuntu-latest @@ -26,9 +26,15 @@ jobs: program: "asciidoctor -D docs --backend=html5 -o index.html documentation/readme.adoc" - name: Print execution time run: echo "Time ${{ steps.adocbuild.outputs.time }}" - - name: Deploy docs to ghpages + - name: Upload artifact uses: actions/upload-artifact@v3 with: name: Doc path: ./docs retention-days: 5 + - name: build docker images + run: docker build -t gitea.borealian.ovh/mcmuzzle/ludikzone:latest -f ./docker-prod/Dockerfile . + - name: upload image + run: | + echo "${{ secrets.PERSO_GITEAPASSWORD}}" | docker login gitea.borealian.ovh --username mcmuzzle --password-stdin + docker push gitea.borealian.ovh/mcmuzzle/ludikzone:latest diff --git a/.gitignore b/.gitignore index 17e658c..1df4381 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,5 @@ tools/ TestResults #docker data -/docker-dev/data \ No newline at end of file +/docker-dev/data +/docker-prod/data \ No newline at end of file diff --git a/docker-prod/.env b/docker-prod/.env new file mode 100644 index 0000000..b496967 --- /dev/null +++ b/docker-prod/.env @@ -0,0 +1,5 @@ +DB_HOST="postgresql" +DB_PORT=5432 +DB_USER="admin" +DB_PASSWORD="admin" +DB_DATABASE="ludikZone" \ No newline at end of file diff --git a/docker-prod/.env.example b/docker-prod/.env.example new file mode 100644 index 0000000..a9f8a9c --- /dev/null +++ b/docker-prod/.env.example @@ -0,0 +1,5 @@ +DB_HOST="localhost" +DB_PORT=5432 +DB_USER="admin" +DB_PASSWORD="admin" +DB_DATABASE="ludikZone" \ No newline at end of file diff --git a/docker-prod/Dockerfile b/docker-prod/Dockerfile new file mode 100644 index 0000000..df86a26 --- /dev/null +++ b/docker-prod/Dockerfile @@ -0,0 +1,21 @@ +FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build +WORKDIR /src +COPY ["src/LudikZoneBlazor/LudikZoneBlazor.csproj", "src/LudikZoneBlazor/LudikZoneBlazor.csproj"] +RUN dotnet restore "src/LudikZoneBlazor/LudikZoneBlazor.csproj" +COPY src src +RUN ls -a -l +RUN dotnet build "src/LudikZoneBlazor/LudikZoneBlazor.csproj" -c Release -o /app/build + +FROM build AS publish +WORKDIR /src +RUN dotnet publish "src/LudikZoneBlazor/LudikZoneBlazor.csproj" -c Release -o /app/publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "LudikZoneBlazor.dll"] \ No newline at end of file diff --git a/docker-prod/compose.yml b/docker-prod/compose.yml new file mode 100644 index 0000000..6b1b7ba --- /dev/null +++ b/docker-prod/compose.yml @@ -0,0 +1,24 @@ +services: + postgresql: + image: postgres:16 + ports: + - "${DB_PORT:-5432}:5432" + volumes: + - ./data/postgres/:/var/lib/postgresql/data + environment: + - POSTGRES_DB=${DB_DATABASE:-ludikZone} + - POSTGRES_USER=${DB_USER:-admin} + - POSTGRES_PASSWORD=${DB_PASSWORD:-admin} + + ludikzone: + image: gitea.borealian.ovh/mcmuzzle/ludikzone:latest + ports: + - 8080:8080 + environment: + - DB_HOST=${DB_HOST:-"postgresql"} + - DB_PORT=${DB_PORT:-5432} + - DB_USER=${DB_USER:-"admin"} + - DB_PASSWORD=${DB_PASSWORD:-"admin"} + - DB_DATABASE=${DB_DATABASE:-"ludikZone"} + depends_on: + - postgresql diff --git a/src/LudikZoneBlazor/LudikZoneBlazor.csproj b/src/LudikZoneBlazor/LudikZoneBlazor.csproj index a9e2c9c..7e31e71 100644 --- a/src/LudikZoneBlazor/LudikZoneBlazor.csproj +++ b/src/LudikZoneBlazor/LudikZoneBlazor.csproj @@ -7,10 +7,6 @@ aspnet-LudikZoneBlazor-b18f2a2e-d082-4232-8521-6cacaa2a4ba2 - - - - diff --git a/src/LudikZoneBlazor/Program.cs b/src/LudikZoneBlazor/Program.cs index fa4f86e..bb9b649 100644 --- a/src/LudikZoneBlazor/Program.cs +++ b/src/LudikZoneBlazor/Program.cs @@ -74,4 +74,11 @@ app.MapRazorComponents() // Add additional endpoints required by the Identity /Account Razor components. app.MapAdditionalIdentityEndpoints(); +// Appliquer les migrations automatiquement lors du démarrage +using (var scope = app.Services.CreateScope()) +{ + var dbContext = scope.ServiceProvider.GetRequiredService(); + dbContext.Database.Migrate(); // Applique les migrations +} + app.Run(); diff --git a/src/LudikZoneBlazor/appsettings.json b/src/LudikZoneBlazor/appsettings.json index 9daf2e9..df5993f 100644 --- a/src/LudikZoneBlazor/appsettings.json +++ b/src/LudikZoneBlazor/appsettings.json @@ -1,12 +1,12 @@ { - "ConnectionStrings": { - "DefaultConnection": "DataSource=Data\\app.db;Cache=Shared" - }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" } }, + "ConnectionStrings": { + "DefaultConnection": "host=localhost;username=admin;database=ludikZone;Pooling=false;Timeout=300;CommandTimeout=300;Port=5432;" + }, "AllowedHosts": "*" } \ No newline at end of file -- 2.49.1