From b336f2122eaa909f61aae9e7e772e5d6f8322d0b Mon Sep 17 00:00:00 2001 From: Alexandre Agostinho Date: Wed, 10 May 2023 22:07:22 +0200 Subject: [PATCH] :alembic: test new CI config --- .drone.yml | 61 +++--- MCTG/CI-CD.slnf | 10 + MCTG/SAE-2.01.sln | 8 - .../Evaluation 1er mai branche dev.md | 206 ------------------ 4 files changed, 43 insertions(+), 242 deletions(-) create mode 100644 MCTG/CI-CD.slnf delete mode 100644 MCTG/Évaluation blanche/Evaluation 1er mai branche dev.md diff --git a/.drone.yml b/.drone.yml index 4e68727..c85a699 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,12 +1,18 @@ kind: pipeline type: docker -name: default - +name: CI-pipeline + trigger: + branch: + - master + - dev* + - feature/* event: - push steps: + +# Build Check - name: build image: mcr.microsoft.com/dotnet/sdk:7.0 volumes: @@ -14,56 +20,55 @@ steps: path: /docs commands: - cd MCTG/ - - dotnet restore ./ConsoleApp/ConsoleApp.csproj - - dotnet restore ./Model/Model.csproj - - dotnet restore ./Tests/Model_UnitTests/Model_UnitTests.csproj - - dotnet build SAE-2.01.sln -c CI --no-restore - - dotnet publish SAE-2.01.sln -c CI --no-restore -o CI_PROJECT_DIR/build/release + - dotnet restore CI-CD.slnf + - dotnet build CI-CD.slnf -c Release --no-restore + - dotnet publish CI-CD.slnf -c Release --no-restore -o CI_PROJECT_DIR/build/release +# Unit Testing Check - name: tests image: mcr.microsoft.com/dotnet/sdk:7.0 commands: - cd MCTG/ - - dotnet restore ./ConsoleApp/ConsoleApp.csproj - - dotnet restore ./Model/Model.csproj - - dotnet restore ./Tests/Model_UnitTests/Model_UnitTests.csproj - - dotnet test SAE-2.01.sln -c CI --no-restore + - dotnet restore CI-CD.slnf + - dotnet test CI-CD.slnf --no-restore depends_on: [ build ] +# Code Inspection (Sonar) - name: code-analysis image: hub.codefirst.iut.uca.fr/marc.chevaldonne/codefirst-dronesonarplugin-dotnet7 - commands: - - cd MCTG/ - - dotnet restore ./ConsoleApp/ConsoleApp.csproj - - dotnet restore ./Model/Model.csproj - - dotnet restore ./Tests/Model_UnitTests/Model_UnitTests.csproj - - dotnet sonarscanner begin /k:SAE-2.01 /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 SAE-2.01.sln -c CI --no-restore - - dotnet test SAE-2.01.sln -c CI --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 SAE-2.01.sln -c CI --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} + environment: sonar_host: https://codefirst.iut.uca.fr/sonar/ - # accessible en ligne de commande par ${PLUGIN_SONAR_TOKEN} sonar_token: from_secret: SECRET_SONAR_LOGIN + project_key: "SAE-2.01 MCTG" + coverage_exclusions: "Tests/**" + commands: + - cd MCTG/ + - dotnet restore CI-CD.slnf + - dotnet sonarscanner begin /k:$${project_key} /d:sonar.host.url=$${sonar_host} /d:sonar.coverageReportPaths="coveragereport/SonarQube.xml" /d:sonar.coverage.exclusions=$${coverage_exclusions} /d:sonar.login=$${sonar_token} + - dotnet build CI-CD.slnf -c Release --no-restore + - dotnet test CI-CD.slnf --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 CI-CD.slnf -c Release --no-restore -o CI_PROJECT_DIR/build/release + - dotnet sonarscanner end /d:sonar.login=$${sonar_token} depends_on: [ tests ] +# Documentation generation - name: generate-and-deploy-docs - image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-docdeployer + image: hub.codefirst.iut.uca.fr/maxime.batista/codefirst-docdeployer failure: ignore volumes: - name: docs path: /docs commands: - - cd Doc/doxygen - - doxygen Doxyfile + - /entrypoint.sh -l ./Doc/Doxygen -t doxygen -d MCTG_documentation when: branch: - master + event: + - push + - pull_request depends_on: [ build ] volumes: diff --git a/MCTG/CI-CD.slnf b/MCTG/CI-CD.slnf new file mode 100644 index 0000000..5728156 --- /dev/null +++ b/MCTG/CI-CD.slnf @@ -0,0 +1,10 @@ +{ + "solution": { + "path": "SAE-2.01.sln", + "projects": [ + "ConsoleApp\\ConsoleApp.csproj", + "Model\\Model.csproj", + "Tests\\Model_UnitTests\\Model_UnitTests.csproj" + ] + } +} \ No newline at end of file diff --git a/MCTG/SAE-2.01.sln b/MCTG/SAE-2.01.sln index e4b81b6..10c3e93 100644 --- a/MCTG/SAE-2.01.sln +++ b/MCTG/SAE-2.01.sln @@ -15,32 +15,24 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{08B80CE8 EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - CI|Any CPU = CI|Any CPU Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {666C2211-8EBB-4FC8-9484-CB93BC854153}.CI|Any CPU.ActiveCfg = Release|Any CPU - {666C2211-8EBB-4FC8-9484-CB93BC854153}.CI|Any CPU.Build.0 = Release|Any CPU {666C2211-8EBB-4FC8-9484-CB93BC854153}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {666C2211-8EBB-4FC8-9484-CB93BC854153}.Debug|Any CPU.Build.0 = Debug|Any CPU {666C2211-8EBB-4FC8-9484-CB93BC854153}.Release|Any CPU.ActiveCfg = Release|Any CPU {666C2211-8EBB-4FC8-9484-CB93BC854153}.Release|Any CPU.Build.0 = Release|Any CPU - {42FF86BD-92F9-4A32-A938-68515905378F}.CI|Any CPU.ActiveCfg = Release|Any CPU - {42FF86BD-92F9-4A32-A938-68515905378F}.CI|Any CPU.Build.0 = Release|Any CPU {42FF86BD-92F9-4A32-A938-68515905378F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {42FF86BD-92F9-4A32-A938-68515905378F}.Debug|Any CPU.Build.0 = Debug|Any CPU {42FF86BD-92F9-4A32-A938-68515905378F}.Release|Any CPU.ActiveCfg = Release|Any CPU {42FF86BD-92F9-4A32-A938-68515905378F}.Release|Any CPU.Build.0 = Release|Any CPU - {508B5600-AFD0-4AE4-A3CF-5FA8BE3ECE75}.CI|Any CPU.ActiveCfg = CI|Any CPU {508B5600-AFD0-4AE4-A3CF-5FA8BE3ECE75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {508B5600-AFD0-4AE4-A3CF-5FA8BE3ECE75}.Debug|Any CPU.Build.0 = Debug|Any CPU {508B5600-AFD0-4AE4-A3CF-5FA8BE3ECE75}.Debug|Any CPU.Deploy.0 = Debug|Any CPU {508B5600-AFD0-4AE4-A3CF-5FA8BE3ECE75}.Release|Any CPU.ActiveCfg = Release|Any CPU {508B5600-AFD0-4AE4-A3CF-5FA8BE3ECE75}.Release|Any CPU.Build.0 = Release|Any CPU {508B5600-AFD0-4AE4-A3CF-5FA8BE3ECE75}.Release|Any CPU.Deploy.0 = Release|Any CPU - {45AB746A-194B-4E43-81EB-83B06F35AA33}.CI|Any CPU.ActiveCfg = Release|Any CPU - {45AB746A-194B-4E43-81EB-83B06F35AA33}.CI|Any CPU.Build.0 = Release|Any CPU {45AB746A-194B-4E43-81EB-83B06F35AA33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {45AB746A-194B-4E43-81EB-83B06F35AA33}.Debug|Any CPU.Build.0 = Debug|Any CPU {45AB746A-194B-4E43-81EB-83B06F35AA33}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/MCTG/Évaluation blanche/Evaluation 1er mai branche dev.md b/MCTG/Évaluation blanche/Evaluation 1er mai branche dev.md deleted file mode 100644 index 705dd3f..0000000 --- a/MCTG/Évaluation blanche/Evaluation 1er mai branche dev.md +++ /dev/null @@ -1,206 +0,0 @@ -*Rappel :* -* ne rendez que des documents pdf, contenant l’intégralité des schémas, diagrammes, descriptions aussi bien pour la SAÉ que pour les 2 ressources, -* ne rendez qu’une seule solution faites de plusieurs projets et ressources pour vos programmes -* une évaluation blanche n'est qu'indicative : elle ne comptera pas dans la moyenne. Le soin apporté aux corrections n'est pas le même que pour l'évaluation finale et les notes blanches ne sont qu'un aperçu de votre travail à un instant t. -* Critères d’évaluation pour chaque note : - -(Notes : le barème n’est pas définitif et très susceptible d’évoluer ; il n’est donné qu’à titre indicatif ; chaque diagramme doit être accompagné de notes et d’une description écrite) - ---- - -## SAÉ2.01 : Développement d'une application : *5,26666666666667/20* -*Le sujet est choisi par le binôme mais doit être validé par l'enseignant.* - -### Documents sur la préparation de l'application et l'IHM : *15,8/20* - -#### Documentation à rendre en semaine 13: -* description du contexte [3 sur 3 points] -*OK* - -* persona [1,8 sur 2 points] -*Normalement, on ne choisit pas un persona avec un nom qui pourrait évoquer quelqu'un d'existant.* - -* user stories [3 sur 3 points] -*OK* - -* sketchs [4 sur 4 points] -*OK* - -* storyboards [3 sur 3 points] -*OK* - -* diagramme de cas d’utilisation [1 sur 5 points] -*Un acteur est sensé être relié à un cas par un trait uniquement -Pas d'accueil n'est pas un UC -Les fautes ! -Certaines flèches sont à l'envers. -Il est à reprendre, sans oublier d'ajouter les description !!* - - -### Persistance et ajouts personnels à l'application : *0/40* - -#### Documentation à rendre à la fin de la semaine 23 : -* diagramme de paquetage mettant en avant la partie persistance [ sur 2 points] -** - -* diagramme de classes mettant en avant la partie persistance [ sur 4 points] -** - -* diagramme de classes sur votre (vos) partie(s) ajoutée(s) [ sur 4 points] -** - - -#### Programmation à rendre à la fin du projet : -* persistance (XML, JSON, BDD, WebService…) [ sur 3 points] -** - -* autre ajout personnel [ sur 3 points] -** - -**fonctionnement de l’application** -* compilation [ sur 3 points] -** - -* exécution [ sur 5 points] -** - -* déploiement [ sur 2 points] -** - -* aboutissement du projet [ sur 4 points] -** - - -#### Vidéo à rendre à la fin du projet : -* vidéo de 1 à 3 minute(s) du projet [ sur 10 points] -** - - -## R2.02 : Développement d'applications avec IHM: *1,33333333333333/20* - -### Documents : *4/20* -#### Documentation à rendre en semaine 23: -* diagramme de paquetage [ sur 2 points] -** - -* diagramme de classes [4 sur 8 points] -*Quelle drôle de tête !! -Les filles de Sauveur et Loader ne sont dépendantes de personne. Ce n'est pas du tout logique. -L'interface Idisplyable est très bizarre. Je ne comprend pas ce qu'elle fait là. -Cette BaseItem me perturbe beaucoup. Quelle est son intention ? -Allez, ce n'est pas si mal !* - -* diagramme de séquence (sur quelques cas particuliers) [ sur 2 points] -** - -* description écrite de l’architecture (dont patrons de conception, dépendances…) [ sur 8 points] -** - -### Programmation : *0/40* - -#### XAML [0 sur 7 points] : -* répartition dans l’espace (layout des vues et usercontrols) [ sur 2 points] -** - -* utilisation des controls (vues et usercontrols) [ sur 1 point] -** - -* ressources, styles [ sur 2 points] -** - -* DataTemplate (locaux et globaux) [ sur 2 points] -** - - -#### C# [ sur 20 points] : -* bases (classes, structures, instances, …) [ sur 3 points] -*Pour l'instant, je n'ai qu'une classe. J'imagine que je ne suis pas sur la bonne branche. Redemandez une éval blanche pour la partie code.* - -* abstraction (héritage, interfaces, polymorphisme) [ sur 4 points] -** - -* collections simples (tableaux, listes…) [ sur 3 points] -** - -* collections avancées (dictionnaires, sets) [ sur 3 points] -** - -* encapsulation [ sur 5 points] -** - -* LINQ [ sur 1 point] -** - -* évènements (cf. module IHM) [ sur 1 point] -** - - -#### boucle Model <-> View (dont Binding) [0 sur 13 points] : -* gestion d’évènements sur la vue [ sur 2 points] -** - -* gestion d’évènements depuis le métier (notifications) [ sur 2 points] -** - -* DataBinding (sur le Master) [ sur 2 points] -** - -* DataBinding (sur le Detail) [ sur 2 points] -** - -* DataBinding sur les UserControl + Dependency Property [ sur 2 points] -** - -* gestion du Master-Detail** [ sur 3 points] -** - - -## R2.03 : Qualité de développement : *0/20* - -#### Tests [0 sur 10 points] : -* tests fonctionnels [ sur 5 points] -** - -* tests unitaires [ sur 5 points] -** - -* gestion automatique des tests (cf. plus bas) -** - -* bonus : tests unitaires d'interfaces -** - - -#### Documentation [0 sur 0 points] : -* qualité de la documentation du code [ sur 2 points] -** - -* génération de la documentation doxygen [ sur 2 points] -** - -* génération automatique de la documentation (cf. plus bas) -** - - -#### Gestion de projet [0 sur 10 points] : -* utilisation simple de git (git clone, commit, add, push, pull) [ sur 3 points] -** - -* utilisation avancée (git merge, branch, conflits) sur 2 points] -** - - -* utilisation de tickets et Merge Requests à travers la plateforme git (gitlab ou Code#0) [ sur 3 points] -** - -* mise en place de l'intégration continue (CI) pour la gestion automatique des tests et la génération de la documentation [ sur 2 points] -** - - ---- - -## Note finale R2.02 : *1,33333333333333/20* - -## Note finale R2.03 : *0/20* - -## Note finale S2.01 : *5,26666666666667/20* \ No newline at end of file