From 4da2d616a4411ff12af2c7bba382b0ba7411c272 Mon Sep 17 00:00:00 2001 From: KoCoder Date: Mon, 23 Mar 2026 02:52:50 +0100 Subject: [PATCH] New: CI/CD Yaml Configuration Example --- ...dividueller-teil-Konstantin-Hintermayer.md | 52 +++++++++++++++---- 1 file changed, 43 insertions(+), 9 deletions(-) diff --git a/05-Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md b/05-Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md index 7e6354a..457514f 100644 --- a/05-Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md +++ b/05-Diplomarbeitsbuch-individueller-teil-Konstantin-Hintermayer.md @@ -449,16 +449,50 @@ Clone -> Checkout -> Submodule Checkout (optional) -> Dependencies einrichten (z Anwendungen von Gitea Actions bei dieser Diplomarbeit: -- APT-Package Repository: - > 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. Die Versionierung des NuGet-Pakets erfolgt dabei automatisiert über Git-Tags, was eine konsistente Verknüpfung zwischen Quellcode-Stand und Paketversion sicherstellt. -- ursprünglich: oqtane.framework - > Zum bauen und Verpacken in einen Docker Container und in die Registry pushen. -- PM Repository: - > Zum automatischen Überprüfen der Dokumente, unter anderem, mithilfe von KI, wie zum Beispiel Gemini. +- **APT-Package Repository**: 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. Die Versionierung des NuGet-Pakets erfolgt dabei automatisiert über Git-Tags, was eine konsistente Verknüpfung zwischen Quellcode-Stand und Paketversion sicherstellt. +- **ursprünglich: oqtane.framework**: Zum bauen und Verpacken in einen Docker Container und in die Registry pushen. +- **PM Repository**: Zum automatischen Überprüfen der Dokumente, unter anderem, mithilfe von KI, wie zum Beispiel Gemini. -# Gitea Actions YAML einfügen und erklären +Ein Beispiel für eine Konfiguration einer Gitea Action: + +```yaml +name: build-debian-package +on: + push: + tags: + - "*" + +jobs: + build: + name: Build the debian package + runs-on: ubuntu-latest + steps: + - name: "Git clone" + run: git clone ${{ gitea.server_url }}/${{ gitea.repository }}.git . + - name: "Git checkout" + run: git checkout "${{ gitea.sha }}" + - name: "Submodules auschecken" + run: git submodule update --init + - name: "Dotnet SDK einrichten" + uses: actions/setup-dotnet@v4 + with: + dotnet-version: "10.0.x" + - name: "Configure nuget source" + run: dotnet nuget add source --name DAV --username kocoder --password ${{ secrets.REGISTRY_TOKEN_KOCODER }} https://git.kocoder.xyz/api/packages/Diplomarbeit-Absolventenverein/nuget/index.json --store-password-in-clear-text + - name: "Build .deb" + run: ./run-build.sh "${{ gitea.ref_name }}" "./alumnihub" "Release" + - name: "Upload .deb" + run: curl --user kocoder:${{ secrets.REGISTRY_TOKEN_KOCODER }} --upload-file ./alumnihub.deb https://git.kocoder.xyz/api/packages/Diplomarbeit-Absolventenverein/debian/pool/trixie/main/upload + - name: "Create release" + uses: akkuman/gitea-release-action@v1 + with: + files: |- + ./alumnihub.deb + ./alumnihub/opt/alumnihub/Packages/*.nupkg +``` + +Die Konfiguration führt teilweise vorgefertigte Actions aus, wie zum Beispiel das Einrichten des .NET SDKs oder das Erstellen eines Releases. Aber es werden auch eigene Skripte ausgeführt, wie zum Beispiel das Bauen des .deb Pakets. Dieses ist im Repository unter `./run-build.sh` zu finden. Dieses Skript ist für die Automatisierung des Build-Prozesses zuständig und kümmert sich um das Kompilieren der Anwendung, das Erstellen des Debian-Pakets und das Hochladen in die Registry. Abgelegt ist es im APT-Package Repository unter `./gitea/workflows`. ### Debian Paket