CI/CD: grundlegende Einführung in den verwendungszweck von Gitea Pipelines #63

Merged
Kocoder merged 2 commits from Einleitung-CI/C into main 2026-03-05 12:42:04 +00:00
Owner
No description provided.
Kocoder added 1 commit 2026-03-04 10:35:59 +00:00
CI/CD: grundlegende Einführung in den verwendungszweck von Gitea Pipelines
All checks were successful
Gemini Writing Review / gemini-review (pull_request) Successful in 1m20s
Word Count / count-words (pull_request) Successful in 33s
adb32e1234
gitea-actionsbot requested changes 2026-03-04 10:37:17 +00:00
gitea-actionsbot left a comment

🤖 Gemini Writing Review

I've found some areas for improvement in the documentation. Please see the inline comments below.

### 🤖 Gemini Writing Review I've found some areas for improvement in the documentation. Please see the inline comments below.

In German compound nouns, names of the projects should ideally be hyphenated or clearly separated. Also, '4 Projekten' should be 'vier Projekten' (numbers up to twelve are usually written out).

Ein Modul in Oqtane besteht aus vier Projekten: Server, Client, Shared und Package.
In German compound nouns, names of the projects should ideally be hyphenated or clearly separated. Also, '4 Projekten' should be 'vier Projekten' (numbers up to twelve are usually written out). ```suggestion Ein Modul in Oqtane besteht aus vier Projekten: Server, Client, Shared und Package. ```
Kocoder marked this conversation as resolved

Spelling: 'Startuplogik' is better written with a hyphen in German. Style: 'welcher' is grammatically correct but 'der' is often preferred for better flow.

Im Server-Projekt liegt Quellcode, der serverseitig ausgeführt werden soll. In der Praxis bedeutet das: alle Repositories, Controller, Manager, Migrationen und Server-Services (entwickelt nach einem im Client definierten Interface) und Server-Startup-Logik.
Spelling: 'Startuplogik' is better written with a hyphen in German. Style: 'welcher' is grammatically correct but 'der' is often preferred for better flow. ```suggestion Im Server-Projekt liegt Quellcode, der serverseitig ausgeführt werden soll. In der Praxis bedeutet das: alle Repositories, Controller, Manager, Migrationen und Server-Services (entwickelt nach einem im Client definierten Interface) und Server-Startup-Logik. ```
Kocoder marked this conversation as resolved

Typos: 'Staruplogik' should be 'Startup-Logik' and 'Inferfaces' should be 'Interfaces'.

Im Client-Projekt liegen Code und Razor-Komponenten für den Client. Also Client-Startup-Logik, Client-Services (+ Interfaces dafür, die Services hier sollen lediglich die Server-Services über HTTP aufrufen), Ressourcendateien (.resx), die Komponenten / das User Interface und die Moduldefinitionen für jedes Modul.
Typos: 'Staruplogik' should be 'Startup-Logik' and 'Inferfaces' should be 'Interfaces'. ```suggestion Im Client-Projekt liegen Code und Razor-Komponenten für den Client. Also Client-Startup-Logik, Client-Services (+ Interfaces dafür, die Services hier sollen lediglich die Server-Services über HTTP aufrufen), Ressourcendateien (.resx), die Komponenten / das User Interface und die Moduldefinitionen für jedes Modul. ```
Kocoder marked this conversation as resolved

Grammar: Compound nouns like 'Package Projekt' require a hyphen in German.

Im Package-Projekt findet man Skripte zum Debuggen und Releasen eines Moduls und die NuGet-Spezifikation.
Grammar: Compound nouns like 'Package Projekt' require a hyphen in German. ```suggestion Im Package-Projekt findet man Skripte zum Debuggen und Releasen eines Moduls und die NuGet-Spezifikation. ```
Kocoder marked this conversation as resolved

Grammar/Style: 'Beim Debug' should be 'Beim Debuggen' (nominalized verb). Numbers under 12 should be written out ('drei').

- Beim Debuggen werden die DLLs, PDBs und statischen Assets wie Skripte und Stylesheets der drei anderen Projekte in den bereits gebauten Oqtane.Server `oqtane.framework/oqtane.server/bin/debug/net10.0/...` kopiert.
Grammar/Style: 'Beim Debug' should be 'Beim Debuggen' (nominalized verb). Numbers under 12 should be written out ('drei'). ```suggestion - Beim Debuggen werden die DLLs, PDBs und statischen Assets wie Skripte und Stylesheets der drei anderen Projekte in den bereits gebauten Oqtane.Server `oqtane.framework/oqtane.server/bin/debug/net10.0/...` kopiert. ```
Kocoder marked this conversation as resolved

