Les problèmes et les demandes de tirage sont les bienvenus. Veuillez d'abord vérifier CONTRIBUTING.md !
Ce référentiel est un dépôt mono pour
Les dépôts proviennent du générateur de formulaires numériques de DEFRA.
Il s'agit d'un référentiel d'espaces de travail Yarn 2 sans installation (qui se rapproche de celui-ci). .yarnrc.yml nous permet d'aligner nos environnements de fil. Veuillez valider tous les plugins dans .yarn, mais ne validez pas votre .yarn/cache. CI sauvegardera et restaurera les caches.
Les espaces de travail s'occuperont de la liaison symbolique des packages, nous n'avons donc pas besoin d'exécuter manuellement yarn link
. Il s'occupera également du levage des node_modules pour tous les packages partagés entre les dépôts, réduisant ainsi les temps d'installation. J'espère que tout fonctionnera™️.
Consultez également les fichiers README du dépôt individuel pour plus d'informations :
Exécutez toujours les scripts à partir du répertoire racine.
node --version
.NODE_ENV=development
(voir runner/config/development.json) pour permettre la publication et la prévisualisation des formulaires pendant la conception.$ yarn
pour installer toutes les dépendances dans tous les espaces de travail.$ yarn build
pour créer tous les espaces de travail (cela est nécessaire car les dépendances peuvent dépendre les unes des autres).Comme déjà mentionné, exécutez toujours les scripts à partir du répertoire racine. car les espaces de travail n'ont pas de scripts ou de packages que vous devez exécuter à partir de leurs dossiers et en s'exécutant dans le répertoire racine, Yarn 2 peut résoudre correctement les scripts/packages.
Pour en savoir plus sur les espaces de travail, consultez ces liens :
$ yarn [runner|designer|model] name-of-script
par exemple : yarn designer start
ou yarn runner add babel-core --dev
$ yarn workspaces foreach run name-of-script
Je ne le recommanderais pas à moins d'avoir un processeur costaud.
$ yarn watch
$ yarn add packagename
$ mkdir myNewLib
$ cd myNewlib
$ yarn init
package.json
racine.jsonmyNewLib
à l'objet workspaces
. Si vous rencontrez des problèmes, soumettez un problème ou envoyez un message via gitter.
/vendor
n'est pas présent car il n'a pas été construit ou reconstruit. Vous pouvez également rencontrer ce problème avec core-js
, fsevents
, nodemailer
etc. $ yarn rebuild
pour reconstruire tous les packages $ yarn rebuild only node-sass
pour reconstruire uniquement node-sass
Nous utilisons les actions GitHub pour exécuter notre processus CI. Consultez une visualisation du flux de travail ici.
Les numéros de version s'incrémenteront automatiquement en fonction des messages de validation et de SemVer (Major.Minor.Patch). Lors de la fusion, ajoutez à votre commit de fusion ce qui suit :
major:
ou breaking:
- par exemple, breaking: removing feature X
. Cela incrémentera la version MAJEURE - par exemple : 1.1.0 à 2.0.0minor:
ou feature:
- par exemple, feature: new component
. Cela incrémentera la version MINEURE - par exemple : 1.1.0 à 1.2.0patch:
ou fix:
- par exemple, fix: url bug
- cela incrémentera la version du PATCH - par exemple : 1.0.0 à 1.0.1 (cela se produira également par défaut) Le workflow de développement est déclenché chaque fois qu'un PR est fusionné avec le principal, et vous pouvez le surveiller dans l'onglet d'action du référentiel.
Le flux de travail contient deux tâches distinctes qui s'exécutent en parallèle, une pour l'application Runner et une autre pour l'application Designer.
Les deux emplois fonctionnent comme suit :
Les dernières versions seront exécutées ici : Runner / Designer.
Une série de tests de fumée est effectuée sur tous les PR. Il existe une tâche Cron qui exécute des tests de fumée sur les déploiements Heroku et est programmée pour s'exécuter chaque jour à minuit.
Une suite héritée de tests de fumée peut être trouvée dans ce référentiel. Ils ont été supprimés afin que le projet puisse s'exécuter sur le nœud 18.
Les tests de fumée seront migrés pour utiliser cypress.io dans les mois à venir.