diff --git a/jenkins/ci-pipelines/ci_stage_3.groovy b/jenkins/ci-pipelines/ci_stage_3.groovy
index 411fc79..8a4cf60 100644
--- a/jenkins/ci-pipelines/ci_stage_3.groovy
+++ b/jenkins/ci-pipelines/ci_stage_3.groovy
@@ -751,43 +751,10 @@
                     lock('Artifactory') {
                         parallel parallelSteps
                     }
-
-///////////////////////////////////////////////////////////////////////////////////////
-// Create Devops APT repository
-///////////////////////////////////////////////////////////////////////////////////////
                     sh 'mkdir -p pool'
-                    for (component in [ 'devops', 'IM', 'osmclient' ]) {
-                        sh "ls -al ${component}/pool/"
-                        sh "cp -r ${component}/pool/* pool/"
-                        sh "dpkg-sig --sign builder -k ${GPG_KEY_NAME} pool/${component}/*"
-                        sh "mkdir -p dists/${params.REPO_DISTRO}/${component}/binary-amd64/"
-                        sh("""apt-ftparchive packages pool/${component} \
-                           > dists/${params.REPO_DISTRO}/${component}/binary-amd64/Packages""")
-                        sh "gzip -9fk dists/${params.REPO_DISTRO}/${component}/binary-amd64/Packages"
-                    }
-
-                    // create and sign the release file
-                    sh "apt-ftparchive release dists/${params.REPO_DISTRO} > dists/${params.REPO_DISTRO}/Release"
-                    sh("""gpg --yes -abs -u ${GPG_KEY_NAME} \
-                       -o dists/${params.REPO_DISTRO}/Release.gpg dists/${params.REPO_DISTRO}/Release""")
-
-                    // copy the public key into the release folder
-                    // this pulls the key from the home dir of the current user (jenkins)
-                    sh "cp ~/${REPO_KEY_NAME} 'OSM ETSI Release Key.gpg'"
-                    sh "cp ~/${REPO_KEY_NAME} ."
+                    sh "ls -al devops/pool/"
+                    sh "cp -r devops/pool/* pool/"
                 }
-
-                // start an apache server to serve up the packages
-                http_server_name = "${containerName}-apache"
-
-                pwd = sh(returnStdout:true,  script: 'pwd').trim()
-                repo_port = sh(script: 'echo $(python -c \'import socket; s=socket.socket(); s.bind(("", 0));' +
-                               'print(s.getsockname()[1]); s.close()\');',
-                               returnStdout: true).trim()
-                internal_docker_http_server_url = ci_helper.start_http_server(pwd, http_server_name, repo_port)
-                NODE_IP_ADDRESS = sh(returnStdout: true, script:
-                    "echo ${SSH_CONNECTION} | awk '{print \$3}'").trim()
-                ci_helper.check_status_http_server(NODE_IP_ADDRESS, repo_port)
             }
 
             sh "tree -fD repo"