Grammar: 'DB Migrationen' should be hyphenated ('DB-Migrationen').

- Beim Release wird ein NuGet-Paket erstellt und unter oqtane.framework/oqtane.server/Packages abgelegt. Dort abgelegte NuGet-Pakete werden beim nächsten Start des Oqtane-Servers installiert (DB-Migrationen werden durchgeführt und die Pakete entpackt).
Grammar: 'DB Migrationen' should be hyphenated ('DB-Migrationen'). ```suggestion - Beim Release wird ein NuGet-Paket erstellt und unter oqtane.framework/oqtane.server/Packages abgelegt. Dort abgelegte NuGet-Pakete werden beim nächsten Start des Oqtane-Servers installiert (DB-Migrationen werden durchgeführt und die Pakete entpackt). ```
Kocoder marked this conversation as resolved

Style: Standard casing for 'WebSockets' usually includes a capital S.

## WebSockets und HTTP 1.1
Style: Standard casing for 'WebSockets' usually includes a capital S. ```suggestion ## WebSockets und HTTP 1.1 ```
Kocoder marked this conversation as resolved

Grammar: 'SOLID Prinzipien' needs a hyphen. 'von den fünf' is okay, but 'der fünf' (genitive) is more formal.

Das Dependency-Inversion-Principle (DIP / auf Deutsch: Abhängigkeits-Umkehr-Prinzip) ist eines der fünf `SOLID`-Prinzipien in der Softwareentwicklung.
Grammar: 'SOLID Prinzipien' needs a hyphen. 'von den fünf' is okay, but 'der fünf' (genitive) is more formal. ```suggestion Das Dependency-Inversion-Principle (DIP / auf Deutsch: Abhängigkeits-Umkehr-Prinzip) ist eines der fünf `SOLID`-Prinzipien in der Softwareentwicklung. ```
Kocoder marked this conversation as resolved

Grammar: German capitalization for nouns 'High-Level-' and 'Low-Level-Modulen'.

Das DIP unterscheidet zwischen High-Level- und Low-Level-Modulen.
Grammar: German capitalization for nouns 'High-Level-' and 'Low-Level-Modulen'. ```suggestion Das DIP unterscheidet zwischen High-Level- und Low-Level-Modulen. ```
Kocoder marked this conversation as resolved

Grammar: 'high-level Modul' should be 'High-Level-Modul'. 'auf die Klasse B referenziert' is slightly awkward; 'die Klasse B referenziert' is better.

Bei diesem Beispiel ist die Klasse A ein High-Level-Modul, welches direkt die Klasse B referenziert, was das DI-Prinzip verbietet.
Grammar: 'high-level Modul' should be 'High-Level-Modul'. 'auf die Klasse B referenziert' is slightly awkward; 'die Klasse B referenziert' is better. ```suggestion Bei diesem Beispiel ist die Klasse A ein High-Level-Modul, welches direkt die Klasse B referenziert, was das DI-Prinzip verbietet. ```
Kocoder marked this conversation as resolved

Grammar: Remove the unnecessary comma after 'einem'.

Das High-Level-Modul ruft lediglich eine Abstraktion eines Low-Level-Moduls auf, welche von einem oder mehreren Low-Level-Modulen implementiert wurde.
Grammar: Remove the unnecessary comma after 'einem'. ```suggestion Das High-Level-Modul ruft lediglich eine Abstraktion eines Low-Level-Moduls auf, welche von einem oder mehreren Low-Level-Modulen implementiert wurde. ```
Kocoder marked this conversation as resolved

Spelling: 'Injektion' is German, but since 'Dependency Injection' is a fixed English term used throughout, 'Injection' is more consistent. Also, 'genau so' should be one word 'genauso'.

Dependency Injection ist in .NET genauso wie Konfiguration, Protokollierung und das Optionsmuster ins Framework integriert.
Spelling: 'Injektion' is German, but since 'Dependency Injection' is a fixed English term used throughout, 'Injection' is more consistent. Also, 'genau so' should be one word 'genauso'. ```suggestion Dependency Injection ist in .NET genauso wie Konfiguration, Protokollierung und das Optionsmuster ins Framework integriert. ```
Kocoder marked this conversation as resolved

Typo: 'dannach' should be 'danach'. Grammar: 'Service' is usually masculine in German ('der Service').

