diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3729ff0 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,25 @@ +**/.classpath +**/.dockerignore +**/.env +**/.git +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml +LICENSE +README.md \ No newline at end of file diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..e8d7754 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,75 @@ +kind: pipeline +type: docker +name: default + +trigger: + event: + - push + +steps: + - name: build + image: mcr.microsoft.com/dotnet/sdk:6.0 + commands: + - cd Sources/ + - dotnet restore MySolution.sln + - dotnet build MySolution.sln -c Release --no-restore + + - name: tests + image: mcr.microsoft.com/dotnet/sdk:6.0 + commands: + - cd Sources/ + - dotnet restore MySolution.sln + - dotnet test MySolution.sln --no-restore + depends_on: [build] + + - name: code-analysis + image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dronesonarplugin-dotnet6 + commands: + - cd Sources/ + - dotnet restore MySolution.sln + - dotnet sonarscanner begin /k:$REPO_NAME /d:sonar.host.url=$$$${PLUGIN_SONAR_HOST} /d:sonar.coverageReportPaths="coveragereport/SonarQube.xml" /d:sonar.coverage.exclusions="Tests/**" /d:sonar.login=$$$${PLUGIN_SONAR_TOKEN} + - dotnet build MySolution.sln -c Release --no-restore + - dotnet test MySolution.sln --logger trx --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura --collect "XPlat Code Coverage" + - reportgenerator -reports:"**/coverage.cobertura.xml" -reporttypes:SonarQube -targetdir:"coveragereport" + - dotnet publish MySolution.sln -c Release --no-restore -o $CI_PROJECT_DIR/build/release + - dotnet sonarscanner end /d:sonar.login=$$$${PLUGIN_SONAR_TOKEN} + secrets: [ SECRET_SONAR_LOGIN ] + settings: + # accessible en ligne de commande par $${PLUGIN_SONAR_HOST} + sonar_host: https://codefirst.iut.uca.fr/sonar/ + # accessible en ligne de commande par $${PLUGIN_SONAR_TOKEN} + sonar_token: + from_secret: SECRET_SONAR_LOGIN + depends_on: [tests] + + - name: generate-and-deploy-docs + image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-docdeployer + failure: ignore + volumes: + - name: docs + path: /docs + commands: + - /entrypoint.sh + when: + branch: + - master + depends_on: [ build ] + + - name: docker-build + image: plugins/docker + settings: + dockerfile: Sources/Dockerfile + context: . + registry: hub.codefirst.iut.uca.fr + repo: hub.codefirst.iut.uca.fr/my-group/my-application-client + username: + from_secret: SECRET_REGISTRY_USERNAME + password: + from_secret: SECRET_REGISTRY_PASSWORD + when: + branch: + - master + +volumes: +- name: docs + temp: {} \ No newline at end of file diff --git a/BlazorApp1/BlazorApp1.csproj b/BlazorApp1/BlazorApp1.csproj index 9354de1..85b598a 100644 --- a/BlazorApp1/BlazorApp1.csproj +++ b/BlazorApp1/BlazorApp1.csproj @@ -4,6 +4,8 @@ net6.0 enable enable + 810f4876-066d-48da-a977-da816d3bafab + Windows @@ -13,6 +15,8 @@ + + diff --git a/BlazorApp1/Dockerfile b/BlazorApp1/Dockerfile new file mode 100644 index 0000000..6205ea6 --- /dev/null +++ b/BlazorApp1/Dockerfile @@ -0,0 +1,26 @@ +#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. + +#Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed. +#For more information, please see https://aka.ms/containercompat + +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build +WORKDIR /src +COPY ["nuget.config", "."] +COPY ["BlazorApp1/BlazorApp1.csproj", "BlazorApp1/"] +RUN dotnet restore "BlazorApp1/BlazorApp1.csproj" +COPY . . +WORKDIR "/src/BlazorApp1" +RUN dotnet build "BlazorApp1.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "BlazorApp1.csproj" -c Release -o /app/publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "BlazorApp1.dll"] \ No newline at end of file diff --git a/BlazorApp1/Pages/CreateLog.razor b/BlazorApp1/Pages/CreateLog.razor new file mode 100644 index 0000000..89c8922 --- /dev/null +++ b/BlazorApp1/Pages/CreateLog.razor @@ -0,0 +1,5 @@ +@page "/logs" + +

CreateLog

