← azuredeploy

Push secondary image also, authenticate once

b1d2d38f2b134ec7bc18a4913531c8c0b2a50410 · ovidiucs · Mar 22, 2024 18:02

+21 −29 · 1 file changed

  • jenkins/Jenkinsfile +21 −29
diff --git a/jenkins/Jenkinsfile b/jenkins/Jenkinsfile
index b8b6e12..d8e730a 100644
--- a/jenkins/Jenkinsfile
+++ b/jenkins/Jenkinsfile
@@ -28,39 +28,31 @@ pipeline {
                 }
             }
         }
-        stage('Build Docker Images') {
-            steps {
-                script {
-                    parallel (
-                        'Build Primary Docker Image': {
-                            def dockerRegistryUrl = env.DOCKER_REGISTRY_URL
-                            docker.withRegistry(dockerRegistryUrl, 'myACRCredentials') {
-                                docker.build(env.DOCKER_IMAGE_NAME, "-f ${env.DOCKERFILE_PATH} codefiles/src/")
-                            }
-                        },
-                        'Build Secondary Docker Image': {
-                            def dockerRegistryUrl = env.DOCKER_REGISTRY_URL
-                            docker.withRegistry(dockerRegistryUrl, 'myACRCredentials') {
-                                docker.build(env.DOCKER_IMAGE_NAME_SECONDARY, "-f ${env.DOCKERFILE_PATH_SECONDARY} codefiles/src/")
+        
+         stage('Prepare & Build Docker Images') {
+                    steps {
+                        script {
+                            // Retrieve and set the Docker registry URL from Jenkins credentials
+                            withCredentials([string(credentialsId: 'dockerRegistryUrl', variable: 'REGISTRY_URL')]) {
+                                env.DOCKER_REGISTRY_URL = "${REGISTRY_URL}"
+                                // Authenticate to the Docker registry once
+                                docker.withRegistry(env.DOCKER_REGISTRY_URL, 'myACRCredentials') {
+                                    // Use parallel stages to build both Docker images simultaneously
+                                    parallel (
+                                        'Build Primary Docker Image': {
+                                            docker.build(env.DOCKER_IMAGE_NAME, "-f ${env.DOCKERFILE_PATH} codefiles/src/").push('latest')
+                                        },
+                                        'Build Secondary Docker Image': {
+                                            docker.build(env.DOCKER_IMAGE_NAME_SECONDARY, "-f ${env.DOCKERFILE_PATH_SECONDARY} codefiles/src/")
+                                            // Exclude push if needed
+                                            .push('latest')
+                                        }
+                                    )
+                                }
                             }
                         }
-                    )
-                }
-            }
-        }
-        stage('Push Docker Images') {
-            steps {
-                script {
-                    def dockerRegistryUrl = env.DOCKER_REGISTRY_URL
-                    docker.withRegistry(dockerRegistryUrl, 'myACRCredentials') {
-                        // Push Primary Docker image to registry
-                        docker.image(env.DOCKER_IMAGE_NAME).push('latest')
-                        // If you need to push the secondary image
-                        docker.image(env.DOCKER_IMAGE_NAME_SECONDARY).push('latest')
                     }
                 }
-            }
-        }
         
         stage('Build') {
             steps {