Das Dependency Injection Framework verwaltet alle Instanzen. Nach Bedarf werden Instanzen erstellt oder wieder entsorgt (sofern der Service nicht mehr gebraucht wird). Beim Instanziieren einer Klasse werden alle im Konstruktor erwarteten Dependencies bereitgestellt bzw. selbst instanziiert und danach bereitgestellt.
Typo: 'dannach' should be 'danach'. Grammar: 'Service' is usually masculine in German ('der Service'). ```suggestion Das Dependency Injection Framework verwaltet alle Instanzen. Nach Bedarf werden Instanzen erstellt oder wieder entsorgt (sofern der Service nicht mehr gebraucht wird). Beim Instanziieren einer Klasse werden alle im Konstruktor erwarteten Dependencies bereitgestellt bzw. selbst instanziiert und danach bereitgestellt. ```
Kocoder marked this conversation as resolved

Grammar: 'Dependency' is usually treated as feminine in German ('eine Dependency').

Das ist ein simples Beispiel, welches Teile des DI-Frameworks zeigt. Wir haben einen Service (Klasse Worker), eine Dependency (Klasse MessageWriter) und eine Abstraktionsebene der Dependency (Interface IMessageWriter).
Grammar: 'Dependency' is usually treated as feminine in German ('eine Dependency'). ```suggestion Das ist ein simples Beispiel, welches Teile des DI-Frameworks zeigt. Wir haben einen Service (Klasse Worker), eine Dependency (Klasse MessageWriter) und eine Abstraktionsebene der Dependency (Interface IMessageWriter). ```
Kocoder marked this conversation as resolved

Typo: 'dannach' should be 'danach'.

Bei Programmstart wird zuerst manuell der `Service-Container` erstellt, danach alle Module registriert (entweder als HostedService oder als Modul mit einer spezifischen Lifetime (Scoped, Transient, Singleton)).
Typo: 'dannach' should be 'danach'. ```suggestion Bei Programmstart wird zuerst manuell der `Service-Container` erstellt, danach alle Module registriert (entweder als HostedService oder als Modul mit einer spezifischen Lifetime (Scoped, Transient, Singleton)). ```
Kocoder marked this conversation as resolved
@@ -153,2 +153,4 @@
[^4]: https://learn.microsoft.com/en-us/dotnet/core/extensions/dependency-injection/overview
# Continious Integration

Typo: 'Continious' should be 'Continuous'.

# Continuous Integration
Typo: 'Continious' should be 'Continuous'. ```suggestion # Continuous Integration ```
Kocoder marked this conversation as resolved
@@ -155,0 +155,4 @@
# Continious Integration
## Automatisierter Build und Release Prozess mithilfe von Gitea Actions.

Typo: 'Continious' should be 'Continuous'.

## Automatisierter Build- und Release-Prozess mithilfe von Gitea Actions.
Typo: 'Continious' should be 'Continuous'. ```suggestion ## Automatisierter Build- und Release-Prozess mithilfe von Gitea Actions. ```
Kocoder marked this conversation as resolved
@@ -155,0 +157,4 @@
## Automatisierter Build und Release Prozess mithilfe von Gitea Actions.
Gitea, das Versionskontrollsystem dieser Diplomarbeit, hat einen Continious-Integration-System eingebaut. Im Kern ist es baugleich zu den Github-Pipelines. Man kann im `.gitea/workflow` Ordner `.yml` Dateien ablegen, welche dann das Verhalten der Workflows definieren.

Typo: 'Continious' should be 'Continuous'. Spelling: 'Github' should be 'GitHub'.

Gitea, das Versionskontrollsystem dieser Diplomarbeit, hat ein Continuous-Integration-System eingebaut. Im Kern ist es baugleich zu den GitHub-Pipelines.
Typo: 'Continious' should be 'Continuous'. Spelling: 'Github' should be 'GitHub'. ```suggestion Gitea, das Versionskontrollsystem dieser Diplomarbeit, hat ein Continuous-Integration-System eingebaut. Im Kern ist es baugleich zu den GitHub-Pipelines. ```
Kocoder marked this conversation as resolved
@@ -155,0 +159,4 @@
Gitea, das Versionskontrollsystem dieser Diplomarbeit, hat einen Continious-Integration-System eingebaut. Im Kern ist es baugleich zu den Github-Pipelines. Man kann im `.gitea/workflow` Ordner `.yml` Dateien ablegen, welche dann das Verhalten der Workflows definieren.
Man kann definieren auf welcher Änderung im Git Repository die Pipeline losgetreten wird (Keyword: `on`) und entweder eigene Komandos aufreihen, oder auf bestehende `actions` zurückgreifen, welche dann der Reihe nach ausgeführt werden (Keyword: `jobs`).