+ + \ No newline at end of file diff --git a/BlazorApp1/Pages/CreateLog.razor.cs b/BlazorApp1/Pages/CreateLog.razor.cs new file mode 100644 index 0000000..77efcb1 --- /dev/null +++ b/BlazorApp1/Pages/CreateLog.razor.cs @@ -0,0 +1,21 @@ +namespace BlazorApp1.Pages +{ + using Microsoft.AspNetCore.Components; + using Microsoft.Extensions.Logging; + + public partial class CreateLog + { + [Inject] + public ILogger Logger { get; set; } + + private void CreateLogs() + { + var logLevels = Enum.GetValues(typeof(LogLevel)).Cast(); + + foreach (var logLevel in logLevels.Where(l => l != LogLevel.None)) + { + Logger.Log(logLevel, $"Log message for the level: {logLevel}"); + } + } + } +} diff --git a/BlazorApp1/Program.cs b/BlazorApp1/Program.cs index d03f057..9230a5d 100644 --- a/BlazorApp1/Program.cs +++ b/BlazorApp1/Program.cs @@ -8,6 +8,7 @@ using Blazorise.Icons.FontAwesome; using Microsoft.AspNetCore.Localization; using Microsoft.Extensions.Options; using System.Globalization; +using Microsoft.Extensions.Logging; var builder = WebApplication.CreateBuilder(args); @@ -24,6 +25,7 @@ builder.Services.AddBlazoredLocalStorage(); builder.Services.AddScoped(); builder.Services.AddBlazoredModal(); builder.Services.AddScoped(); +builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging")); // Add the controller of the app builder.Services.AddControllers(); diff --git a/BlazorApp1/Properties/launchSettings.json b/BlazorApp1/Properties/launchSettings.json index b79f54e..ea03acc 100644 --- a/BlazorApp1/Properties/launchSettings.json +++ b/BlazorApp1/Properties/launchSettings.json @@ -10,12 +10,12 @@ "profiles": { "BlazorApp1": { "commandName": "Project", - "dotnetRunMessages": true, "launchBrowser": true, - "applicationUrl": "https://localhost:7228;http://localhost:5228", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" - } + }, + "applicationUrl": "https://localhost:7228;http://localhost:5228", + "dotnetRunMessages": true }, "IIS Express": { "commandName": "IISExpress", @@ -23,6 +23,13 @@ "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } + }, + "Docker": { + "commandName": "Docker", + "launchBrowser": true, + "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}", + "publishAllPorts": true, + "useSSL": true } } -} +} \ No newline at end of file diff --git a/BlazorApp1/Ressources/Pages.List.fr-FR.resx b/BlazorApp1/Resources/Pages.List.fr-FR.resx similarity index 100% rename from BlazorApp1/Ressources/Pages.List.fr-FR.resx rename to BlazorApp1/Resources/Pages.List.fr-FR.resx diff --git a/BlazorApp1/Ressources/Pages.List.resx b/BlazorApp1/Resources/Pages.List.resx similarity index 100% rename from BlazorApp1/Ressources/Pages.List.resx rename to BlazorApp1/Resources/Pages.List.resx diff --git a/BlazorApp1/appsettings.json b/BlazorApp1/appsettings.json index 10f68b8..ef6372d 100644 --- a/BlazorApp1/appsettings.json +++ b/BlazorApp1/appsettings.json @@ -1,9 +1,9 @@ { "Logging": { "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" + "Default": "Trace", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" } - }, - "AllowedHosts": "*" -} + } +} \ No newline at end of file diff --git a/Minecraft.Crafting.Api/Minecraft.Crafting.Api.csproj b/Minecraft.Crafting.Api/Minecraft.Crafting.Api.csproj index d90438b..e5e28b3 100644 --- a/Minecraft.Crafting.Api/Minecraft.Crafting.Api.csproj +++ b/Minecraft.Crafting.Api/Minecraft.Crafting.Api.csproj @@ -9,6 +9,7 @@ + diff --git a/Minecraft.Crafting.Api/Program.cs b/Minecraft.Crafting.Api/Program.cs index 48863a6..d887341 100644 --- a/Minecraft.Crafting.Api/Program.cs +++ b/Minecraft.Crafting.Api/Program.cs @@ -1,12 +1,14 @@ +using Microsoft.Extensions.Logging; var builder = WebApplication.CreateBuilder(args); + // Add services to the container. builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); - +builder.Logging.AddConfiguration(builder.Configuration.GetSection("Logging")); var app = builder.Build(); // Configure the HTTP request pipeline.