Issues und Pull Requests sind willkommen. Bitte überprüfen Sie zuerst CONTRIBUTING.md!
Dieses Repository ist ein Mono-Repo für
Die Repos stammen aus DEFRAs Digital Form Builder.
Dies ist ein Garn-2-Arbeitsbereichs-Repository (nahezu) ohne Installation. .yarnrc.yml ermöglicht es uns, unsere Garnumgebungen auszurichten. Bitte übertragen Sie alle Plugins in .yarn, aber übertragen Sie nicht Ihr .yarn/Cache. CI speichert und stellt die Caches wieder her.
Arbeitsbereiche kümmern sich um die Sym-Verknüpfung der Pakete, sodass wir yarn link
nicht manuell ausführen müssen. Es kümmert sich auch um das Hochladen der node_modules für alle Pakete, die von den Repos gemeinsam genutzt werden, wodurch die Installationszeiten verkürzt werden. Hoffentlich funktioniert alles™️.
Weitere Informationen finden Sie auch in den einzelnen README-Dateien des Repos:
Führen Sie Skripte immer aus dem Stammverzeichnis aus.
node --version
verwenden.NODE_ENV=development
ausgeführt wird (siehe runner/config/development.json), um das Posten und die Vorschau von Formularen während des Entwurfs zu ermöglichen.$ yarn
aus, um alle Abhängigkeiten in allen Arbeitsbereichen zu installieren.$ yarn build
aus, um alle Arbeitsbereiche zu erstellen (dies ist erforderlich, da Abhängigkeiten voneinander abhängen können).Wie bereits erwähnt, führen Sie Skripte immer aus dem Stammverzeichnis aus. Da Arbeitsbereiche keine Skripte oder Pakete haben, müssen Sie diese aus ihren Ordnern ausführen. Durch die Ausführung im Stammverzeichnis kann Yarn 2 die Skripte/Pakete ordnungsgemäß auflösen.
Weitere Informationen zu Arbeitsbereichen finden Sie unter den folgenden Links:
$ yarn [runner|designer|model] name-of-script
Beispiel: yarn designer start
oder yarn runner add babel-core --dev
$ yarn workspaces foreach run name-of-script
Ich würde es nicht empfehlen, es sei denn, Sie haben einen leistungsstarken Prozessor.
$ yarn watch
$ yarn add packagename
$ mkdir myNewLib
$ cd myNewlib
$ yarn init
package.json
myNewLib
zum workspaces
-Objekt hinzu. Wenn Sie Probleme haben, reichen Sie ein Problem ein oder senden Sie eine Nachricht über Gitter.
/vendor
ist nicht vorhanden, da es weder erstellt noch neu erstellt wurde. Dieses Problem kann auch bei core-js
, fsevents
, nodemailer
usw. auftreten. $ yarn rebuild
um alle Pakete neu zu erstellen. $ yarn rebuild only node-sass
um nur Node-Sass neu zu erstellen
Wir verwenden GitHub-Aktionen, um unseren CI-Prozess auszuführen. Sehen Sie sich hier eine Visualisierung des Workflows an.
Versionsnummern werden automatisch basierend auf Commit-Nachrichten und SemVer (Major.Minor.Patch) erhöht. Stellen Sie Ihrem Merge-Commit beim Zusammenführen Folgendes voran:
major:
oder breaking:
– zum Beispiel breaking: removing feature X
. Dadurch wird die MAJOR-Version erhöht – zum Beispiel: 1.1.0 auf 2.0.0minor:
oder feature:
– zum Beispiel feature: new component
. Dadurch wird die MINOR-Version erhöht – zum Beispiel: 1.1.0 auf 1.2.0patch:
oder fix:
– zum Beispiel fix: url bug
– dadurch wird die PATCH-Version erhöht – zum Beispiel: 1.0.0 auf 1.0.1 (dies geschieht auch standardmäßig) Der Entwicklungsworkflow wird immer dann ausgelöst, wenn ein PR mit dem Hauptprojekt zusammengeführt wird, und Sie können ihn auf der Registerkarte „Aktion“ des Repositorys überwachen.
Der Workflow enthält zwei separate Jobs, die parallel ausgeführt werden, einer für den Runner und einer für die Designer-Anwendung.
Beide Jobs funktionieren wie folgt:
Die neuesten Veröffentlichungen laufen hier: Runner / Designer.
Für alle PRs wird eine Reihe von Rauchtests durchgeführt. Es gibt einen Cron-Job, der Rauchtests für die Heroku-Bereitstellungen durchführt und täglich um Mitternacht ausgeführt werden soll.
Eine ältere Suite von Rauchtests finden Sie in diesem Repository. Sie wurden entfernt, damit das Projekt auf Knoten 18 laufen kann.
Rauchtests werden in den kommenden Monaten auf die Verwendung von cypress.io migriert.