Workflow Entwicklung von Wahlzeit mit Docker und CI-Pipeline

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Workflow Entwicklung von Wahlzeit mit Docker und CI-Pipeline
Hallo zusammen,

ich habe mir die Vorlesungsvideos von kommender Woche zu Docker, CI und Testing bereits angeschaut, mit der Annahme, danach die Arbeitsweise als Entwickler von Wahlzeit zu verstehen…

Leider ist mir dies noch nicht ganz klar geworden. Könnten ihr darauf eingehen, wie man an dem Projekt entwickelt im Hinblick auf Docker und einer CI-Pipeline.
Insbesondere verstehe ich folgendes noch nicht ganz:

  1. Wenn ich ein normales “kleines” Javaprojekt habe, dann kompiliere ich meist über die Console oder runne über die Entwicklungsumgebung und kann dann auch direkt Ausgaben z.B. im Terminal sehen. Wie funktioniert die Arbeitsweise dann mit docker-compose? Muss man jedes mal einen Container builden um die Ergebnisse zu sehen? Hier wäre ein beispielhafter Workflow sehr hilfreich.

  2. Desweiteren zur CI-Pipeline, welche Hostingplattform sollen wir nutzen?

  3. Zur Abgabe des Projekts über Github: Wie genau ist der Zusammenhang zw. Commits & Tags? Soll man öfter commiten und dann nur einzelne Commits taggen, oder jeweils nur die finale Abgabe commiten?

Verzeihung für die vielen Fragen :smiley:
Vielen Dank und ein schönes Wochenende
Johannes Schilling


Hi,

(1) Wahlzeit kann wie andere Java-Projekte mittels einer IDE oder dem Terminal gebaut und ausgeführt werden. Docker bildet hier eine zusätzliche Möglichkeit die Anwendung in eine ausführbare Einheit zu “packen”. Zudem erleichtert Docker den Umgang mit Abhängigkeiten wie z.B. PostgreSQL. Mit docker-compose up db kann eine Instanz von PostgreSQL hochgefahren werden und nötigen Einstellungen, wie Username und Passwort, werden als Umgebungsvariablen mitgegeben.

(2) Als CI-Platform wird GitHub selbst verwendet. Nennt sich Workflows in GitHub und ist unter dem Reiter Actions zu finden. Die Konfiguration für die GitHub Workflows ist im Projekt unter ‘.github/workflows’ zu finden.

(3) Es können beliebige Commits getätigt werden. Der finale Stand für die entsprechende Woche, also der letzte Commit hierzu, muss dann mit einem Tag, wie in den Folien beschrieben, versehen werden. Bei der Softwareentwicklung ist es üblich mehrere kleine Commits anstatt eines großen Commits zu tätigen.
Die Tags helfen uns die Änderungen, zur jeweiligen vorherigen Woche, besser zu Überblicken.

Beste Grüße,
Andreas Bauer