Typo: 'Komandos' should be 'Kommandos'.

Man kann definieren, bei welcher Änderung im Git-Repository die Pipeline losgetreten wird (Keyword: `on`) und entweder eigene Kommandos aufreihen oder auf bestehende `actions` zurückgreifen, welche dann der Reihe nach ausgeführt werden (Keyword: `jobs`).
Typo: 'Komandos' should be 'Kommandos'. ```suggestion Man kann definieren, bei welcher Änderung im Git-Repository die Pipeline losgetreten wird (Keyword: `on`) und entweder eigene Kommandos aufreihen oder auf bestehende `actions` zurückgreifen, welche dann der Reihe nach ausgeführt werden (Keyword: `jobs`). ```
Kocoder marked this conversation as resolved
@@ -155,0 +161,4 @@
Man kann definieren auf welcher Änderung im Git Repository die Pipeline losgetreten wird (Keyword: `on`) und entweder eigene Komandos aufreihen, oder auf bestehende `actions` zurückgreifen, welche dann der Reihe nach ausgeführt werden (Keyword: `jobs`).
Die meisten Pipelines sind folgendermaßen Aufgebaut:

Grammar/Style: 'Aufgebaut' should be lowercase 'aufgebaut'. 'Submodule Checkout' should be hyphenated.

Die meisten Pipelines sind folgendermaßen aufgebaut: Clone -> Checkout -> Submodule-Checkout (optional) -> Dependencies einrichten (zum Beispiel das dotnet SDK) -> Build ausführen -> Release erstellen und Artefakte veröffentlichen (z. B. in Registries).
Grammar/Style: 'Aufgebaut' should be lowercase 'aufgebaut'. 'Submodule Checkout' should be hyphenated. ```suggestion Die meisten Pipelines sind folgendermaßen aufgebaut: Clone -> Checkout -> Submodule-Checkout (optional) -> Dependencies einrichten (zum Beispiel das dotnet SDK) -> Build ausführen -> Release erstellen und Artefakte veröffentlichen (z. B. in Registries). ```
Kocoder marked this conversation as resolved
@@ -155,0 +170,4 @@
> Zum Bauen von Oqtane und allen Modulen, verpacken in ein .deb Paket und in die Registry pushen.
- Interfaces Projekt
> Zum Bauen vom Interfaces-Projekt, verpacken in ein NuGet Paket und in die Registry pushen.
- urprünglich: oqtane.framework

Typo: 'urprünglich' should be 'ursprünglich'.

- ursprünglich: oqtane.framework
Typo: 'urprünglich' should be 'ursprünglich'. ```suggestion - ursprünglich: oqtane.framework ```
Kocoder marked this conversation as resolved
@@ -155,0 +171,4 @@
- Interfaces Projekt
> Zum Bauen vom Interfaces-Projekt, verpacken in ein NuGet Paket und in die Registry pushen.
- urprünglich: oqtane.framework
> Zum bauen von verpacken in einen Docker Container und in die Registry pushen.

Grammar: 'Zum bauen von verpacken' is incorrect. It should be 'Zum Bauen und Verpacken'.

  > Zum Bauen und Verpacken in einen Docker-Container und Pushen in die Registry.
Grammar: 'Zum bauen von verpacken' is incorrect. It should be 'Zum Bauen und Verpacken'. ```suggestion > Zum Bauen und Verpacken in einen Docker-Container und Pushen in die Registry. ```
Kocoder marked this conversation as resolved

🤖 Word Count Report

Word count for Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md

Word count: 1109

### 🤖 Word Count Report #### Word count for `Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md` Word count: 1109
Kocoder added 1 commit 2026-03-04 10:42:21 +00:00
Apply Gemini-Dokumentation-Review-Suggestions
All checks were successful
Word Count / count-words (pull_request) Successful in 33s
395000aa47

🤖 Word Count Report

Word count for Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md

Word count: 1109

### 🤖 Word Count Report #### Word count for `Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md` Word count: 1109
Kocoder merged commit 416babf6ac into main 2026-03-05 12:42:04 +00:00
Kocoder deleted branch Einleitung-CI/C 2026-03-05 12:42:10 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Diplomarbeit-Absolventenverein/pm#63