Merge pull request 'Amélioration de la CI/CD' (#37) from gestion/13-review-CI-CD into dev
continuous-integration/drone/push Build is passing Details

Reviewed-on: #37
pull/39/head
Alexandre AGOSTINHO 2 years ago
commit bc732d0b3b

@ -1,12 +1,19 @@
kind: pipeline
type: docker
name: default
name: CI-pipeline
trigger:
branch:
- master
- dev*
- feature/*
- gestion/*
event:
- push
steps:
# Build Check
- name: build
image: mcr.microsoft.com/dotnet/sdk:7.0
volumes:
@ -14,44 +21,41 @@ 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
failure: ignore
@ -59,13 +63,55 @@ steps:
- name: docs
path: /docs
commands:
- cd Doc/doxygen
- doxygen Doxyfile
- /entrypoint.sh
when:
branch:
- master
- gestion/*
event:
- push
- pull_request
depends_on: [ build ]
volumes:
- name: docs
temp: {}
---
kind: pipeline
type: docker
name: CD-pipeline
trigger:
branch:
- master
- dev
# - gestion/*
event:
- push
steps:
# Docker image build and push
- name: docker-build-and-push
image: plugins/docker
settings:
dockerfile: MCTG/Dockerfile
context: MCTG/
registry: hub.codefirst.iut.uca.fr
repo: hub.codefirst.iut.uca.fr/alexandre.agostinho/cli-mctg
username:
from_secret: SECRET_REGISTRY_USERNAME
password:
from_secret: SECRET_REGISTRY_PASSWORD
# Docker container deployement
# - name: deploy-container
# image: hub.codefirst.iut.uca.fr/thomas.bellembois/codefirst-dockerproxy-clientdrone:latest
# environment:
# IMAGENAME: hub.codefirst.iut.uca.fr/alexandre.agostinho/sae-2.01:latest
# CONTAINERNAME: cli-mctg
# COMMAND: create
# OVERWRITE: true
# depends_on: [ docker-build-and-push ]

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 76 KiB

@ -0,0 +1,429 @@
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "SAE 2.01 - MCTG"
PROJECT_NUMBER = 1.0.0
PROJECT_BRIEF = "Ma Cuisine Trop Géniale - Application MAUI"
PROJECT_LOGO = images/CodeFirst.png
OUTPUT_DIRECTORY = /docs/doxygen
CREATE_SUBDIRS = NO
ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
JAVADOC_BANNER = NO
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
PYTHON_DOCSTRING = YES
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 4
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
# Well... the one for Java looks so similar to the one for C#...
OPTIMIZE_OUTPUT_JAVA = YES
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
OPTIMIZE_OUTPUT_SLICE = NO
EXTENSION_MAPPING =
MARKDOWN_SUPPORT = YES
TOC_INCLUDE_HEADINGS = 5
AUTOLINK_SUPPORT = YES
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
GROUP_NESTED_COMPOUNDS = NO
SUBGROUPING = YES
INLINE_GROUPED_CLASSES = NO
INLINE_SIMPLE_STRUCTS = NO
TYPEDEF_HIDES_STRUCT = NO
LOOKUP_CACHE_SIZE = 0
NUM_PROC_THREADS = 1
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
# I do not like other members to see my private members... but you can set it to YES if you prefer.
EXTRACT_PRIVATE = NO
EXTRACT_PRIV_VIRTUAL = NO
EXTRACT_PACKAGE = NO
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
RESOLVE_UNNAMED_PARAMS = YES
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = NO
HIDE_SCOPE_NAMES = NO
HIDE_COMPOUND_REFERENCE= NO
SHOW_HEADERFILE = YES
SHOW_INCLUDE_FILES = YES
SHOW_GROUPED_MEMB_INC = NO
FORCE_LOCAL_INCLUDES = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = NO
SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = NO
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
STRICT_PROTO_MATCHING = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_FILES = YES
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
LAYOUT_FILE =
CITE_BIB_FILES =
#---------------------------------------------------------------------------
# Configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_IF_INCOMPLETE_DOC = YES
WARN_NO_PARAMDOC = NO
WARN_AS_ERROR = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# Configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = ../../MCTG/
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.java \
*.ii \
*.ixx \
*.ipp \
*.i++ \
*.inl \
*.idl \
*.ddl \
*.odl \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.l \
*.cs \
*.d \
*.php \
*.php4 \
*.php5 \
*.phtml \
*.inc \
*.m \
*.markdown \
*.md \
*.mm \
*.dox \
*.py \
*.pyw \
*.f90 \
*.f95 \
*.f03 \
*.f08 \
*.f18 \
*.f \
*.for \
*.vhd \
*.vhdl \
*.ucf \
*.qsf \
*.ice
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */Tests/*
EXCLUDE_PATTERNS += */bin/*
EXCLUDE_PATTERNS += */obj/*
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
FILTER_SOURCE_PATTERNS =
USE_MDFILE_AS_MAINPAGE =
#---------------------------------------------------------------------------
# Configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
REFERENCES_LINK_SOURCE = YES
SOURCE_TOOLTIPS = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
CLANG_ASSISTED_PARSING = NO
CLANG_ADD_INC_PATHS = YES
CLANG_OPTIONS =
CLANG_DATABASE_PATH =
#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = YES
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER = footer.html
HTML_STYLESHEET =
HTML_EXTRA_STYLESHEET =
HTML_EXTRA_FILES = images/CodeFirst.png images/clubinfo.png
HTML_COLORSTYLE_HUE = 215
HTML_COLORSTYLE_SAT = 45
HTML_COLORSTYLE_GAMMA = 240
HTML_TIMESTAMP = NO
HTML_DYNAMIC_MENUS = YES
HTML_DYNAMIC_SECTIONS = NO
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_FEEDURL =
DOCSET_BUNDLE_ID = org.doxygen.Project
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
DOCSET_PUBLISHER_NAME = Publisher
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
CHM_INDEX_ENCODING =
BINARY_TOC = NO
TOC_EXPAND = NO
GENERATE_QHP = NO
QCH_FILE =
QHP_NAMESPACE = org.doxygen.Project
QHP_VIRTUAL_FOLDER = doc
QHP_CUST_FILTER_NAME =
QHP_CUST_FILTER_ATTRS =
QHP_SECT_FILTER_ATTRS =
QHG_LOCATION =
GENERATE_ECLIPSEHELP = NO
ECLIPSE_DOC_ID = org.doxygen.Project
DISABLE_INDEX = NO
GENERATE_TREEVIEW = NO
FULL_SIDEBAR = NO
ENUM_VALUES_PER_LINE = 4
TREEVIEW_WIDTH = 250
EXT_LINKS_IN_WINDOW = NO
OBFUSCATE_EMAILS = YES
HTML_FORMULA_FORMAT = png
FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
FORMULA_MACROFILE =
USE_MATHJAX = NO
MATHJAX_VERSION = MathJax_2
MATHJAX_FORMAT = HTML-CSS
MATHJAX_RELPATH =
MATHJAX_EXTENSIONS =
MATHJAX_CODEFILE =
SEARCHENGINE = YES
SERVER_BASED_SEARCH = NO
EXTERNAL_SEARCH = NO
SEARCHENGINE_URL =
SEARCHDATA_FILE = searchdata.xml
EXTERNAL_SEARCH_ID =
EXTRA_SEARCH_MAPPINGS =
#---------------------------------------------------------------------------
# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME =
MAKEINDEX_CMD_NAME = makeindex
LATEX_MAKEINDEX_CMD = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4
EXTRA_PACKAGES =
LATEX_HEADER =
LATEX_FOOTER =
LATEX_EXTRA_STYLESHEET =
LATEX_EXTRA_FILES =
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
LATEX_BIB_STYLE = plain
LATEX_TIMESTAMP = NO
LATEX_EMOJI_DIRECTORY =
#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# Configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_SUBDIR =
MAN_LINKS = NO
#---------------------------------------------------------------------------
# Configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_PROGRAMLISTING = YES
XML_NS_MEMB_FILE_SCOPE = NO
#---------------------------------------------------------------------------
# Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
GENERATE_DOCBOOK = NO
DOCBOOK_OUTPUT = docbook
#---------------------------------------------------------------------------
# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# Configuration options related to Sqlite3 output
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
# Configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration options related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
DIA_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO
DOT_NUM_THREADS = 0
DOT_FONTNAME = Helvetica
DOT_FONTSIZE = 10
DOT_FONTPATH =
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
UML_LIMIT_NUM_FIELDS = 10
DOT_UML_DETAILS = NO
DOT_WRAP_THRESHOLD = 17
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DIR_GRAPH_MAX_DEPTH = 1
DOT_IMAGE_FORMAT = png
INTERACTIVE_SVG = NO
DOT_PATH =
DOTFILE_DIRS =
MSCFILE_DIRS =
DIAFILE_DIRS =
PLANTUML_JAR_PATH =
PLANTUML_CFG_FILE =
PLANTUML_INCLUDE_PATH =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

@ -0,0 +1,10 @@
{
"solution": {
"path": "SAE-2.01.sln",
"projects": [
"ConsoleApp\\ConsoleApp.csproj",
"Model\\Model.csproj",
"Tests\\Model_UnitTests\\Model_UnitTests.csproj"
]
}
}

@ -0,0 +1,16 @@
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build-env
WORKDIR /MCTG
ENV DOTNET_EnableDiagnostics=0
COPY . ./
RUN dotnet restore CI-CD.slnf
RUN dotnet publish CI-CD.slnf -c Release -o out --no-restore
# Build runtime image
FROM mcr.microsoft.com/dotnet/runtime:7.0
WORKDIR /MCTG
COPY --from=build-env /MCTG/out .
ENTRYPOINT ["dotnet", "ConsoleApp.dll"]

@ -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

@ -22,5 +22,7 @@ namespace Model_UnitTests
Assert.Equal(expectedId, r.Id);
Assert.Equal(expectedTitle, r.Title);
}
}
}

@ -1,206 +0,0 @@
*Rappel :*
* ne rendez que des documents pdf, contenant lintégralité des schémas, diagrammes, descriptions aussi bien pour la SAÉ que pour les 2 ressources,
* ne rendez quune 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 nest pas définitif et très susceptible dévoluer ; il nest donné quà titre indicatif ; chaque diagramme doit être accompagné de notes et dune 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 dutilisation [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 lapplication**
* 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 larchitecture (dont patrons de conception, dépendances…) [ sur 8 points]
**
### Programmation : *0/40*
#### XAML [0 sur 7 points] :
* répartition dans lespace (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*

@ -1,11 +1,12 @@
[![Build Status](https://codefirst.iut.uca.fr/api/badges/alexandre.agostinho/SAE-2.01/status.svg)](https://codefirst.iut.uca.fr/alexandre.agostinho/SAE-2.01)
[![Quality Gate Status](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=SAE-2.01&metric=alert_status&token=6fe832930cdc587b56754b15a8c44c85c2d44401)](https://codefirst.iut.uca.fr/sonar/dashboard?id=SAE-2.01)
[![Code Smells](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=SAE-2.01&metric=code_smells&token=6fe832930cdc587b56754b15a8c44c85c2d44401)](https://codefirst.iut.uca.fr/sonar/dashboard?id=SAE-2.01)
[![Coverage](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=SAE-2.01&metric=coverage&token=6fe832930cdc587b56754b15a8c44c85c2d44401)](https://codefirst.iut.uca.fr/sonar/dashboard?id=SAE-2.01)
[![Maintainability Rating](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=SAE-2.01&metric=sqale_rating&token=6fe832930cdc587b56754b15a8c44c85c2d44401)](https://codefirst.iut.uca.fr/sonar/dashboard?id=SAE-2.01)
[![Reliability Rating](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=SAE-2.01&metric=reliability_rating&token=6fe832930cdc587b56754b15a8c44c85c2d44401)](https://codefirst.iut.uca.fr/sonar/dashboard?id=SAE-2.01)
[![Vulnerabilities](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=SAE-2.01&metric=vulnerabilities&token=6fe832930cdc587b56754b15a8c44c85c2d44401)](https://codefirst.iut.uca.fr/sonar/dashboard?id=SAE-2.01)
[![Quality Gate Status](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=SAE-2.01_MCTG&metric=alert_status&token=55fb224b37553f8855c56cd9134e26bcab025bb4)](https://codefirst.iut.uca.fr/sonar/dashboard?id=SAE-2.01_MCTG)
[![Code Smells](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=SAE-2.01_MCTG&metric=code_smells&token=55fb224b37553f8855c56cd9134e26bcab025bb4)](https://codefirst.iut.uca.fr/sonar/dashboard?id=SAE-2.01_MCTG)
[![Coverage](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=SAE-2.01_MCTG&metric=coverage&token=55fb224b37553f8855c56cd9134e26bcab025bb4)](https://codefirst.iut.uca.fr/sonar/dashboard?id=SAE-2.01_MCTG)
[![Maintainability Rating](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=SAE-2.01_MCTG&metric=sqale_rating&token=55fb224b37553f8855c56cd9134e26bcab025bb4)](https://codefirst.iut.uca.fr/sonar/dashboard?id=SAE-2.01_MCTG)
[![Reliability Rating](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=SAE-2.01_MCTG&metric=reliability_rating&token=55fb224b37553f8855c56cd9134e26bcab025bb4)](https://codefirst.iut.uca.fr/sonar/dashboard?id=SAE-2.01_MCTG)
[![Vulnerabilities](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=SAE-2.01_MCTG&metric=vulnerabilities&token=55fb224b37553f8855c56cd9134e26bcab025bb4)](https://codefirst.iut.uca.fr/sonar/dashboard?id=SAE-2.01_MCTG)
# SAE 2.01 - Développement d'une application
## Ma Cuisine Trop Géniale ! - Application MAUI

Loading…
Cancel
Save