Create Kurs hinzufügen authored by Benedikt Dietrich's avatar Benedikt Dietrich
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.