|
|
|
|
|
Um einen neuen Kurs in der devbox anzulegen und auch lokal erst einmal testen zu können ist folgende Vorgehensweise empfehlenswert:
|
|
|
|
|
|
### Testen in devbox selbst
|
|
|
|
|
|
Es ist empfehlenswert die neue Konfiguration lokal in der devbox zu testen, da der Build in der Gitlab CI sehr lange dauert.
|
|
|
Hierfür einfach folgende Schritte durchführen:
|
|
|
|
|
|
1. devbox Minimal Image herunterladen, in VirtualBox importieren und starten (siehe auch [Anleitung für Studierende](anleitung-fuer-studierende))
|
|
|
1. In diese devbox klont man nun das devbox-Repository (oder auch nur den Fork, falls man nicht Member ist).
|
|
|
1. Im nächsten Schritt einfach einen Branch <branchname> erstellen, auf dem man Änderungen einpflegt.
|
|
|
|
|
|
### Konfiguration erstellen
|
|
|
|
|
|
Um einen neuen Kurs hinzuzufügen müssen Sie sich zunächst ein Kürzel für den Kurs überlegen.
|
|
|
Dieses Kürzel nutzen Studierende, um dann in devbox mittels `~/update.sh <kürzel>` die Tools für Ihren Kurs zu installieren.
|
|
|
Bereits existierende Kürzel finden Sie in der Datei `ansible/playbook.yml` ganz unten.
|
|
|
|
|
|
Um nun für dieses Kürzel bestimmte Tools zu installieren, sollten Sie sich zunächst mit den bereits bestehenden Roles vertraut machen.
|
|
|
So gibt es z.B. eine Rolle `vscode`, die Sie nutzen können, um für Ihren Kurs VS Code zu installieren.
|
|
|
Hierfür müssen Sie einfach nur Ihr Kürzel bei der `role: vscode` unter `tags` hinzufügen.
|
|
|
|
|
|
Wollen Sie neue Rollen definieren, legen Sie einfach im Ordner `ansible/roles/` einen Ordner mit entsprechendem Namen an.
|
|
|
In einer Datei `ansible/roles/<yourrole>/task/main.yml` anlegen, welche definiert, was alles für diese Rolle zu erledigen ist.
|
|
|
Hier können Sie bei den bereits bestehenden Rollen spicken.
|
|
|
|
|
|
Achtung: Die `main.yml`-Datei muss, wie angegeben, im Unterordner `task` liegen.
|
|
|
|
|
|
|
|
|
### Konfiguration testen
|
|
|
|
|
|
1. Um nun die aktuelle Konfiguration zu testen, muss man anstatt des normalen `~/update.sh` folgenden Befehl verwenden:
|
|
|
|
|
|
```
|
|
|
URL=/path/to/local/repo BRANCH=<branchname> ~/update.sh <kuerzel>
|
|
|
```
|
|
|
|
|
|
### Zur Verfügung stellen
|
|
|
|
|
|
Funktioniert alles wie gewünscht kann man einfach einen Merge-Request erstellen, um die Änderungen in den main-Branch zu übernehmen.
|
|
|
Von dort können die Änderungen von den Studierenden mit Hilfe des `update`-Skripts in ihre devbox geladen werden. |