|
1 | 1 | # Documentation développeur |
2 | 2 |
|
| 3 | +## Architecture |
| 4 | + |
| 5 | + |
| 6 | + |
3 | 7 | ## Liens utiles |
4 | 8 |
|
5 | 9 | * Dépôt GitHub : [https://github.com/IGNF/validator-api](https://github.com/IGNF/validator-api) |
6 | 10 | * Intégration continue avec [GitHub actions](https://github.com/IGNF/validator-api/actions) configurée via le dossier [.github/workflows](https://github.com/IGNF/validator-api/tree/master/.github/workflows) |
7 | 11 |
|
8 | | -### Prérequis |
9 | | - |
10 | | -- Une distribution Linux (de préférence basée sur Debian) pour la machine hôte |
11 | | -- Git |
12 | | -- PHP 7.4 ou 8.1 avec l'extension pgsql |
13 | | -- Yarn |
14 | | -- Serveur web |
15 | | -- Zip/unzip |
16 | | -- Curl |
17 | | -- Java SE >= 11 |
18 | | -- ogr2ogr >= 2.3.0 |
19 | | - |
20 | | -### Installation classique en local |
21 | | - |
22 | | -Cloner le dépôt et installez les dépendances PHP : |
23 | | - |
24 | | -```bash |
25 | | -git clone https://github.com/IGNF/validator-api.git |
26 | | -cd validator-api |
27 | | -composer install |
28 | | -``` |
29 | | - |
30 | | -Dupliquez le fichier `.env` sous le nom `.env.local`. |
31 | | -Utilisez les commentaires de `.env.local` pour compléter les paramètres de votre application locale. |
32 | | - |
33 | | -Créez la base de données et initialisez sa structure : |
34 | | - |
35 | | -```bash |
36 | | -php bin/console doctrine:database:create |
37 | | -php bin/console doctrine:schema:update --force |
38 | | -``` |
39 | | - |
40 | | -Téléchargez le fichier `bin/validator-cli.jar` : |
41 | | - |
42 | | -```bash |
43 | | -# bash download-validator.sh [<MAJOR>.<MINOR>.<PATCH>] |
44 | | -bash download-validator.sh |
45 | | -``` |
46 | | - |
47 | | -Lancez l'application : |
48 | | - |
49 | | -```bash |
50 | | -symfony server:start |
51 | | -``` |
52 | | - |
53 | | -L'application est consultable à l'adresse http://localhost:8000 |
54 | | - |
55 | | - |
56 | | -En cas de modification des dépendances JS (package.json): |
57 | | - |
58 | | -```bash |
59 | | -# installer les dépendances de dev |
60 | | -yarn install |
61 | | -# construire le front à l'aide de webpack |
62 | | -yarn run build |
63 | | -# commiter les modifications |
64 | | -``` |
65 | | - |
66 | | -### Installation avec docker |
67 | | - |
68 | | -```bash |
69 | | -git clone https://github.com/IGNF/validator-api.git |
70 | | -cd validator-api |
71 | | -# démarrage de la stack de développement |
72 | | -docker-compose up -d |
73 | | -# ouvrir http://localhost:8000 avec un navigateur |
74 | | -``` |
75 | | - |
76 | | -### Architecture |
77 | | - |
78 | | - |
79 | | - |
80 | | - |
81 | | -## Tests |
82 | | - |
83 | | -### Données de tests |
| 12 | +## Données des tests |
84 | 13 |
|
85 | 14 | * Les jeux tests sont dans le dossier `${projectDir}/tests/data` |
86 | 15 | * Les modèles de données tests utilisés sont des modèles externes (ex : https://www.geoportail-urbanisme.gouv.fr/standard/cnig_SUP_PM3_2016.json) |
87 | 16 |
|
88 | | -### Exécution des tests en local |
89 | | - |
90 | | -* 1) Installez les dépendances PHP |
91 | | - |
92 | | -```bash |
93 | | -composer install |
94 | | -``` |
95 | | - |
96 | | -* 2) Configurez la base de données de test |
97 | | - |
98 | | -Dans `.env.test`, ajoutez la ligne suivante : |
99 | | - |
100 | | -``` |
101 | | -DATABASE_URL=postgresql://${PGUSER}:${PGPASSWORD}@localhost:5432/validator_api_test?serverVersion=13&charset=utf8 |
102 | | -``` |
103 | | - |
104 | | -> [Comment configurer la variable DATABASE_URL (documentation Symfony)](https://symfony.com/doc/4.4/doctrine.html#configuring-the-database) |
105 | | -
|
106 | | -Puis : |
107 | | - |
108 | | -```bash |
109 | | -# Créer la base de données |
110 | | -php bin/console --env=test doctrine:database:create --if-not-exists |
111 | | -# Mettre à jour le schéma de la base de donnnées |
112 | | -php bin/console --env=test doctrine:schema:update --force |
113 | | -``` |
114 | | - |
115 | | -* 3) Téléchargez l'exécutable java validator-cli.jar |
116 | | - |
117 | | -Si `validator-cli.jar` est déjà installé, vous pouvez configurer son emplacement à l'aide de la ligne suivante dans `.env.test` : |
118 | | - |
119 | | -``` |
120 | | -VALIDATOR_PATH=/opt/ign-validation/validator-cli.jar |
121 | | -``` |
122 | | - |
123 | | -Sinon, vous pouvez lancer `bash download-validator.sh <VALIDATOR_VERSION>` pour le télécharger dans `${projectDir}/bin/validator-cli.jar` (chemin par défaut) |
124 | | - |
125 | | -* 4) Exécutez les tests |
126 | | - |
127 | | -```bash |
128 | | -XDEBUG_MODE=coverage APP_ENV=test php vendor/bin/simple-phpunit |
129 | | -``` |
130 | | - |
131 | | -* 5) Consulter les rapports |
132 | | - |
133 | | -Voir `${projectDir}/var/data/output` pour les résultats des tests. |
134 | | - |
135 | | - |
136 | | -### Analyse de code avec Sonarqube |
137 | | - |
138 | | -* Installer [sonar-scanner](https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/) |
139 | | -* Configurer les variables d'environnement `SONAR_HOST_URL` et `SONAR_TOKEN` |
140 | | -* Exécuter `sonar-scanner` : |
| 17 | +## Procédure d'installation |
141 | 18 |
|
142 | | -```bash |
143 | | -cd validator-api |
144 | | -# lancer l'analyse de code |
145 | | -sonar-scanner |
146 | | -``` |
| 19 | +* [Documentation développeur pour développement PHP classique](developer-guide/php-classic.md) |
| 20 | +* [Documentation développeur pour développement avec docker](developer-guide/docker.md) |
| 21 | +* [Documentation développeur pour le développement du front (JavaScript)](developer-guide/front.md) |
147 | 22 |
|
148 | | -Remarque : Le fichier de configuration du projet Sonarqube est à la racine : [sonar-project.properties](../sonar-project.properties) |
0 commit comments