| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- pipeline {
- agent { label 'dokskan_central_image_build' }
-
- environment {
- HARBOR_REGISTRY = 'registry.colettapaolo.com'
- HARBOR_PROJECT = 'dokskan'
- IMAGE_NAME = 'dokskan_central'
-
- HARBOR_CREDENTIALS = credentials('harbor_credentials_id')
- }
-
- triggers {
- GenericTrigger(
- genericVariables: [
- [key: 'ref', value: '$.ref'],
- [key: 'pusher', value: '$.pusher.username']
- ],
-
- genericHeaderVariables: [
- ],
-
- regexpFilterText: '$ref',
- regexpFilterExpression: '^refs/heads/main$',
-
- token: '8hBvzVnlwUnDVbvRWPQIHUTPFuiGUUAii9sD1xu1sMeGJkNLWbaGYJO8l3yVMZPl',
- causeString: 'Triggered by Gogs on branch: $ref',
- printContributedVariables: true,
- printPostContent: true
- )
- }
-
- stages {
- stage('Info') {
- steps {
- echo "Branch: ${ref}"
- echo "Pusher: ${pusher}"
- }
- }
-
- stage('Checkout') {
- steps {
- echo 'Checking out code...'
- checkout scm
-
- script {
- env.GIT_COMMIT_SHORT = sh(
- script: "git rev-parse --short HEAD",
- returnStdout: true
- ).trim()
-
- env.GIT_COMMIT_FULL = sh(
- script: "git rev-parse HEAD",
- returnStdout: true
- ).trim()
-
- echo "Commit ID (short): ${env.GIT_COMMIT_SHORT}"
- echo "Commit ID (full): ${env.GIT_COMMIT_FULL}"
- }
- }
- }
-
- stage('Build Docker Image') {
- steps {
- echo "Building Docker image with tag: ${env.GIT_COMMIT_SHORT}"
- script {
- sh """
- docker build -t ${HARBOR_REGISTRY}/${HARBOR_PROJECT}/${IMAGE_NAME}:${env.GIT_COMMIT_SHORT} .
- docker tag ${HARBOR_REGISTRY}/${HARBOR_PROJECT}/${IMAGE_NAME}:${env.GIT_COMMIT_SHORT} \
- ${HARBOR_REGISTRY}/${HARBOR_PROJECT}/${IMAGE_NAME}:latest
- """
- }
- }
- }
-
- stage('Login to Harbor') {
- steps {
- echo 'Logging into Harbor registry...'
- sh """
- echo ${HARBOR_CREDENTIALS_PSW} | docker login ${HARBOR_REGISTRY} \
- -u ${HARBOR_CREDENTIALS_USR} \
- --password-stdin
- """
- }
- }
-
- stage('Push to Harbor') {
- steps {
- echo "Pushing image to Harbor..."
- sh """
- docker push ${HARBOR_REGISTRY}/${HARBOR_PROJECT}/${IMAGE_NAME}:${env.GIT_COMMIT_SHORT}
- docker push ${HARBOR_REGISTRY}/${HARBOR_PROJECT}/${IMAGE_NAME}:latest
- """
-
- echo "✅ Image pushed: ${HARBOR_REGISTRY}/${HARBOR_PROJECT}/${IMAGE_NAME}:${env.GIT_COMMIT_SHORT}"
- }
- }
-
- stage('Cleanup') {
- steps {
- echo 'Cleaning up local images...'
- sh """
- docker rmi ${HARBOR_REGISTRY}/${HARBOR_PROJECT}/${IMAGE_NAME}:${env.GIT_COMMIT_SHORT} || true
- docker rmi ${HARBOR_REGISTRY}/${HARBOR_PROJECT}/${IMAGE_NAME}:latest || true
- """
- }
- }
- }
-
- post {
- always {
- sh 'docker logout ${HARBOR_REGISTRY} || true'
- }
- success {
- echo "✅ Pipeline completata!"
- echo "Immagine: ${HARBOR_REGISTRY}/${HARBOR_PROJECT}/${IMAGE_NAME}:${env.GIT_COMMIT_SHORT}"
- }
- failure {
- echo '❌ Pipeline fallita'
- }
- }
- }
|