pipeline { agent { kubernetes { // Definiert den Pod mit dem .NET 8 SDK Image yaml ''' apiVersion: v1 kind: Pod spec: containers: - name: dotnet8 image: mcr.microsoft.com/dotnet/sdk:8.0 command: - cat tty: true ''' } } stages { stage('Checkout Source') { steps { // Ersetze 'dein-user' und 'dein-repo' durch die Namen aus Gitea git url: 'http://130.61.26.230:30080/dev-master/secdevops-csharp-app.git', branch: 'master' } } stage('Build with .NET 8') { steps { // Führt den Build-Befehl im spezialisierten Container aus container('dotnet8') { sh 'dotnet --version' // Zur Bestätigung der Version sh 'dotnet build' } } } stage('Unit Tests') { steps { container('dotnet8') { // Erstellt eine XML-Datei im Format 'junit', die Jenkins lesen kann sh 'dotnet test --configuration Release' } } } stage('Set Build Name') { steps { script { // Setzt den Namen des aktuellen Laufs auf die Version + Build-Nummer currentBuild.displayName = "v1.0.0-build-${env.BUILD_NUMBER}" } } } } post { always { // Sammelt die Testergebnisse ein (die wir im Test-Schritt erzeugen) // Das **/ bedeutet: Suche in allen Unterordnern nach .xml Dateien junit testResults: '**/TestResults/*.xml', allowEmptyResults: true // Meldet den Status zurück, wenn das Gitea-Plugin korrekt konfiguriert ist echo "Pipeline beendet: ${currentBuild.result}" } } }