From 3e18aadc8fafdf6adecdeb5af65a704be3931ff8 Mon Sep 17 00:00:00 2001 From: willemjan Date: Thu, 13 Aug 2026 23:31:33 +0200 Subject: [PATCH] updated commenting --- Jenkinsfile | 182 +++++++++++++++++++++++++--------------------------- 1 file changed, 89 insertions(+), 93 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a4ae078..271c62b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,103 +1,99 @@ -// pipeline { -// agent { label 'ssh-agent' } - -// options { -// skipDefaultCheckout(true) -// } - -// stages { -// stage('Checkout') { -// steps { -// withCredentials([usernamePassword( -// credentialsId: 'gitea_user', -// usernameVariable: 'GIT_USER', -// passwordVariable: 'GIT_TOKEN')]) { -// sh ''' -// git init -q . -// git remote add origin \ -// "https://${GIT_USER}:${GIT_TOKEN}@git.jouwdomain.duckdns.org/willemjan/glucose-dashboard.git" \ -// 2>/dev/null || true -// git fetch --depth 1 origin "${BRANCH_NAME}" -// git checkout -q FETCH_HEAD -// git rev-parse --short HEAD -// ''' -// } -// } -// } - -// stage('Test') { -// steps { -// sh ''' -// python -m venv .venv -// . .venv/bin/activate -// pip install -q -r requirements.txt -r requirements-dev.txt -// pytest -q --junitxml=report.xml -// ''' -// } -// post { -// always { junit 'report.xml' } -// } -// } - -// stage('Build & push image') { -// steps { -// withCredentials([usernamePassword( -// credentialsId: 'gitea-registry', -// usernameVariable: 'REG_USER', -// passwordVariable: 'REG_PASS')]) { -// sh ''' -// echo "$REG_PASS" | docker login $REGISTRY -u "$REG_USER" --password-stdin -// docker build -t $IMAGE:$TAG -t $IMAGE:latest . -// docker push $IMAGE:$TAG -// docker push $IMAGE:latest -// ''' -// } -// } -// } - -// stage('Scan') { -// steps { -// sh 'trivy image --exit-code 0 --severity HIGH,CRITICAL $IMAGE:$TAG' -// } -// } - -// stage('Deploy to OpenShift') { -// steps { -// withCredentials([string( -// credentialsId: 'openshift-token', -// variable: 'OC_TOKEN')]) { -// sh ''' -// oc login --token="$OC_TOKEN" --server="$OC_SERVER" -// oc project $OC_PROJECT - -// oc apply -f openshift/service.yaml -// oc apply -f openshift/route.yaml -// oc apply -f openshift/deployment.yaml - -// oc set image deployment/glucose-dashboard \ -// glucose-dashboard=$IMAGE:$TAG - -// oc rollout status deployment/glucose-dashboard --timeout=5m -// ''' -// } -// } -// } -// } - -// post { -// always { sh 'oc logout || true' } -// success { -// sh 'echo "Deployed: $(oc get route glucose-dashboard -o jsonpath={.spec.host})" || true' -// } -// } -// } pipeline { agent { label 'ssh-agent' } + + options { + skipDefaultCheckout(true) + } + stages { stage('Probe') { steps { sh 'whoami; git --version; java -version' } } + + stage('Checkout') { + steps { + withCredentials([usernamePassword( + credentialsId: 'gitea_user', + usernameVariable: 'GIT_USER', + passwordVariable: 'GIT_TOKEN')]) { + sh ''' + git init -q . + git remote add origin \ + "https://${GIT_USER}:${GIT_TOKEN}@git.jouwdomain.duckdns.org/willemjan/glucose-dashboard.git" \ + 2>/dev/null || true + git fetch --depth 1 origin "${BRANCH_NAME}" + git checkout -q FETCH_HEAD + git rev-parse --short HEAD + ''' + } + } + } + + stage('Test') { + steps { + sh ''' + python -m venv .venv + . .venv/bin/activate + pip install -q -r requirements.txt -r requirements-dev.txt + pytest -q --junitxml=report.xml + ''' + } + post { + always { junit 'report.xml' } + } + } + + stage('Build & push image') { + steps { + withCredentials([usernamePassword( + credentialsId: 'gitea-registry', + usernameVariable: 'REG_USER', + passwordVariable: 'REG_PASS')]) { + sh ''' + echo "$REG_PASS" | docker login $REGISTRY -u "$REG_USER" --password-stdin + docker build -t $IMAGE:$TAG -t $IMAGE:latest . + docker push $IMAGE:$TAG + docker push $IMAGE:latest + ''' + } + } + } + + stage('Scan') { + steps { + sh 'trivy image --exit-code 0 --severity HIGH,CRITICAL $IMAGE:$TAG' + } + } + + stage('Deploy to OpenShift') { + steps { + withCredentials([string( + credentialsId: 'openshift-token', + variable: 'OC_TOKEN')]) { + sh ''' + oc login --token="$OC_TOKEN" --server="$OC_SERVER" + oc project $OC_PROJECT + + oc apply -f openshift/service.yaml + oc apply -f openshift/route.yaml + oc apply -f openshift/deployment.yaml + + oc set image deployment/glucose-dashboard \ + glucose-dashboard=$IMAGE:$TAG + + oc rollout status deployment/glucose-dashboard --timeout=5m + ''' + } + } + } + } + + post { + always { sh 'oc logout || true' } + success { + sh 'echo "Deployed: $(oc get route glucose-dashboard -o jsonpath={.spec.host})" || true' + } } } \ No newline at end of file