From 547c435694cc0076eb5b752a2a8692b267ffaf41 Mon Sep 17 00:00:00 2001 From: duynguyen Date: Sat, 25 Apr 2026 16:31:05 +0700 Subject: [PATCH] refactor: slim pipeline to test + build/push only Remove Checkout stage (multibranch auto-checks out), Bump Helm Chart, and Commit & Push stages. Drop tools container and chart env vars. Image tag is now branch-random8 (e.g. main-a1b2c3d4). --- Jenkinsfile | 78 ++++++++++------------------------------------------- 1 file changed, 14 insertions(+), 64 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9c44d82..39ae709 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -21,12 +21,6 @@ spec: value: "" args: - --insecure-registry=harbor-core.harbor.svc.cluster.local - - name: tools - image: alpine/git - command: - - sleep - args: - - infinity """ } } @@ -37,17 +31,9 @@ spec: HARBOR_PROJECT = 'library' IMAGE = "${HARBOR_REGISTRY}/${HARBOR_PROJECT}/${APP_NAME}" DOCKER_HOST = 'tcp://localhost:2375' - CHART_FILE = 'manifest/helm/Chart.yaml' - VALUES_FILE = 'manifest/helm/values.yaml' } stages { - stage('Checkout') { - steps { - checkout scm - } - } - stage('Install & Test') { steps { container('node') { @@ -59,59 +45,23 @@ spec: stage('Build & Push Image') { steps { - container('docker') { - withCredentials([usernamePassword( - credentialsId: 'harbor-credentials', - usernameVariable: 'HARBOR_USER', - passwordVariable: 'HARBOR_PASS' - )]) { - sh """ - docker login ${HARBOR_REGISTRY} -u \${HARBOR_USER} -p \${HARBOR_PASS} - docker build -t ${IMAGE}:${BUILD_NUMBER} . - docker push ${IMAGE}:${BUILD_NUMBER} - """ - } - } - } - } - - stage('Bump Helm Chart') { - steps { - container('tools') { - script { - def content = readFile(CHART_FILE) - def matcher = content =~ /version:\s+(\d+)\.(\d+)\.(\d+)/ - def newVersion = "${matcher[0][1]}.${matcher[0][2]}.${matcher[0][3].toInteger() + 1}" - sh "sed -i 's/^version: .*/version: ${newVersion}/' ${CHART_FILE}" - sh "sed -i 's/^appVersion: .*/appVersion: \"${BUILD_NUMBER}\"/' ${CHART_FILE}" - sh "sed -i 's/^ tag: .*/ tag: ${BUILD_NUMBER}/' ${VALUES_FILE}" - } - } - } - } - - stage('Commit & Push') { - steps { - container('tools') { - withCredentials([usernamePassword( - credentialsId: 'gitea-credentials', - usernameVariable: 'GIT_USER', - passwordVariable: 'GIT_PASS' - )]) { - sh """ - git config user.email "jenkins@fireflylab.local" - git config user.name "Jenkins" - git add ${CHART_FILE} ${VALUES_FILE} - git commit -m "ci: bump tictactoe chart to build ${BUILD_NUMBER}" - REMOTE_URL=\$(git remote get-url origin) - AUTH_URL=\$(echo \$REMOTE_URL | sed "s|https://|https://\${GIT_USER}:\${GIT_PASS}@|") - BRANCH=\$(git rev-parse --abbrev-ref HEAD) - git push \$AUTH_URL HEAD:\$BRANCH - """ + script { + def imageTag = "${env.BRANCH_NAME.replaceAll('/', '-')}-${UUID.randomUUID().toString().take(8)}" + container('docker') { + withCredentials([usernamePassword( + credentialsId: 'harbor-credentials', + usernameVariable: 'HARBOR_USER', + passwordVariable: 'HARBOR_PASS' + )]) { + sh """ + docker login ${HARBOR_REGISTRY} -u \${HARBOR_USER} -p \${HARBOR_PASS} + docker build -t ${IMAGE}:${imageTag} . + docker push ${IMAGE}:${imageTag} + """ + } } } } } } - }