![build status](https://ci.drone1.basehosts.de/api/badges/panel/baseui/status.svg) # basispanel UI ## Entwicklungsprozess ### Allgemeines - auf Branch `master` dürfen nur Anton und Sebastian pushen - Branch `matdev` ist für Mathias - Anton und Sebastian mergen regelmäßig zu `matdev`, damit Mathias möglichst neue Komponenten auf dem aktuellen Stand einbaut - nachdem in `matdev` neue vue-Komponenten angelegt wurden, welche bis dahin nur HTML und CSS enthalten, mergen Anton oder Sebastian `matdev` auf `master` um Logik einzubauen ### Linux ```bash # falls nicht bereits vorhanden git clone ssh://git@gitbase.de:2222/panel/baseui.git cd baseui # die Branch auschecken, für die man verantwortlich ist git checkout matdev # z.B. für Mathias # Änderungen vom Server holen, fall nicht gerade geklont wurde git pull # fehlende Module installieren npm install # entwickeln und gleichzeitig webpack laufen lassen npm run dev # oder für eingebauten Server mit Hot-Reload npm run serve ``` ### Windows - z.B. SourceTree für GIT - Repository `ssh://git@gitbase.de:2222/panel/baseui.git` clonen - Branch wechseln (`matdev` für Mathias) - Konsole (cmd oder PowerShell) aufrufen - ins Verzeichnis ..../basispanel-ui wechseln ```powershell # fehlende Module installieren (falls im Windows Probleme auftauchen [z.B. Permission denied], node_modules/ Verzeichnis löschen und nochmal probieren) npm install # entwickeln und gleichzeitig webpack laufen lassen npm run win-dev # oder für eingebauten Server mit Hot-Reload npm run win-serve ``` ## Änderungen hochladen ### Linux ```bash # eigene Änderungen commiten git commit -m "Commit Nachricht" # Commits zum Server pushen git push ``` ### Windows - Commiten und Pushen wie gewohnt ## Aufbau des Repos - `assets` = für Bilder und sonstige "statische" Dateien - `conf` = Konfiguration der UI für jeweiligen Einsatz - `src` = sämtlicher Quellcode zur UI - `src/components` = Vue-Komponenten, die allgemein für die UI gültig sind - `src/fonts` = Icon-Fonts - `src/views` = Vue-Komponenten, die für den speziellen Einsatz entwickelt werden, z.B. spezielle Listen, Forms, ... (dieses Verzeichnis wird nach später aus dem Repo entfernt, um die UI allgeimengültig zu halten) ## Build-Prozess - wird auf Drone-Server durch `.drone.yml` automatisch erledigt ```bash # Module installieren (erzeugt node_modules/) npm install # bundle bauen npm run build ``` - nach erfolgreichem Build sind folgende Verzeichnisse und Datein für das Produktiv-System bestimmt: - assets/ - build/ - conf/ - index.html ## Deployment - in `.gitlab.yml` ist der Deploy für alle Branches auf "http://ui.basispanel.de/" eingerichtet - master: http://ui.basispanel.de/master/ - matdev: http://ui.basispanel.de/matdev/ ## bei Problemen - wenn `git pull` oder `git push` mal nicht klappt wegen gleichzeitiger Änderungen auf dem Server und lokal --> Jemanden anrufen, der Ahnung hat oder GIT-Tutorials lesen ;)