Jenkinsfile hinzugefügt
Some checks failed
DeineDorfApp/DeineDorfApp-Admin-Panel/pipeline/head There was a failure building this commit

This commit is contained in:
Leo
2026-04-23 08:44:10 +00:00
parent 0b65dc5550
commit ff17653d1b

115
Jenkinsfile vendored Normal file
View File

@@ -0,0 +1,115 @@
pipeline {
agent {
kubernetes {
inheritFrom 'frontend-agent' // dein Pod Template node-builder Container muss drin sein
}
}
// ============================================================
// Konfiguration hier anpassen
// ============================================================
environment {
NEXUS_URL = 'registry.nexus.deinedorfapp.de'
NEXUS_CREDENTIAL = 'Nexus'
IMAGE_NAME = 'frontend'
IMAGE_TAG = "${env.BUILD_NUMBER}"
IMAGE_FULL = "${NEXUS_URL}/${IMAGE_NAME}:${IMAGE_TAG}"
IMAGE_LATEST = "${NEXUS_URL}/${IMAGE_NAME}:latest"
}
// ============================================================
options {
timestamps()
disableConcurrentBuilds()
buildDiscarder(logRotator(numToKeepStr: '10'))
}
stages {
stage('Checkout') {
steps {
echo ">>> Quellcode auschecken"
checkout scm
}
}
stage('Dependencies installieren') {
steps {
container('frontend-builder') {
echo ">>> npm install"
sh 'npm ci'
}
}
}
stage('Lint') {
steps {
container('frontend-builder') {
echo ">>> ESLint prüfen"
sh 'npm run lint'
}
}
}
stage('Build (Vite)') {
steps {
container('frontend-builder') {
echo ">>> Vite Production Build"
sh 'npm run build'
}
}
}
stage('Docker Image bauen') {
steps {
container('docker-builder') {
echo ">>> Docker Image wird gebaut: ${IMAGE_FULL}"
sh """
docker build \
--build-arg BUILD_NUMBER=${env.BUILD_NUMBER} \
-t ${IMAGE_FULL} \
-t ${IMAGE_LATEST} \
.
"""
}
}
}
stage('Push zu Nexus') {
steps {
container('docker-builder') {
echo ">>> Push zu Nexus Docker Registry"
withCredentials([usernamePassword(
credentialsId: "${NEXUS_CREDENTIAL}",
usernameVariable: 'NEXUS_USER',
passwordVariable: 'NEXUS_PASS'
)]) {
sh "echo \${NEXUS_PASS} | docker login ${NEXUS_URL} -u \${NEXUS_USER} --password-stdin"
sh "docker push ${IMAGE_FULL}"
sh "docker push ${IMAGE_LATEST}"
}
}
}
}
stage('Aufräumen') {
steps {
container('docker-builder') {
echo ">>> Lokale Docker Images entfernen"
sh "docker rmi ${IMAGE_FULL} || true"
sh "docker rmi ${IMAGE_LATEST} || true"
}
}
}
}
post {
success {
echo ">>> Build erfolgreich! Image verfügbar unter: ${IMAGE_FULL}"
}
failure {
echo ">>> Build fehlgeschlagen! Bitte Logs prüfen."
}
}
}