Files
DeineDorfApp-Admin-Panel/Jenkinsfile
Leo 674cf3ce5e
All checks were successful
DeineDorfApp/DeineDorfApp-Admin-Panel/pipeline/head This commit looks good
Jenkinsfile aktualisiert
2026-04-23 08:48:08 +00:00

116 lines
3.5 KiB
Groovy
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 || true' // Fehler werden geloggt aber Build läuft weiter
}
}
}
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."
}
}
}