- 📦 Prérequis
- 🚀 Installation
- 🛠️ Utilisation
- 🤝 Contribution
- 🏗️ Construit avec
- Git : Système de contrôle de versions distribué d'un ensemble de fichiers
- Node : Environnement d'exécution pour Javascript
- Yarn : Gestionnaire de paquets pour les produits développés dans des environnements Node
Node et Yarn peuvent être installés via nvm qui permet d'obtenir et d'utiliser rapidement différentes versions de Node via la ligne de commande.
Cloner le dépôt en local
git clone git@github.com:anct-cartographie-nationale/lieux-de-mediation-numerique.gitAller dans le dossier du projet pour installer les dépendances
cd lieux-de-mediation-numerique
yarnHusky est un outil de gestion des hooks git pour effectuer des tâches automatiques
yarn husky installRendre exécutable les fichiers qui contiennent les hooks :
chmod a+x .husky/commit-msg
chmod a+x .husky/pre-commitCes commandes servent dans un contexte de développement de l'application.
Exécuter yarn build, le résultat esy disponible dans le dossier lib/.
Exécuter yarn test pour tester le projet.
Exécuter yarn lint.es pour une analyse statique des fichiers .ts du projet.
Exécuter yarn lint.commit pour valider la syntaxe de l'ensemble des commits réalisés depuis la dernière version commune avec la branche main.
Exécuter yarn prettier pour mettre à niveau la syntaxe de l'ensemble des fichiers du projet.
- Avant de créer une nouvelle branche de travail, récupérer les dernières modifications disponibles sur la branche
main - La nouvelle branche de travail doit ête préfixée par
build/,chore/,ci/,docs/,feat/,fix/,perf/,refactor/,revert/,style/outest/en fonction du type de modification prévu, pour plus de détails à ce sujet, consulter Conventional Commits cheat sheet
Les commits de ce repository doivent respecter la syntaxe décrite par la spécification des Commits Conventionnels
La branche main, ainsi que l'ensemble des branches de travail avec un préfixe valide requièrent que les commits soient signés :
- La documentation de GitHub indique comment configurer la signature des commits
- Les utilisateurs de keybase peuvent signer leurs commits avec leur clé GPG sur Keybase
- La branche principale est
main, il n'est pas possible de publier en faisant unpushdepuis un dépôt local - Il faut forcément créer une nouvelle branche de travail avec l'un préfixe autorisé
- À chaque publication sur une branche de travail, le workflow
validatesur github actions vérifie- Qu'il est possible de créer un build sans erreur
- Que la syntaxe correspond bien à ce qui est défini par Prettier
- Que le code écrit en TypeScript respecte les conventions décrites par les règles ESLint
- Que les messages des commits suivent le standard établi par Conventional Commits
- Une fois les développements terminés, il faut créer une pull request avec la banche de travail comme origin et la branche
maincomme destination. - La pull request ne peut être fusionné que si :
- Les étapes du workflow
validatesont valides - Les fichiers modifiés ont été revus par au moins une personne
- Les commits ajoutés sont signés
- Les étapes du workflow
- La branche de travail est supprimée automatiquement une fois qu'elle a été fusionnée
La fusion sur la branche principale entraîne automatiquement la publication d'une nouvelle version du paquet sur le registre NPM.
- TypeScript est un langage open source construit à partir de JavaScript
- Vitest est une boîte à outils pour écrire des tests automatisés en JavaScript
- Eslint est un analyseur statique de JavaScript
- Prettier est un magnificateur de code source en JavaScript
- Husky est un outil qui permet d'effectuer des vérifications automatiques avant de publier des contributions.
- Commitlint est un outil de vérification des commits suivant le format des Commits Conventionnels.
- Lint-staged est un outil qui permet d'effectuer un ensemble de vérifications à l'aide d'autres outils sur un ensemble de fichiers qui viennent d'être modifiés.
- Github Actions est l'outil d'intégration et de déploiement continu intégré à GitHub
- L'historique des déploiements est disponible sous l'onglet Actions
- Secrets du dépôt :
NODE_AUTH_TOKEN: Clé d'accès NPM pour publier sur l'organisation @gouvfr-anct
- npm est le registre de référence pour les paquets Node.
- Organisation : @gouvfr-anct
- Paquet : @gouvfr-anct/mediation-numerique