From 4a175b989be8fd1b39d3713a26aca49314832e85 Mon Sep 17 00:00:00 2001 From: Lilian BRETON Date: Fri, 25 Nov 2022 13:57:54 +0100 Subject: [PATCH] ADD : ci/cd --- myBlazorApp/.dockerignore | 25 ++++++ myBlazorApp/myBlazorApp/.drone.yml | 76 +++++++++++++++++++ myBlazorApp/myBlazorApp/Dockerfile | 26 +++++++ .../Properties/launchSettings.json | 59 +++++++------- myBlazorApp/myBlazorApp/myBlazorApp.csproj | 3 + 5 files changed, 163 insertions(+), 26 deletions(-) create mode 100644 myBlazorApp/.dockerignore create mode 100644 myBlazorApp/myBlazorApp/.drone.yml create mode 100644 myBlazorApp/myBlazorApp/Dockerfile diff --git a/myBlazorApp/.dockerignore b/myBlazorApp/.dockerignore new file mode 100644 index 0000000..bdca33b --- /dev/null +++ b/myBlazorApp/.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/myBlazorApp/myBlazorApp/.drone.yml b/myBlazorApp/myBlazorApp/.drone.yml new file mode 100644 index 0000000..2695a6a --- /dev/null +++ b/myBlazorApp/myBlazorApp/.drone.yml @@ -0,0 +1,76 @@ +kind: pipeline +type: docker + + +steps : + + - name: build + image: mcr.microsoft.com/dotnet/sdk:6.0 + commands: + - cd myBlazorApp/ + - dotnet restore myBlazorApp.sln + - dotnet build myBlazorApp.sln -c Release --no-restore + + + - name: tests + image: mcr.microsoft.com/dotnet/sdk:6.0 + commands: + - cd myBlazorApp/ + - dotnet restore myBlazorApp.sln + - dotnet test myBlazorApp.sln --no-restore + depends_on: [build] + + - name: code-analysis + image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dronesonarplugin-dotnet6 + commands: + - cd myBlazorApp/ + - dotnet restore myBlazorApp.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 myBlazorApp.sln -c Release --no-restore + - dotnet test myBlazorApp.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 myBlazorApp.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 ] + +## The volumes declaration appear at the end of the file, after all steps +#volumes: +#- name: docs +# temp: {} + + + - name: docker-build + image: plugins/docker + settings: + dockerfile: myBlazorApp/myBlazorApp/Dockerfile + context: . + registry: hub.codefirst.iut.uca.fr + repo: hub.codefirst.iut.uca.fr/lucie.bedouret/blazorCourse + username: + from_secret: SECRET_REGISTRY_USERNAME + password: + from_secret: SECRET_REGISTRY_PASSWORD + when: + branch: + - master \ No newline at end of file diff --git a/myBlazorApp/myBlazorApp/Dockerfile b/myBlazorApp/myBlazorApp/Dockerfile new file mode 100644 index 0000000..3e19f5e --- /dev/null +++ b/myBlazorApp/myBlazorApp/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 ["myBlazorApp/myBlazorApp.csproj", "myBlazorApp/"] +RUN dotnet restore "myBlazorApp/myBlazorApp.csproj" +COPY . . +WORKDIR "/src/myBlazorApp" +RUN dotnet build "myBlazorApp.csproj" -c Release -o /app/build + +FROM build AS publish +RUN dotnet publish "myBlazorApp.csproj" -c Release -o /app/publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "myBlazorApp.dll"] \ No newline at end of file diff --git a/myBlazorApp/myBlazorApp/Properties/launchSettings.json b/myBlazorApp/myBlazorApp/Properties/launchSettings.json index 9c92504..b5731f3 100644 --- a/myBlazorApp/myBlazorApp/Properties/launchSettings.json +++ b/myBlazorApp/myBlazorApp/Properties/launchSettings.json @@ -1,27 +1,34 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:54923", - "sslPort": 44337 - } - }, - "profiles": { - "myBlazorApp": { - "commandName": "Project", - "launchBrowser": true, - "applicationUrl": "https://localhost:7235;http://localhost:5065", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:54923", + "sslPort": 44337 + } + }, + "profiles": { + "myBlazorApp": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:7235;http://localhost:5065" + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "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/myBlazorApp/myBlazorApp/myBlazorApp.csproj b/myBlazorApp/myBlazorApp/myBlazorApp.csproj index 47ace7b..4bb3daa 100644 --- a/myBlazorApp/myBlazorApp/myBlazorApp.csproj +++ b/myBlazorApp/myBlazorApp/myBlazorApp.csproj @@ -4,6 +4,8 @@ net6.0 enable enable + 57709e34-c352-46a7-8d9f-219f603ebc3d + Windows @@ -39,6 +41,7 @@ +