Files
secdevops-csharp-app/Jenkinsfile
Achim H. 8102197b03
Some checks failed
csharp-secdevops-pipeline-pod/pipeline/head There was a failure building this commit
changed Jenkinsfile
2026-05-05 08:59:48 +02:00

67 lines
1.9 KiB
Groovy

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 MyHelloWorld.Tests/MyHelloWorld.Tests.csproj --no-build --configuration Release --logger "junit;LogFileName=results.xml;MethodDisplay=ClassAndMethod"'
}
}
}
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}"
}
}
}